تا %60 تخفیف خرید برای 5 نفر با صدور مدرک فقط تا
00 00 00
مشکل قطعی در سرورهای آسیاتک برطرف شده و درگاه پرداخت سایت فعال است.
در توسینسو تدریس کنید

DNS چیست و چگونه کار می کند؟ داستان DNS به زبان طنز قسمت 2

در قسمت اول مقاله متوجه شدید که شخصی با هویت Unity به دنبال آدرس شخصی به نام مهران طریحی می گشت و در نهایت با طی کردن یک سری مراحل به نتیجه رسید . در این مقاله همین مبحث را به سمت معرفی سرویس DNS می بریم ، داستان قبلی را کاملا در ذهن داشته باشید اما اینبار شخصیت اصلی داستان ما یک کامپیوتر است که در داخل یک شبکه قرار گرفته است و قرار است آدرس IP یک وب سایت اینترنتی را پیدا کند ، می خواهیم بدانیم چه مراحلی طی می شود تا این کامپیوتر در نهایت آدرس IP مربوط به وب سایت مورد نظر را پیدا کند ؟ کامپیوتری که در تصویر زیر مشاهده می کنید آدرس وب سایتی به نام www.tosinso.com را در مرورگر خود وارد می کند به محض اینکه کلید Enter فشرده شد مراحل زیر در کامپیوتر یک که ما آن را به عنوان ITPRO-Client نامگذاری کرده ایم انجام می شود :

روش کار DNS

1- ابتدا کامپیوتر بررسی می کند که آیا قبلا به این آدرس دسترسی پیدا کرده است و در حافظه خود آدرس IP این سرور وب را دارد یا خیر ؟ این دقیقا مشابه موردی است که در داستان قبلی اشاره کردیم ، Unity قبل از هر چیزی به حافظه خود مراجعه می کند. اگر در این لحظه کامپیوتر مورد نظر آدرس IP را در حافظه Cache خود داشته باشد یکراست به سراغ وب سایت مورد نظر خواهد رفت همانطور که در سناریوی قبلی اگر Unity آدرس فرد مورد نظر را در حافظه داشت بلافاصله مستقیما به وی مراجعه می کرد . ما فرض می کنیم که در اینجا آدرس وب سرور مورد نظر در Cache سیستم وجود نداشت.

2-مرحله بعدی بررسی کردن فایلی به نام Hosts می باشد که بر روی سیستم قرار دارد ، سیستم کلاینت بررسی می کند که آیا در این فایل آدرس وب سرور مورد نظر قرار دارد یا خیر ؟ اگر قرار داشته باشد بلافاصله به وب سایت مورد نظر مراجعه می کند و اگر نداشته باشد مرحله بعدی انجام می شود ، این دقیقا مشابه چیزی است که در سناریوی قبلی اشاره کردیم Unity به دنبال یادداشتی بود که در آن آدرس دقیق نوشته شده باشد ، باز هم فرض را بر این می گذاریم که آدرس مورد نظر در فایل Hosts وجود نداشت ، برای کسب اطلاعات بیشتر در خصوص فایل Hosts می توانید به مقاله مهندس سعید خلیفی که بصورت کامل در خصوص فایل Hosts توضیح داده اند در همین لینک مراجعه کنید.

3-در مرحله سوم کامپیوتر با توجه به اینکه هیچ اطلاعاتی از آدرس IP وب سایت مورد نظر در Cache و Hosts فایل خود پیدا نکرد آنرا برای آدرس DNS سروری که روی کارت شبکه آن تعریف شده است ارسال می کند ، این دقیقا مشابه مثال ما در مقاله قبلی است که زمانیکه Unity نتوانست از حافظه و یادداشت های دستی آدرس را پیدا کند از اولین نفری که می شناخت در خصوص آدرس مورد نظر سئوال کرد ، بنابراین درخواست Client به سمت سرور DNS ارسال می شود. در واقع کلاینت از سرور به این شکل سئوال می کنید : آیا شما www.tosinso.com. می شناسید ؟

