Domain Name System
سامانهٔ نام دامنه (به انگلیسی: Domain Name System)، (به اختصار DNS) خوانده میشود. DNS یک سیستم سلسهمراتبی نامگذاری برای کامپیوترها، سرویسها، و یا هر منبع دیگری که به شبکه اینترنت و یا یک شبکه خصوصی (LAN) متصل بوده، میباشد. وقتی میخواهید وارد وبگاهی شوید، باید نشانی کارساز وبش را بدانید. نشانی کارساز وب با نشانی آیپی مشخص میشود. اما به خاطر سپردن نشانی آیپی، دشوار است. میتوان به جای نشانی آیپی، از نامهای دامنه استفاده کرد. برای هر نشانی آیپی یک نام دامنه در نظر گرفته شدهاست. مثلاً نشانی آیپی وبگاه گوگل ۱۷۳.۱۹۴.۳۳.۱۰۴ است. برای دسترسی به گوگل، میتوانید از این نشانی آیپی یا نام دامنه آن یعنی www.google.com استفاده کنید.
در ساناد، کل نشانیهای اینترنت درون بانکهای اطلاعاتی توزیع شدهای هستند که هیچ تمرکزی روی نقطهای خاص از شبکه ندارند. روش ترجمهٔ نام بدین صورت است که وقتی یک برنامهٔ کاربردی مجبور است برای برقراری یک ارتباط، معادل نشانی آیپی از یک ماشین با نامی مثل cs.ucsb.edu را بدست بیاورد، قبل از هر کاری یک تابع کتابخانهای (به انگلیسی: Library Function) را صدا میزند، به این تابع کتابخانهای تابع تحلیلگر، نام (به انگلیسی: Name Resolver) گفته میشود.
تابع تحلیلگر، نام یک نشانی نمادین را که بایستی ترجمه شود، بعنوان پارامتر ورودی پذیرفته و سپس یک بستهٔ درخواست (به انگلیسی: Query Packet) به روش UDP تولید کرده و به نشانی یک کارساز DNS (که به صورت پیش فرض مشخص میباشد) ارسال میکند. همهٔ ماشینهای میزبان، حداقل باید یک نشانی آیپی از یک سرویس دهندهٔ ساناد را در اختیار داشته باشند. این «سرویس دهندهٔ محلی» پس از جستجو، نشانی آیپی معادل با یک نام نمادین را بر میگرداند.
«تابع تحلیلگر نام» نیز آن نشانی آیپی را به برنامهٔ کاربردی تحویل میدهد با پیدا شدن نشانی آیپی، برنامهٔ کاربردی میتواند عملیات مورد نظرش را ادامه دهد.
کاربرد حوزهها
برای تحلیل یک نام حوزه، سطوح از سمت راست به چپتفکیک میشوند و در یک روند سلسله مراتبی، سرویس دهندهٔ متناظر با آن سطح پیدا میشود.
نامهای حوزه به هفت منطقهٔ عمومی و حدود صد و اندی منطقهٔ کشوری تقسیم بندی شدهاست. حوزه بدین معناست که شما با یک نگاه ساده به انتهای نشانی نمادین، میتوانید ماهیت آن نام و سرویس دهندهٔ متناظر با آن را حدس بزنید. یعنی اگر انتهای نامهای حوزه متفاوت باشد منطقهٔ جستجو برای یافتن نشانی آیپی معادل نیز متفاوت خواهد بود.
هفت حوزه عمومیکه همه آنها سه حرفی هستند عبارتند از :
Com. صاحب این نام جزو موسسات اقتصادی و تجاری به شمار میآید.
Edu. صاحب این نام جزو موسسات علمی یا دانشگاهی به شمار میآید.
Gov. این مجموعه از نامها برای آژانسهای دولتی آمریکا اختصاص داده شدهاست.
Int. صاحب این نام یکی از سازمانهای بینالمللی (مثل یونسکو، فائو، …) است.
Mil. صاحب این نام یکی از سازمانهای نظامی دنیا به شمار میآید.
Net. صاحب این نام جزو یکی از «ارائه دهندگان خدمات شبکه» به شمار میرود.
Org. صاحب این نام جزو یکی از سازمانهای غیر انتفاعیمحسوب میشوند.
نامهای حوزهٔ بسیار زیادی در اینترنت تعریف شدهاند که هیچیک از حوزههای سه حرفی هفتگانه را در انتهای آنها نمیبینید. معمولاً در انتهای این نشانیها یک رشتهٔ دو حرفی مخفف نام کشوری است که آن نشانی و ماشین صاحب آن، در آن کشور واقع است.
ساختار سلسله مراتبیDNS
هر حوزه میتواند به زیر حوزههای کوچکتری تقسیم شود، که به آن دامنه سطح دومنیز گفته می شود.
به عنوان مثال، نام های مربوط به حوزه ایران، که با مخفف .IR مشخص می شود، به ۷ زیرحوزه، به شرح زیر تقسیم می شود :
ac.ir: فقط برای دانشگاهها یا موسسه های آموزشی
co.ir: فقط برای شرکت های سهامی خاص، سهامی عام، مسوولیت محدود و تضامنی
gov.ir: فقط برای موسسه ها یا سازمانهای دولتی
id.ir: فقط برای افراد دارای ملیت ایرانی
net.ir: فقط برای سرویس دهندگان رسمی اینترنت
org.ir: فقط برای موسسه ها و سازمان های خصوصی
sch.ir: فقط برای مدارس
بعنوان مثال: http://eng.ut.ac.ir
کشور : ایران
هویت : دانشگاه
نام دانشگاه : ut مخففی برای نام دانشگاه تهران
نام دانشکده : eng مخففی برای بخش فنی مهندسی
حوزهها با دامنهها یکسان نبوده و یک حوزه میتواند شامل مقادیری در رابطه با چندین دامنه باشد.
برفرض، دامنه www.google.com دارای زیردامنه ای به نام news است (news.google.com)،
درصورتیکه زیردامنه mail آن (mail.google.com) از دامنه اختصاصی www.gmail.com نیز قابل دسترسی می باشد.
روشهای جستجو
نحوه دسترسی به یک سرور از طریق سامانه DNS
همانگونه که اشاره شد، اسامی نمادین در شبکه اینترنت که خود در قالب حوزهها و زیر حوزهها سازماندهی شدهاند، در یک فایل متمرکز ذخیره نمیشوند بلکه روی کل شبکه اینترنت توزیع شدهاند، به همین دلیل برای ترجمه یک نام به نشانی آیپی ممکن است چندین مرحله «پرس و جو» صورت بگیرد تا یک نشانی پیدا شود.
طبیعی است که یک پرس و جو برای تبدیل یک نام حوزه همیشه موفقیت آمیز نباشد و ممکن است به پرس و جوهای بیشتری نیاز شود یا حتی ممکن است یک نشانی نمادین اشتباه باشد و هیچ معادل نشانی آیپی نداشته باشد.
سه روش برای پرس و جوی نام در سرویس دهندههای نام وجود دارد :
پرس و جوی تکراری (به انگلیسی: Iterative Query)
پرس و جوی بازگشتی (به انگلیسی: Recursive Query)
پرس و جوی معکوس (به انگلیسی: Reverse Query)
پرس و جوی تکراری
در پرس و جوی تکراری قسمت اعظم تلاش برای تبدیل یک نام بر عهده سرویس دهنده محلی است؛ این DNS حداقل به نشانی ماشین Root، به عنوان نقطه شروع نیاز دارد. وقتی یک تقاضای ترجمه نشانی به سرویس دهنده محلی ارسال میشود در صورتی که قادر به ترجمه نام به معادل نشانی آیپی آن باشد، معادل نشانی آیپی نام مورد نظر را به تقاضا کننده برمی گرداند. (این حالت وقتی است که سرویس دهنده محلی قبلاً آن نام را ترجمه و در یک فایل ذخیره کرده باشد.) در غیر این صورت سرویس دهنده محلی خودش یک تقاضا برای DNS سطح بالا ارسال میکند. این سرویس دهنده، نشانی ماشینی را که میتواند برای ترجمه نام مورد نظر مفید باشد، به سرویس دهنده محلی معرفی میکند؛ سرویس دهنده محلی مجدداً یک تقاضا به ماشین معرفی شده در مرحله قبل ارسال میکند.
در این حالت هم سرویس دهنده نام میتواند در صورت یافتن نشانی آیپی با آن نام حوزه، آنرا ترجمه کند و یا آنکه نشانی سرویس دهنده سطح پایینتری را به او برگرداند.
این روند ادامه مییابد تا DNS نهایی نام مورد نظر را به نشانی آیپی ترجمه نماید. برای درک بهتر از روند کار به شکل زیر دقت کنید.
در این مثال فرض شدهاست که یک برنامه کاربردیبا فراخوانی «تابع تحلیلگر نام»، تقاضای ترجمه نام www.microsoft.com را مینماید. مراحلی که انجام میشود به شرح زیر است :
در مرحله اول برنامه کاربردی با فراخوانی «تابع تحلیل نام»، تقاضای ترجمه نشانی www.microsoft.com را برای سرویس دهنده محلی ارسال کرده و منتظر میماند.
در مرحله دوم، سرویس دهنده محلی از سرویس دهنده Root (که حوزههای متفاوت را تفکیک میکند) نشانی ماشین یک DNS که متولی حوزه.com است را سؤال میکند.
در مرحله سوم، نشانی سرویس دهنده مربوط به حوزه. com بر میگردد.
در مرحله چهارم، سرویس دهنده محلی، از ماشین معرفی شده در مرحله قبلی، نشانی سرویس دهنده مربوط به حوزه Microsoft.com را سؤال مینماید.
در مرحله پنجم فهرستی از سرویس دهندههای DNS مربوط به Microsoft.com بر میگردد.
در مرحله ششم، سرویس دهنده محلی تقاضای ترجمه نشانی نمادین www.microsoft.com را از DNS متعلق به حوزه Microsoft.com میکند.
در مرحله هفتم، معادل نشانی آیپی نام www.microsoft.com برمی گردد.
در مرحله هشتم، نشانی آیپی خواسته شده در اختیار برنامه کاربردی قرار میگیرد.
پرس و جوی بازگشتی
در این روش هر گاه برنامهای بخواهد نشانی آیپی معادل یک نام مثل cs.yale.edu را بدست آورد، بگونهای که قبلاً اشاره شد، «تابع سیستمی تحلیل نام» را فراخوانی میکند. این تابع یک ماشین را بعنوان سرویس دهنده محلی از قبل میشناسد و بنابراین تقاضای تبدیل نام را به روش UDP برای آن ارسال کرده و منتظر جواب میماند (پاسخ نهایی DNS طبیعتاً باید یک نشانی ۳۲ بیتی معادل نشانی آیپی یک ماشین باشد(
دو حالت ممکن است اتفاق بیفتد :
ممکن است در بانک اطلاعاتی مربوط به سرویس دهنده محلی، نشانی آیپی معادل با آن نام از قبل وجود داشته و بالطبع به سرعت مقدار معادل نشانی آیپی آن بر میگردد.
ممکن است در بانک اطلاعاتی سرویس دهنده محلی، معادل نشانی آیپی آن نام وجود نداشته باشد. مثلاً سرویس دهنده محلی در بانک اطلاعاتی خودش معادل نشانی آیپی نام cs.mit.edu را نداشته و طبیعتاً نمیتواند آن را ترجمه کند.
در چنین حالتی سرویس دهنده محلی موظف است بدون آنکه به تقاضا دهنده خبر بدهد، خودش رأساً به سرویس دهنده سطح بالاتر تقاضای ترجمه نشانی بدهد. در این حالت هم DNS سطح بالاتر به همین نحو، ترجمه نشانی را پیگیری میکند. یعنی اگر معادل نشانی آیپی آن نام را داشته باشد آنرا برمی گرداند و در غیر اینصورت خودش از سرویس دهنده سطح پایینتر تقاضای ترجمه آن نام را مینماید و این مراحل تکرار میشود. در روش پرس و جوی بازگشتی ماشین سرویس دهنده محلی این مراحل متوالی را نمیبیند و هیچ کاری جز ارسال تقاضای ترجمه یک نشانی بر عهده ندارد و پس از ارسال تقاضا برای سرویس دهنده سطح بالا منتظر خواهد ماند.
بازهم تکرار میکنیم، روشی که DNS برای ترجمه نشانی بکار میبرد میتواند بدون اتصال (UDP) باشد که این کار به سرعت عمل ترجمه نشانی میافزاید.
دقت کنید که در روش پرس و جوی تکراری نسبت به روش پرس و جوی بازگشتی، حجم عمده عملیات بر عهده سرویس دهنده DNS محلی است و مدیریت خطاها و پیگیری روند کار ساده تر خواهد بود و روش منطقی تری برای بکارگیری در شبکه اینترنت محسوب میشود. روش پرس و جوی بازگشتی برای شبکههای کوچک کاربرد دارد. برای درک بیشتر این روش به شکل زیر دقت کنید.
پرس و جوی معکوس
فرض کنید حالتی بوجود بیاید که یک سرویس دهنده DNS، نشانی آیپی یک ماشین را بداند ولی نام نمادین معادل با آن را نداند. بعنوان مثال DNS مایل است بداند که چه نامی در شبکه اینترنت معادل با ۱۹۵.۱۳.۴۲.۷ میباشد.
در چنین حالتی مسئله کمی حادتر به نظر میرسد، چرا که برای ترجمه نامهای نمادین، چون این نامها دارای حوزه و زیرحوزه هستند، تحلیل نشانی ها سادهاست. ولی ترجمه نشانی آیپی به معادل نام حوزه، از چنین روابطی تبعیت نمیکند؛ بعبارت بهتر هیچ ارتباط مستقیم و متناظری بین نشانی های آیپی و اسامی انتخاب شده در اینترنت وجود ندارد. برای یافتن نامهای متناظر با یک نشانی آیپی باید یک جستجوی کامل و در عین حال وقت گیر، انجام بشود.
روش کار بدین صورت است که سرویس دهنده محلی یک تقاضا برای DNS متناظر با شبکهای که مشخصه آن در نشانی آیپی، مشخص شده، ارسال میکند.
بعنوان مثال نشانی آیپی شبکهای را ۱۳۸.۱۴.۷.۱۳ در نظر بگیرید، نشانی کلاس B و مشخصه آن ۱۳۸.۱۴.۰.۰ است. زمانی که مؤسسهای یک کلاس نشانی آیپی ثبت میدهد یک سرویس دهنده DNS، متناظر با شبکه خود ایجاد کرده و آنرا نیز معرفی میکند. سرویس دهنده محلی بایستی نشانی DNS متناظر با شبکه ۱۳۸.۱۴.۰.۰را پیدا کرده و سپس برای آن یک تقاضا ارسال کند. DNS مربوط به این شبکه، براساس زیر شبکههایی که دارد، این سؤال را از طریق سرویس دهندههای متناظر با هر زیر شبکه پیگیری میکند. (چون هر زیر شبکه یک سرویس دهنده DNS مخصوص به خود دارد) نهایتاً یک نام نمادین حوزه معادل با آن نشانی آیپی بر خواهد گشت.
ساختار دامنه
نام دامنه از ارقام و حروفی تشکیل شدهاست. یکی قسمت نام کارسازاست، دیگری نام دامنهو دیگری زیر دامنهاست.
مثلاً http://www.google.com را در نظر بگیرید.
Http پروتکل انتقال اطلاعاتدر وب است. نشانههای //: جهت جداسازی پروتکل از دامنه استفاده میشود. //:http جزء سامانه نام دامنه قرار نمیگیرد. قسمت www نام زیر دامنهاست. قسمت google نام دامنه و قسمت .comکارساز میباشد. هر زیردامنه میتواند آدرس IP متفاوتی با نام دامنه داشته باشد.
نام دامنه و زیر دامنه را صاحب دامنه انتخاب و ثبت میکند.
این قسمتها شامل حروف و اعداد انگلیسی و علامت منقی (-) نیز میتواند در میان اعداد و حروف (و نه در ابتدا و انتها) قرار گیرد.
کارسازهای مختلف، توسط آیکان (به انگلیسی: Icann) تصویب و در دسترس قرار میگیرد و شامل ۲ تا ۶ حرف انگلیسی میباشد.
ثبت دامنه در بسیاری از کارسازها نیاز به مجوزهای مخصوص دارد.
کارسازهای ۲ حرفی، در اختیار کشورهای صاحب آنها قرار میگیرد و قوانین ثبت در این کارسازها، توسط حکومتها تعیین میگردد.
مثلاً us در اختیار کشور آمریکا، .irدر اختیار کشور ایرانو .frدر اختیار کشور فرانسهمیباشد.
آیکان پروژهای را در دست دارد تا ثبت نامهای دامنه را به زبانهای مختلف بینالمللی امکان پذیر نماید. این پروژه هم اکنون در حالت آزمایش و بررسی قرار دارد.