سيستم DNS
( Domain name system )
DNS يا ” سيستم نامگذاري حوزه ” ، يك روش سلسله مراتبي است كه بانك اطلاعاتي مربوط به نامهاي نمادين حوزه و معادل IP آنها را روي كل شبكه اينترنت توزيع كرده است و هر ايستگاه مي تواند در يك رول منظم و سلسله مراتبي آدرس IP معادل با ايستگاه مورد نظرش را در نقطه اي از شبكه اينترنت پيدا كند؛ اين سيستم در سال ۱۹۸۴ معرفي شد .

 

در DNS ، كل آدرسهاي اينترنت درون بانكهاي اطلاعاتي توزيع شده اي هستند كه هيچ تمركزي روي نقطه اي خاص از شبكه ندارد . روش ترجمه نام بدين صورت است كه وقتي يك برنامه كاربردي مجبور است براي بر قراري يك ارتباط ، معادل آدرس IP از يك ماشين با نامي مثل cs.ucsb.edu را بدست بياورد، قبل از هر كاري يك تابع كتابخانه اي را صدا مي زند؛ به اين تابع كتابخانه اي “ تابع تحليلگر نام “ گفته مي شود . تابع تحليلگر نام ، يك آدرس نمادين راكه بايستي ترجمه شود، بعنوان پارامتر ورودي پذيرفته و سپس يك بسته در خواست به روش UDP توليد كرده و به آدرس يك سرويس دهنده DNS ( كه به صورت پيش فرض مشخص مي باشد ) ارسال مي كند . همه ماشينهاي ميزبان ، حداقل بايد آدرس IP از يك سرويس دهنده DNS را در اختيار داشته باشند . اين “ سرويس دهنده محلي “ پس از جستجو، آدرس IP معادل با يك نام نمادين رابر مي گرداند . “ تابع تحليلگر نام “ نيز آن آدرس IP را به برنامه كاربردي تحويل مي دهد. با پيدا شدن آدرس IP ، برنامه كاربردي مي تواند عمليات مورد نظرش را ادامه بدهد .
همانگونه كه اشاره شد بانك اطلاعات كه اسامي حوزه اينترنت را تعريف كرده ، متمركز نيست بلكه روي كل اينترنت توزيع شده است . حال بايد ديد اسامي اينترنت چگونه سازماندهي مي شود تا نهايتأ بتوان روش جستجو روي يك بانك اطلاعاتي توزيع شده را توضيح داد . اسامي نمادين زير را در نظر بگيريد:
WWW.president.ir يا WWW.bristol.edu
بديهي است كه نامهاي حوزه همانند مثالهاي بالا بدون مسمي و دليل انتخاب نمي شوند بلكه اطلاعاتي ارزشمند براي جستجو در بانك اطلاعاتي توزيع شده نامهاي نمادين در خود دارند. بگونه اي كه مشهود است يك نام حوزه از چند بخش مجزا كه با علامت “.” از هم تفكيك شده ، تشكيل مي شود . هر كدام از اين بخشها كه “ سطح “ نام دارد به يك قسمت از بانك اطلاعاتي توزيع شده اشاره مي نمايد كه به محدودتر شدن فضاي جستجو كمك مي كند .
براي تحليل يك نام حوزه، سطوح از سمت راست به چپ تفكيك مي شوند و در يك روند سلسله مراتبي، سرويس دهنده متناظر با آن سطح پيدا مي شود . فعلأ از بالاترين سطح كه در سمت راست نام حوزه قرار مي گيرد شروع مي كنيم . نامهاي حوزه به هفت منطقه عمومي و حدود صد و اندي منطقه كشوري تقسيم بندي شده است . حوزه سطح بالا بدين معناس

ت كه شما با يك نگاه ساده به انتهاي آدرس نمادين ، مي توانيد ماهيت آن نام و سرويس دهنده متناظر با آن را حدس بزنيد . يعني اگر انتهاي نامهاي حوزه متفاوت باشد منطقه جستجو براي يافتن آدرس IP معادل نيز متفاوت خواهد بود. هفت حوزه عمومي كه همه آنها سه حرفي هستند عبارتند از:

.org , .net , .mil , .int , .gov , .edu , .com
نامهاي حوزه بسيار زيادي در اينترنت تعريف شده اند كه هيچيك از حوزه هاي سه حرفي هفتگانه را در انتهاي آنها نمي بينيد. معمولا در انتهاي اين آدرسها يك رشته دو حرفي مثل .ir يا .nl قرار گرفته است . اين رشته دو حرفي مخفف نام كشوري است كه آن آدرس و ماشين صاحب آن نام ، در آن كشور واقع است . هر حوزه مي تواند به زير حوزه هاي كوچكتري تقسيم شود . بعنوان مثال نامهاي مربوط به حوزه ژاپن با مخفف .jp به دو حوزه كوچكتر تقسيم مي شود: .ac.jp يا .co.jp كه اولي يك موسسه علمي و دانشگاهي و دومي يك موسسه بازرگاني يا تجاري را در ژاپن تعيين مي نمايد؛ يعني محل جستجو براي ترجمه يك نام متفاوت خواهد بود . بعنوان مثال آدرس زير بسادگي قابل تحليل است :
cs.keio.ac.jp
كشور : ژاپن
هويت : دانشگاهي
نام دانشگاه : keio
نام دانشكده : كامپيوتر computer science
براي سادگي در درك حوزه و زير حوزه به نمودار زير دقت كنيد :
حوزه هاي كشوري Root حوزه هاي عمومي

.int .com .edu .gov .mil .org .net .ir.us .nl .ua .uk .jp

در شكل قبل چگونگي شكسته شدن يك آدرس به زير حوزه هاي كوچكتر به تصوير كشيده شده است. با اين ساختار براي ترجمه يك نام حوزه مثل robotic.ai.cs.sharif.edu ، عمليات از فايلي به نام “ ريشه ” شروع مي شود؛ سپس آدرس ماشيني كه فايل راهنماي .edu در آنجا واقع شده بدست مي آيد . با مراجعه به چنين فايلي مجددا آدرس ماشيني كه فايل راهنماي .sharif.edu در آنجا قرار دارد به دست مي آيد ؛ اين روند تا رسيدن به آدرس IP معادل ادامه مي يابد . اي

ن عمليات در چند مرحله محدود تكرار مي شود و با توجه به آنكه از پروتكل UDP استفاده مي شود، تاخير بحراني نخواهد داشت .
دقت كنيد شما نمي توانيد هر نام دلخواه را براي شركت يا سازمان خودتان انتخاب نمائيد بلكه براي اينكار بايد نام مورد نظر را ثبت نمائيد؛ در غير اين صورت چنين آدرسي در اينترنت هويت نخوا

هد داشت. براي ثبت آدرس بايد به سايتهاي ثبت كننده نام حوزه مراجعه كرده و تقاضاي ثبت آدرس نمائيد. اين موسسات ضمن ثبت و درج نام در بانك اطلاعاتي يكي از حوزه هاي سطح بالا، تضمين خواهند كرد كه نام انتخابيتان دركل شبكه اينترنت منحصر بفرد باشد .
تكنيكهاي پرس وجو در سرويس دهنده هاي نام :
همانگونه كه اشاره شد اسامي نمادين در شبكه اينترنت كه خود در قالب حوزه ها و زير حوزه ها سازماندهي شده اند در يك فايل متمركز ذخيره نمي شوند بلكه روي كل شبكه اينترنت توزيع شده اند، به همين دليل براي ترجمه يك نام به آدرس IP ممكن است چندين مرحله “ پرس وجو” صورت بگيرد تا يك آدرس پيدا شود. طبيعي است كه يك پرس وجو براي تبديل يك نام حوزه هميشه موفقيت آميز نباشد و ممكن است به پرس وجو هاي بيشتري نياز شود يا حتي ممكن است يك آدرس نمادين اشتباه باشد و هيچ معادل IP نداشته باشد.
سه روش براي پرس وجوي نام در سرويس دهنده هاي نام وجود دارد :
• پرس وجوي تكراري( Iterative Query )
• پرس وجوي بازگشتي ( Recursive Query )
• پرس وجوي معكوس ( Reverse Query )
اين سه روش را بررسي مي كنيم :
در “ پرس وجو هاي تكراري” قسمت اعظم تلاش براي تبديل يك نام بر عهده سرويس دهنده محلي است؛ اين DNS حداقل به آدرس ماشين Root ، به عنوان نقطه شروع نياز دارد. وقتي يك تقاضاي ترجمه آدرس به سرويس دهنده محلي ارسال مي شود در صورتي كه قادر به ترجمه نام به معادل IP آن باشد، معادل آدرس IP نام مورد نظر را به تقاضا كننده بر مي گرداند.( اين حالت وقتي است كه سرويس دهنده محلي قبلا آن نام را ترجمه و در يك فايل ذخيره كرده باشد. ) در غير اين صورت سرويس دهنده محلي خودش يك تقاضا براي DNS سطح بالا ارسال مي كند . اين سرويس دهنده، آدرس ماشيني را كه مي تواند براي ترجمه نام مورد نظر مفيد باشد، به سرويس دهنده محلي معرفي مي كند؛ سرويس دهنده محلي مجددا يك تقاضا به ماشين معرفي شده در مرحله قبل ارسال ميكند. در اين حالت هم سرويس دهنده نام مي تواند در صورت يافتن آدرس IP معادل با آن نام حوزه ، آنرا ترجمه كند و يا آنكه آدرس سرويس دهنده سطح پايينتري را به او برگرداند. اين روند ادامه مي يابد تا DNS نهائي نام مورد نظر را به آدرس IP ترجمه نمايد. براي درك بهتر از روند كار به شكل زير دقت كنيد .