4-در مرحله بعدی درخواست بصورت کامل به DNS سرور ارسال می شود یعنی کامپیوتر از DNS سرور سئوال می کند که آیا شما آدرس IP مربوط به سرور www.tosinso.com. را می شناسید ؟ دقت کنید همیشه در انتهای اسم وب سایت یک نقطه قرار دارد این نقطه نمایانگر DNS سرورهای ریشه یا نقطه هستند که در واقع مرجع اصلی DNS در دنیا هستند ، خوب در این قسمت DNS سرور نیز یک سری مراحل را برای پیدا کردن آدرس IP اسم مورد نظر شما انجام می دهد .

ابتدا DNS سرور در Zone های خود بررسی می کند که آیا در Zone های خود چنین آدرس ای وجود دارد یا خیر ؟ اگر وجود داشته باشد بلافاصله به کلاینت پاسخ می دهد اگر نداشت به مرحله بعدی می رود ، مرحله بعدی بعد از بررسی Zone ها Cache سرور DNS است ، به یک نکته مهم توجه کنید که در ساختار DNS سرور ابتدا اطلاعات Zone ها بررسی می شود و سپس به سراغ Cache سرور می رویم این دقیقا نکته بسیار مهمی در اولویت بندی کارهای DNS می باشد.

5-اگر در Zone های DNS نیز اطلاعات مورد نیاز وجود نداشت DNS سرور به سراغ مرحله بعدی می رود ، در این مرحله DNS سرور بررسی می کند که آیا برای این اسم Domain یک سرور DNS بصورت دستی تعریف شده است یا خیر ؟ اگر تعریف شده باشد درخواست DNS را یکراست به سمت سرور مورد نظر می فرستد ، در این مثال اگر در این سرور DNS تعریف شده باشد که هر درخواستی که برای Domain ای به شکل tosinso.com دریافت شد را به سرور مورد نظر خاصی ارجاع دهید عملیات به این شکل انجام می شد .

به این حالت در اصطلاح فنی Conditional Forwarding یا ارجاع دستی گفته می شود ، یعنی برای سرور تعریف شده است که در صورت دریافت درخواست Domain خاص ، درخواست را به یک سرور مشخص ارسال کند. این دقیقا مثل این است که هر کدام از افرادی که Unity در مرحله قبلی از آنها سئوال می کرد دقیقا شخص مهندس مهران طریحی را می شناختند ، خوب در چنین شرایطی به نوعی یک Shortcut برای پیدا کردن آدرس ایجاد شده است. فرض را بر این می گذاریم که حتی در سرور DNS یک Conditional Forwarder هم ایجاد نشده است و DNS سرور مجبور است به مرحله بعدی برود.

6-بعد از اینکه Conditional Forwarder ها بررسی شدند و موجودیتی برای مقصد مورد نظر ما وجود نداشت DNS سرور به سراغ Forwarder ها می رود ، تفاوت forwarder و Conditional Forwarder در این است که در Conditional Forwarder شما برای درخواست های خود شرط تعیین می کنید اما در Forwarder شما هر در خواستی که DNS سرور نتواند پاسخگویی کند را به سمت آدرسی که در Forwarder تعیین شده است ارسال می کند ، این مشابه آن است که در سئوال قبلی Unity شخصی که از آن سئوال می کنیم بدون توجه به اینکه درخواست شما چه چیزی است درخواست شما را به سمت فرد دیگری ارسال می کند ، در اینجا باز هم فرض را بر این می گذاریم که Forwarder ای نیز در DNS سرور شما وجود ندارد و DNS سرور به سراغ مرحله بعدی خواهد رفت .

7-در نهایت بعد از اینکه DNS سرور شما نتوانست آدرس مورد نظر شما را با توجه به طی کردن همه مراحل بالا پیدا کند درخواست شما را به سمت DNS سرور های ریشه در اینترنت ارسال می کند ، در واقع DNS سرور اولی شما به کاربر اینگونه پاسخ می دهد ، من www.tosinso.com. را نمی شناسم اما سروری را می شناسم که میزبانی دامین های ریشه یا نقطه را دارد ، آدرس IP آن را دارم از او سئوال می کنم ، و بدین صورت در خواست شما از طریق DNS سرور شبکه داخلی شما به سمت DNS سرور ریشه ارسال می شود .

