در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

معرفی سرویس DNS و شیوه کارکرد آن بصورت طنز داستانی - قسمت دوم

در قسمت اول مقاله متوجه شدید که شخصی با هویت 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 باشید

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

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

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

#dns_چگونه_كار_مي_كند #مفهوم_Conditional_Forwarder_در_DNS #روش_کار_dns #محل_فیزیکی_سرورهای_root_hint #dns_چیست #روش_کار_سرویس_dns #آموزش_مفاهیم_dns #مفاهیم_DNS #پیاده_سازی_DNS_server_بعنوان_forwarder
عنوان
1 معرفی سرویس DNS و شیوه کارکرد آن بصورت طنز داستانی - قسمت اول رایگان
2 معرفی سرویس DNS و شیوه کارکرد آن بصورت طنز داستانی - قسمت دوم رایگان
زمان و قیمت کل 0″ 0
16 نظر
حمید مداحیان

یه سوال برام پیش اومد

فرق Conditional Forwarder و Forwarder چیه؟

شما دو تا سوال برای هر کدام اینا ذکر کردین؟فرقی میکنن با هم؟

محمد نصیری

در قسمت مطالب مرتبط این موضوع در قالب یک مقاله بصورت کامل توضیح داده شده

حسين كاظميان

ممنون.

آيا امكانش هست اين داستان را بصورت عملي هم بهمون آموزش بديد ؟

مثلا الان بك وب سرور شخصي داريم كه با آي پي باز ميشه و يك دامين هم در ايرنيك خريديم حالا چه تنظيماتي بايد در dns سرور خودمون

انجام بديم و چه تنظيماتي در سايت ايرنيك .

با تشكر از شما

محمد نصیری

در وب سایت Nic.ir کافیه یک رکورد به نامns.tosinso.com مثلا ایجاد کنید و جلوش آدرس IP سرویس هاستینگ خودت رو بدی یا سروری که روش IIS نصب کردی رو بدی ، بعد میای توی DNS سروری که هاستینگ بهت ارائه میده یا خودت در VPS داری یک رکورد به نام NS درست می کنی که در Zone ای به نام tosinso.com قرار داره و به آدرس IP سرورت اشاره می کنه ، این فرآیند بعد از ماکزیمم 24 ساعت سرور شما رو به عنوان میزبان وب سایت شناسایی می کنه و به عنوان DNS سرور سایت tosinso.com به دنیا معرفی می کنه.

حسين كاظميان

ممنون از جوابتون .

نبايد نام سرورم NS باشه ؟ در ايرنيك نبايد نام كامل سرور باشه ؟ به همراه آي پي ؟

محمد نصیری

الزامی نیست اسم سرورت حتما NS باشه کافیه رکوردی به نام NS توی DNS سرور سرورت ثبت شده باشه.

حسين كاظميان

ما با اين كارمون در ايرنيك ، خودمان را در zone ميزبان ir ثبت مي كنيم ؟

نميدونم چرا اين قضيه برام روان نميشه . خيلي هم مطالعه كردم (يعني ) .

محمد نصیری

ببینید شما آدرس IP سرور DNS خودتون یا سرور هاستینگ خودتون رو به NIC با این روش اعلام می کنید که چی بشه ؟ که NIC متوجه بشه که اگر درخواستی برای این آدرس دومین دریافت کرد باید بفرستتش روی کدوم آدرس DNS سرور ؟ کدوم DNS سرور توی دنیا وظیفه سرویس دهی به این Domain رو داره ؟ اینکار در واقع معرفی آدرس دومین شما به همراه آدرس IP به سرور NIC هست.

شهرام شادیانلو

ممنون در مورد آموزش فوق العادتون

میخواستم بدونم این حافظه کش کجاست ؟

آیا میشه بهش دسترسی داشت؟ (مشاهده محتویات)

محمد نصیری

کافیه دستور ipconfig //displaydns رو بزنید تا محتویات کش به شما نمایش داده بشه

مهدی باقری

مهندس خیلی عالی و کامل بود

من خیلی دنبال این مطلب رفتم و کاش این مطلب رو زودتر میدیدم

اگر اجازه بدید دو مطلب رو عنوان کنم چون حیفم میاد با این دو نکته همه جوره کامل میشه حتی میتونیم خودمون تمام این DNS ها رو راه بندازیم و تمام این مراحل رو امتحان کنیم، خیلی لذت بخشه توصیه میکنم بچه ها مخصوصا کسایی که میخوان DNS یکبار برای همیشه براشون جا بیفته این کار رو انجام بدن ( البته یه 7-8 تا کامپیوتر میخواد)

اما نکته اول در گام 6 فرض بر این شد که هیچ Forwarder ای در DNS سرور وجود نداشته باشد.