در اين مثال فرض شده است كه يك برنامه كاربردي با فراخواني “ تابع تحليلگر نام ” ، تقاضاي ترجمه نام www.microsoft.com را مي نمايد .مراحلي كه انجام ميشود به شرح ذيل است :
• در مرحله اول ، برنامه كاربردي با فراخواني “ تابع تحليل نام ” ، تقاضاي ترجمه آدرس www.microsoft.com را براي سرويس دهنده محلي ارسال كرده و منتظر مي ماند .

• در مرحله دوم ، سرويس دهنده محلي از سرويس دهنده Root ( كه حوزه هاي متفاوت را تفكيك مي كند ) آدرس ماشين يك DNS كه متولي حوزه .com است را سوال مي كند .
• در مرحله سوم ، آدرس سرويس دهنده مربوط به حوزه .com بر مي گردد.
• در مرحله چهارم ، سرويس دهنده محلي ، از ماشين معرفي شده در مرحله قبلي ، آدرس سرويس دهنده مربوط به حوزه microsoft.com را سؤال مي نمايد .
• در مرحله پنجم، فهرستي از سرويس دهنده هاي DNSمربوط به mirosoft.com بر مي گردد

.
• در مرحله ششم، سرويس دهنده محلي تقاضاي ترجمه آدرس نمادين www.microsoft.com را از DNS متعلق به حوزه microsoft.com مي كند.
• در مرحله هفتم، معادل آدرس IP نام www.microsoft.com بر مي گردد.
در روش پرس وجوي بازگشتي هرگاه برنامه اي بخواهد آدرس IP معادل يك نام مثل cs.yale.edu را بدست آورد بگونه اي كه قبلا اشاره شد ، “ تابع سيستمي تحليل نام ” را فراخواني مي كند . اين تابع يك ماشين را بعنوان سرويس دهنده محلي از قبل مي شناسد و بنابراين تقاضاي تبديل نام را به روش UDP براي آن ارسال كرده ومنتظر جواب مي ماند ( پاسخ نهايي DNS طبيعتاً بايد حداقل شامل يك آدرس ۳۲ بيتي معادل آدرس IP يك ماشين باشد) دو حالت ممكن است اتفاق بيفتد :
• ممكن است در بانك اطلاعاتي مربوط به سرويس دهنده محلي ، آدرس IP معادل با آن نام از قبل وجود داشته و بالطبع به سرعت مقدار معادل IP آن بر مي گردد.

• ممكن است در بانك اطلاعاتي سرويس دهنده محلي ، معادل IP آن نام وجود نداشته باشد.
مثلاً سرويس دهنده محلي در بانك اطلاعاتي خودش معادل آدرس IP نام cs.mit.edu را نداشته و طبيعتاً نمي تواند آن را ترجمه كند . در چنين حالتي سرويس دهنده محلي موظف است بدون آنكه به تقاضا دهنده خبر بدهد، خودش رأساً به سرويس دهنده سطح بالاتر تقاضاي ترجمه آدرس بدهد . دراين حالت هم DNS سطح بالاتر بهمين نحو ترجمه آدرس را پيگيري مي كند يعني اگر معادل IP آن نام را داشته باشد آنرا بر مي گرداند و در غير اينصورت خودش از سرويس پايينتر تقاضاي ترجمه آن نام را مي نمايد و اين مراحل تكرار ميشود .