در واقع DNS سرور شما از DNS سرور ریشه این سئوال را می پرسد : آیا شما www.tosinso.com. می شناسید ؟ در پاسخ به این سئوال Root DNS سرور هم همانند مرحله قبلی موارد را به ترتیب بررسی می کند : آیا در Zone های من وجود دارد ؟ آیا در Cache من وجود دارد ؟ آیا در Conditional Forwarder های من وجود دارد ؟ آیا در Forwarder های من وجود دارد ؟ در این مرحله Root DNS به درخواست به این شکل پاسخ می دهد : من www.tosinso.com. را نمی شناسم اما خودم سرور نقطه ها هستم و آدرس IP سروری را دارم که میزبان دامنه های ir است و به DNS سرور شبکه داخلی شما آدرس IP سرور DNS میزبان دامنه های ir را بر می گرداند.

8-DNS سرور داخلی شما که اکنون آدرس IP سرورهای دامنه های .ir را دارد به این سرور میزبان مراجعه می کند و از آن سئوال می کند که آیا شما www.tosinso.com. می شناسید ؟ این DNS سرور مشابه عملیات قبلی را انجام می دهد ، ابتدا اطلاعات Zone هایش را بررسی می کند ، سپس به سراغ Cache سرور می رود ، سپس Conditional forwarder و بعد از آن هم Forwarder ها را بررسی می کند ، DNS سرور دامنه های ir به وی پاسخ می دهد که من www.tosinso.com. را نمی شناسم اما خودم سرور ir. هستم و سرور DNS ای را می شناسم که دامنه های tosinso.com را میزبانی می کند ، در این زمان آدرس سرور میزبان دامنه های tosinso.com را در اختیار ما قرار می دهد و DNS سرور شبکه داخلی شما با دارا بودن آدرس سرور جدید به سرور tosinso.com مراجعه می کند .

9-در این زمان ما به سرور tosinso.com رسیده ایم و از این سرور سئوال می کنیم که آیا شما www.itpor.ir. می شناسید ؟ سرور در پاسخ ابتدا Zone هایش را بررسی می کند ، در اینجا قطعا پاسخ را دریافت می کنید زیرا سرور به شما می گوید که بله می شناسم این سرور که ما آن را در Zone خود به نام www می شناسیم در فلان آدرس IP قرار دارد و آدرس IP سروری که میزبان این وب سایت است را در اختیار DNS سرور شبکه داخلی شما قرار می دهد و در آخر هم DNS سرور آدرس IP را به کلاینت می دهد و کلاینت وب سایت مورد نظر را باز می کند.

معرفی فرآیند Recursion در DNS

حالا کلاینت آدرس IP سرور مورد نظر را دارد و اگر قرار باشد بار دیگر به این آدرس وب سایت مراجعه کند دیگر نیازی به این فرآیند رفت و برگشتی برای پیدا کردن آدرس IP سرور مورد نظر نخواهد داشت ، دقت کنید که به این فرآیند رفت و برگشتی که انجام می شود در اصطلاح فنی Recursion گفته می شود ، حالا اگر آدرس IP سرور مورد نظر عوض شود چه اتفاقی می افتد ؟ کلاینت با توجه به اینکه از Cache خود برای رسیدن به مقصد استفاده می کند دیگر فرآیند Recursion را انجام نمی دهد ، شما باید در چنین مواقعی Cache کلاینت را حذف کنید تا مجددا فرآیند Recursion انجام شود.

از طرفی به این مسئله دقت کنید که در هر بار پرسیدن سئوال از DNS سرورها سئوال ما بصورت کامل سئوال می شود یعنی می پرسیم www.tosinso.com. چه آدرسی دارد ؟ این دقیقا مشابه داستانی است که Unity در هر بار پرسش سئوال خود را از طرف مورد نظر بصورت کامل می پرسید . کلیات DNS سرور و مفهوم آن به همین شکل است کافیست فقط روال کاری آن را یاد بگیرید تا بتوانید براحتی آن را رفع ایراد کنید و طراحی های لازم خود را انجام دهید ، امیدوارم مورد توجه شما قرار گرفته باشد ، اگر سئوالی دارید می توانید در ادامه مطرح کنید. ITPRO باشید

نویسنده : محمد نصیری

منبع : جزیره سرویس های شبکه مایکروسافت وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

نظر شما
برای ارسال نظر باید وارد شوید.
16 نظر
افرادی که این مطلب را خواندند مطالب زیر را هم خوانده اند