حال اگر داشته باشد چون اتفاق جالبی میفته قابل ذکر هست :

پس بعد از چک شدن Conditional Forwarder اگردر DNS سرور ما Forwarder ای وجود داشته باشد، DNS همینجا متوقف میشود و کار رو به Forwarder میسپارد و منتظر میماند تا DNS جدید تمامی این مراحل را از ابتدا انجام داده ودر ادامه سراغ روت ها رفته و جواب را برای ما بر گرداند و DNS سرور ما دیگر سراغ Root Hint ها نمیرود به این نوع سوال پرسیدن Recursive به معنای بازگشتی میگویند وبه query هایی که DNS بصورت رفت و برگشتی یا تکراری انجام میدهند مطابق شکل اول iterative میگویند، اینجاست که من کمی با شما نمیتونم موافق باشم

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

اگر بخواهیم در قالب تنظمون بگیم کلاینت یقه DNS رو میگیره و میگه باید جواب بدی واگر DNS هم نتونه مثل پدر آدم میگه بچه بشین سر جات و تو هم نمیتونی جایی بری :)

در مقابل DNS ها همونطور که در مطلب اشاره کردید ودر عکس واضح هست بصورت تکراری و رفت و برگشت سوال میپرسد که این query ها به اصطلاح صورت iterative پرسیده میشوند مگر در دو حالت که DNS سرور به صورت Recursive سوال میپرسد و اونها شامل : Conditional Forward و Forward هست

البته در Forwarders میتوان با زدن تیک در قسمت Use root hints if no forwarders are available میتوان برای DNS مشخص کرد که به سراغ Root Hint ها برود و خودش به صورت iterative به جواب برسد

نکته دومی که بنظرم میرسه این هست که همونطور که میدونید در مراحل مربوط به سوال های رفت و برگشت DNS هایی هستند که زونهای "." و " .ir " و " tosinso.com " رو دارند و جوابی که میدند بهتره به این شکل بگیم که DNS اولی میگه میدونم www.tosinso.com. کیه یا کجاست اما نمیگم ولی بهت یه لطفی میکنم میگم .ir کیه یا کجاست اونم میگه میدونم www.tosinso.com. کیه یا کجاست اما نمیگم ولی بهت یه لطفی میکنم میگم tosinso.com کجاست که در واقع اون دونستن و آدرس دادن ناشی از زون هایی هست که در هر DNS بالا دست در واقع Delegate شده به لول پائین تر یعنی به ترتیب روی root , top level , second level دامین ها پس آیا باز هم موقعی که DNS به سراغ این سرورها میرود اون مراحل چهارگانه انجام میشه به نظر من دیگه سراغ Conditional Forward و Forward نمیره چون اون زون در اون DNS سرور ایجاد و Delegate شده به لول پائینتر

ممنون میشم نظرتون رو در اینباره بدونم

محمد نصیری

خیلی عالی بود مهندس باقری عزیز ، من در این دو تا مقاله سعی کردم در ساده ترین حالت ممکن این تعاریف رو انجام بدم و پیشفرض این رو در نظر گرفتم که نه Delegation ای وجود داره و نه Alternate Configuration ای برای DNS وجود داره ، توضیحات شما کاملا باعث شد برای من هم این موضوع روشن تر بشه ، به هر حال ممنون از نکته بسیار سازندتون ... در خصوص بحث Delegation که به طنز میشه میدونم اما بهت نمیگم لطف می کنم خیلی خوشم اومد حتما این موضوع رو از این به بعد سر کلاس در داستان DNS مطرح می کنم.

faridsoltanny

سلام و عرض خسته نباشی.

مهندس دلیل این که در سرور من در قسمت dns دو تا dns server نمایش داده شده که محتویاتشون کاملا شبیه همه و بی عیب و نقص داره کار میکنه چیه؟

دومین بعد از یک مدتی بطور اتوماتیک میاد بالا هرچی هم پاکش میکنم بازم میاد

اگر این یک عیب در سرور dns منه راه حل اون چیه و کجای کارم اشتباه بوده؟

وب سایت توسینسو

محمد نصیری

لطفا سوالات فنی رو فقط ازطریق گزینه سوال بپرسید مطرح کنید سپاسگزارم

faridsoltanny

چشم فرستادم ممنون میشم جواب بدین

ابراهیم ذبیحی

واقعا چقدر مباحث رو پیچیده کردین.. هر کسی یه چیزی اضافه میکنه و همه تاییدش میکنن.. تا میری یه چیزو توی خودت جا بندازی یه چیز دیگه میاد سراغت و میشه یه غول برات..کسی یه فایل آموزشی از صفر تا صد نداره یا یه راهنمایی که بتونه بصورت جزئی برام توضیح بده

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....