DNS و نحوه عملکرد آن در پس زمینه اینترنت
DNS چیست؟
امروزه همه ی ما از بستر اینترنت برای انجام کار های مختلف خود استفاده میکنیم بدون اینکه توجه داشته باشیم در پشت صحنه این browse کردن ها چه اتفاقاتی صورت میگیرد.در این مقاله سعی داریم تا به یکی از مهم ترین پروتکل هایی که کمتر مورد توجه است و در عین حال بسیار پرکاربرد است به نام DNS صحبت کنیم.
میدانیم برای دیده شدن در بستر اینترنت احتیاج به ip اینترنتی یا IP Public داریم و از طرفی هم میدانیم که وب سایت های متفاوت هم برای دیده شدن در بستر اینترنت نیاز به IP اینترنتی اختصاصی خود را دارند.حال با توجه به دانستن این موضوع این سوال پیش می اید که با وجود این همه سایت های متفاوت که هر کدام با توجه به نوع محتوای سایتشان دارای حجم کاربران متفاوت هستند و گاها بعضی از سایت ها مثل گوگل که دارای کاربران بسیار زیادی است و دارای چندین IP اینترنتی می باشد. آیا کاربران برای دسترسی به این سایت ها باید IP همه ی این سایت ها را به خاطر بسپارند؟
مسلما با این حجم سایت و IP ها نمی توان این IP ها را به خاطر سپرد در نتیجه تصمیم بر آن شد که برای هر سایت یک اسم خاص در نظر بگیریم.
می دانیم سایت های مختلف برای دادن خدمات خود به کاربران محتوای خود را در سرور ها قرار میدهند و کاربران هم برای دریافت این سرویس ها می بایست به این سرور ها وصل شوند.
حال که از مشکل با خبر شدیم دنبال راه حلی برای رفع این مشکل هستیم که راه حل این مشکل وجودDNS Server میباشد.سامانه نام دامنه(Domain Name System)که به اختصار DNS خوانده میشود روش سلسله مراتبی است که بانک اطلاعاتی مربوط به نام های نمادین معادل IP آنها را روی بستر اینترنت توزیع میکند.پس بطور ساده می توان گفت که کار DNS تبدیل اسم سایت(Domain Name) مورد نظر به IPآن سایت می باشد.
بطور مثال وقتی میخواهیم به سایت گوگل مراجعه کنیم در قسمت URL جستجوگر خود نام www.google.com را وارد کرده و در پشت صحنه پروتکل DNS این نام را به IP مورد نظر تبدیل میکند(بطور مثال ۸.۸.۸.۸).
حال کمی با جزییات بیشتر به نحوه عملکرد DNS می پردازیم.زمانی که کاربر در مرورگر خود نام سایتی را وارد میکند درواقع یک بسته درخواست (Query Packet) را ارسال میکند به DNS Server محلی خود که تا IP سایت مورد نظر را پیدا کند.زمانی که این درخواست (Query Packet) به DNS Server رسید DNS Server در تابع کتابخانه ای خود(Library Function) را صدا می زند تا IP معادل نام آن سایت را بدست آورد.
روش های جستجو در سیستم DNS برای تحلیل یک نام حوزه ، سطوح از سمت راست به چپ تفکیک می شوند و در یک روند سلسله مراتبی ، سرویس دهنده ی متناظر با آن سطح پیدا می شود . نام های حوزه به هفت منطقه ی عمومی و حدود صد و اندی منطقه ی کشوری تقسیم بندی شده است و با نگاه به قسمت آخر آن می توان ماهیت سایت و حوزه آن را بدست اورد.در شکل زیر بطور اختصار نحوه عملکرد پروتکل DNS را نشان می دهد.
نام ۷ حوزه عمومی به شرح زیر است:
com. : این نام برای موسسات اقتصادی و تجاری استفاده می شود. www.aparat.com
edu. : صاحب این نام جزو موسسات علمی یا دانشگاهی به شمار می آید. www.nushirvani.edu
gov. : این نام برای آژانس های دولتی آمریکا استفاده میشود.www.usa.gov
int. : صاحب این نام یکی از سازمان های بین المللی (مثل یونسکو ، فائو ،…) محسوب می شود. www.nato.int
mil. : این اسم برای مراکز نظامی آمریکا می باشد.
net. : برای ارایه دهندگان خدمات شبکه استفتده می شود.. www.pegah.net
org. : صاحب این نام از سازمان های عام المنفعه و غیر انتفاعی محسوب می شوند. www.apa.org
هر حوزه می تواند به زیر حوزه های متفاوت تقسیم شود و هر کشور برای خود نام حوزه خاص خود را دارد بطور مثال ایران که ir. را برای سایت های خود دارد.به مثال زیر توجه کنید.
ac.ir. : فقط برای دانشگاهها یا موسسه های آموزشی
co.ir. : فقط برای شرکت های سهامی خاص، سهامی عام، مسوولیت محدود و تضامنی
gov.ir. : فقط برای موسسه ها یا سازمان های دولتی
id.ir.: فقط برای افراد دارای ملیت ایرانی
net.ir. : فقط برای سرویس دهندگان رسمی اینترنت
org.ir.: فقط برای موسسه ها و سازمان های خصوصی
sch.ir. : فقط برای مدارس
مثلا” برای دامین http://eng.umz.ac.ir اطلاعات زیر را داریم:
کشور: ایران
هویت: دانشگاه
نام دانشگاه: umz سرواژه ای برای نام دانشگاه مازندران
نام دانشکده: eng سرواژه ای برای بخش فنی مهندسی
حوزهها (Zone) با دامنهها (Domain) یکسان نبوده و یک حوزه میتواند شامل مقادیری در رابطه با چندین دامنه باشد.
روشهای جستجو در DNS:
میدانیم که کتابخانه DNS Server هابصورت متمرکز نیست و به حوزه های متفاوت تقسیم شده است پس طبیعی است که زمانی که query packet بصورت UDP به سمت DNS Server ارسال میشود زمانی که این درخواست به DNS Server رسید شاید جواب این درخواست که همان IP موردنظر سایت میباشد در کتابخانه اش موجود باشد و یا اینکه نباشد و زمانی که نباشد این DNS Server همانطور که در شکل بالا تر دیدیم درخواست را به DNS Server رده بالاتر خود میدهد تا بتواند جواب را پیدا کرده و به کاربر بدهد.
۳ روش برای جستجوی IP مورد نظر هر سایت در DNS Server ها وجود دارد:
جستجوی تکراری (Iterative Query)
جستجوی بازگشتی (Recursive Query)
جستجوی معکوس (Reverse Query)
حال به بررسی این سه روش می پردازیم :
۱) جستجوی تکراری: در این روش که شکل بالا هم گویا نحوه عملکرد آن است بدین صورت عمل می کند که زمانی کاربر نام سایت گوگل را در URL مرورگر خود وارد می کند ابتدا درخواست خود را بصورت Query Packet به DNS Server محلی خود می دهد اگر در کتابخانه DNS محلی IP معادل سایت گوگل وجود داشته باشد(یعنی از قبل به این سایت مراجعه شده و IP معادل ان را داشته است)که جواب را به کاربر بر میگرداند این برگرداندن IP بدین صورت است که کاربر صفحه سایت مورد نظر را می تواند بر روی صفحه مرورگر خود ببیند و زمانی که DNS Server محلی IP معادل سایت گوگل را نداشته باشد Query Packet دریافتی را از کاربر به DNS Server سطح بالاتر خود ارسال کرده و آن DNS Server نام DNS Server ای را که فکر می کند IP معادل آن سایت را دارد به DNS Server محلی ارسال کرده و دوباره DNS Server محلی درخواستش را به این DNS Server جدید ارسال میکند .حال که درخواست کاربر به DNS Server جدید رسید اگر جواب را داشته باشد(همان IP معادل سایت) که آن را به سمت DNS Server محلی ارسال کرده و DNS Server محلی ابتدا آن را در کتابخانه اش ذخیره میکند تا در سری بعدی خودش پاسخ کاربر را بدهد و سپس به کاربر خود می دهد.
۲) جستجوی بازگشتی: در این روش نیز همانند روش بالا صورت می پذیرد و دو حالت ممکن است اتفاق بیافتد.
دو حالتی که امکان رخ دادن آن وجود دارد:
ممکن است در بانک اطلاعاتی مربوط به سرویس دهنده محلی ، آدرس IP معادل با آن نام از قبل وجود داشته و بالطبع به سرعت مقدار معادل IP آن بر می گردد.
ممکن است در بانک اطلاعاتی سرویس دهنده محلی ، معادل IP آن نام وجود نداشته باشد.مثلاً سرویس دهنده محلی در بانک اطلاعاتی خودش معادل IP نام umz.ac.ir را نداشته و طبیعتاً نمی تواند آن را ترجمه کند. در چنین حالتی DNS Srver محلی موظف است بدون آنکه به تقاضا دهنده خبر بدهد، خودش شخصا به DNS Server سطح بالاتر تقاضای ترجمه آدرس بدهد. در این حالت هم DNS سطح بالاتر به همین نحو ترجمه آدرس را پیگیری می کند یعنی اگر معادل IP آن نام را داشته باشد آنرا برمی گرداند و در غیر اینصورت خودش از سرویس دهنده سطح پایینتر تقاضای ترجمه آن نام را می نماید و این مراحل تکرار می شود. در روش پرس و جوی بازگشتی ماشین سرویس دهنده محلی این مراحل متوالی را نمی بیند و هیچ کاری جز ارسال تقاضای ترجمه یک آدرس بر عهده ندارد و پس از ارسال تقاضا برای سرویس دهنده سطح بالا منتظر خواهد ماند.
باید توجه داشت در روش جستجوی تکراری عمده فعالیت ها بر روی DNS Server محلی می باشد و روش جستجوی بازگشتی بیشتر برای شبکه های کوچکتر می باشد.شکل زیر گویا نحوه عملکرد دو روش توضیح داده شده می باشد.
۳) جستجوی معکوس:
در این روش دیگر کاربر نام سایت را وارد نمی کند تا DNS Server محلی IP معادل آن را بدهد بلکه کاربر IP را میدهد و به دنبال نام آن سایت می باشد.در این روش کار کمی سختر می شود زیرا زمانی که کاربر نام سایت را وارد می کرد ما می توانستیم با استفاده از نام حوزه و زیر حوزه آن متوجه شویم باید به کدام DNS Server مراجعه کنیم ولی اکنون که نام معادل آن IP در DNS Server محلی نیست چگونه اینکار می تواند صورت بپذیرد.در این صورت ما باید به دنبال DNS Server متناظر با همان شبکه مورد نظر باشیم. بعنوان مثال آدرس IP شبکه ای را ۱۳۸.۱۵.۱.۱ در نظر بگیرید ، آدرس کلاس B و مشخصه آن ۱۳۸.۱۵.۰.۰ است . زمانی که مؤسسه ای یک کلاس IP ثبت می دهد یک سرویس دهنده DNS ، متناظر با شبکه خود ایجاد کرده و آنرا نیز معرفی می کند. سرویس دهنده محلی بایستی آدرس DNS متناظر با شبکه ۱۳۸.۱۵.۰.۰ را پیدا کرده و سپس برای آن یک تقاضا ارسال کند. DNS مربوط به این شبکه ، براساس زیر شبکه هایی که دارد این سؤال را از طریق سرویس دهنده های متناظر با هر زیر شبکه پیگیری می کند. (چون هر زیر شبکه یک سرویس دهنده DNS مخصوص به خود دارد) نهایتاً یک نام نمادین حوزه معادل با آن آدرس IP بر خواهد گشت.
برای دریافت مقاله در حوزه های شبکه های کامپیوتری و امنیت تیم Zero To Hero را دنبال کنید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.