DNS چیست و چگونه کار میکند؟

Images
Images
Images
Images

DNS چیست و چگونه کار میکند؟

  • مقالات
  • 2,971 بازدید

Domain Name System یا همان DNSسامانهٔ نام دامنه (Domain Name System) که به اختصار DNS خوانده می‌شود روشی سلسله مراتبی است که بانک اطلاعاتی مربوط به نام های نمادین و معادل IP آنها را روی کل شبکه اینترنت توزیع کرده است. این سیستم در سال 1984 ایجاد و طی سال های بعد توسعه یافت.


وقتی میخواهید وارد سایتی شوید، می بایست آدرس وب سرور آنرا بدانید.آدرس وب سرور با آدرس IP مشخص میشود، اما به خاطر سپردن آدرس IP دشوار است، لذا می توان به جای IP از Domin Name ها (که در ابتدای این مقاله با عبارت نام نمادین از آن یاد کردیم ) استفاده کرد. برای هر IP یک Domin Name در نظر گرفته شده است. مثلا IP آدرس گوگل 66.249.91.103 است. که شما برای دسترسی به گوگل میتوانید از IP یا آدرس www.google.com استفاده کنید.

 

تابع تحلیلگر نام 

در DNS ، کل آدرس های اینترنت درون بانک های اطلاعاتی توزیع شده ای هستند که هیچ تمرکزی روی نقطه ای خاص از شبکه ندارند . روش ترجمه نام بدین ترتیب است که وقتی یک برنامه کاربردی مجبور است برای برقراری یک ارتباط ، معادل آدرس IP از یک ماشین با نامی مثل CS.ucsb.edu را بدست بیاورد ، قبل از هر کاری یک تابع کتابخانه ای (Library Function) را صدا می زند ، به این تابع کتابخانه ای «تابع تحلیلگر نام » (Name Resolver) گفته می شود.

تابع تحلیلگر نام ، یک آدرس نمادین را که بایستی ترجمه شود ، بعنوان پارامتر ورودی پذیرفته و سپس یک بسته ی درخواست (Query Packet) به روش UDP تولید کرده و به آدرس یک سرویس دهنده ی DNS (که به صورت پیش فرض مشخص می باشد) ارسال می کند . همه ی ماشین های میزبان ، می بایست حداقل باید آدرس IP از یک سرویس دهنده ی DNS را در اختیار داشته باشند .

نمایی از عملکرد یک Doman Name System

 

این «سرویس دهنده ی محلی» پس از جستجو ، آدرس IP معادل با یک نام نمادین را بر می گرداند . (تابع تحلیلگر نام) نیز آن آدرس IP را به برنامه ی کاربردی تحویل می دهد با پیدا شدن آدرس IP ، برنامه ی کاربردی می تواند عملیات مورد نظرش را ادامه بدهد . روش های جستجو در سیستم DNS برای تحلیل یک نام حوزه ، سطوح از سمت راست به چپ تفکیک می شوند و در یک روند سلسله مراتبی ، سرویس دهنده ی متناظر با آن سطح پیدا می شود .

 

۷ حوزه عمومی که همه آنها سه حرفی هستند عبارتند از:

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

 

  1. com. : صاحب این نام جزو موسسات اقتصادی و تجاری به شمار می آید. www.sony.com
  2. edu. : صاحب این نام جزو موسسات علمی یا دانشگاهی به شمار می آید. www.sharif.edu
  3. gov. : این نام برای آژانس های دولتی آمریکا اختصاص داده شده است. www.whitehouse.gov
  4. int. : صاحب این نام یکی از سازمان های بین المللی (مثل یونسکو ، فائو ،...) محسوب می شود. www.unicef.int
  5. mil. : این نام ویژه مراکز نظامی آمریکا می باشد.
  6. net. : صاحب این نام از ارائه دهندگان خدمات شبکه به شمار می رود. www.pegah.net
  7. org. : صاحب این نام از سازمان های عام المنفعه و غیر انتفاعی محسوب می شوند. www.ieee.org

 

نام حوزه های بسیار زیادی در اینترنت تعریف شده اند که هیچیک از حوزه های سه حرفی هفتگانه را در انتهای آنها نمی بینید . معمولا در انتهای این آدرس ها یک رشته دو حرفی مخفف نام کشوری است که آن آدرس و ماشین صاحب آن ، در آن کشور واقع است .
 

هر حوزه می تواند به زیر حوزه های کوچکتری تقسیم شود که به آن دامنه سطح دوم نیز گفته می شود. به عنوان مثال نام‌ های مربوط به حوزه ایران که با ir. مشخص می شود به ۷ زیرحوزه به شرح زیر تقسیم می ‌شود:

 

  1. .ac.ir : فقط برای دانشگاه‌ها یا موسسه های آموزشی
  2. .co.ir : فقط برای شرکت ‌های سهامی خاص، سهامی عام، مسوولیت محدود و تضامنی
  3. .gov.ir : فقط برای موسسه ها یا سازمان ‌های دولتی
  4. .id.ir : فقط برای افراد دارای ملیت ایرانی
  5. .net.ir : فقط برای سرویس ‌دهندگان رسمی اینترنت
  6. .org.ir : فقط برای موسسه ها و سازمان‌ های خصوصی
  7. .sch.ir : فقط برای مدارس

 

مثلا" برای دامین http://eng.ut.ac.ir اطلاعات زیر را داریم:

  • کشور: ایران
  • هویت: دانشگاه
  • نام دانشگاه: ut (سرواژه ای برای نام دانشگاه تهران)
  • نام دانشکده: eng (سرواژه ای برای بخش فنی مهندسی)

 

حوزه‌ها (Zone) با دامنه‌ها (Domain) یکسان نبوده و یک حوزه می‌تواند شامل مقادیری در رابطه با چندین دامنه باشد. به عنوان مثال دامنه www.google.com دارای زیردامنه ای به نام news است (news.google.com) , درصورتیکه زیردامنه mail آن (mail.google.com) از دامنه اختصاصی www.gmail.com نیز قابل دسترسی می باشد.

 

روشهای جستجو در سرویس دهنده های نام


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

 

3 روش برای پرس و جوی نام در سرویس دهنده های نام وجود دارد :

 

  1. پرس و جوی تکراری (Iterative Query)
  2. پرس و جوی بازگشتی (Recursive Query)
  3. پرس و جوی معکوس (Reverse Query)

 

» حال به بررسی این سه روش می پردازیم :


1) پرس و جوی تکراری

در پرس و جوی تکراری قسمت اعظم تلاش برای تبدیل یک نام بر عهده سرویس دهنده محلی است؛ این DNS حداقل به آدرس ماشین Root ، به عنوان نقطه شروع نیاز دارد . وقتی یک تقاضای ترجمه آدرس به سرویس دهنده محلی ارسال می شود در صورتی که قادر به ترجمه نام به معادل IP آن باشد ، معادل آدرس IP نام مورد نظر را به تقاضا کننده برمی گرداند. (این حالت وقتی است که سرویس دهنده محلی قبلاً آن نام را ترجمه و در یک فایل ذخیره کرده باشد.) در غیر این صورت سرویس دهنده محلی خودش یک تقاضا برای DNS سطح بالا ارسال می کند. این سرویس دهنده ، آدرس ماشینی را که می تواند برای ترجمه نام مورد نظر مفید باشد ، به سرویس دهنده محلی معرفی می کند؛ سرویس دهنده محلی مجدداً یک تقاضا به ماشین معرفی شده در مرحله قبل ارسال می کند. در این حالت هم سرویس دهنده نام می تواند در صورت یافتن آدرس IP با آن نام حوزه ، آنرا ترجمه کند و یا آنکه آدرس سرویس دهنده سطح پایینتری را به او برگرداند .این روند ادامه می یابد تا DNS نهایی نام مورد نظر را به آدرس IP ترجمه نماید. برای درک بهتر از روند کار به شکل زیر دقت کنید. در این مثال فرض شده است که یک برنامه کاربردی با فراخوانی "تابع تحلیلگر نام"، تقاضای ترجمه نام www.microsoft.com را می نماید.


مراحلی که انجام می شود به شرح زیر است:

 

  1. در مرحله اول برنامه کاربردی با فراخوانی "تابع تحلیل نام" ، تقاضای ترجمه آدرس www.microsoft.com را برای سرویس دهنده محلی ارسال کرده و منتظر می ماند.
  2. در مرحله دوم ، سرویس دهنده محلی از سرویس دهنده Root (که حوزه های متفاوت را تفکیک می کند) آدرس ماشین یک DNS که متولی حوزه .com است را سؤال می کند.
  3. در مرحله سوم ، آدرس سرویس دهنده مربوط به حوزه .com بر می گردد.
  4. در مرحله چهارم ، سرویس دهنده محلی ، از ماشین معرفی شده در مرحله قبلی ، آدرس سرویس دهنده مربوط به حوزه www.microsoft.com را سؤال می نماید.
  5. در مرحله پنجم فهرستی از سرویس دهنده های DNS مربوط به www.microsoft.com بر می گردد.
  6. در مرحله ششم، سرویس دهنده محلی تقاضای ترجمه آدرس نمادین www.microsoft.com را از DNS متعلق به حوزه www.microsoft.com می کند.
  7. در مرحله هفتم ، معادل آدرس IP نام www.microsoft.com برمی گردد.
  8. در مرحله هشتم ، آدرس IP خواسته شده در اختیار برنامه کاربردی قرار می گیرد.

 

2) پرس و جوی بازگشتی

در این روش هر گاه برنامه ای بخواهد آدرس IP معادل یک نام مثل cs.yale.edu را بدست آورد بگونه ای که قبلاً اشاره شد ، "تابع سیستمی تحلیل نام" را فراخوانی می کند. این تابع یک ماشین را بعنوان سرویس دهنده محلی از قبل می شناسد و بنابراین تقاضای تبدیل نام را به روش UDP برای آن ارسال کرده و منتظر جواب می ماند
(پاسخ نهایی DNS طبیعتاً باید یک آدرس 32 بیتی معادل آدرس IP یک ماشین باشد)


دو حالت ممکن است اتفاق بیفتد:

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

دقت کنید که در روش پرس و جوی تکراری نسبت به روش پرس و جوی بازگشتی ، حجم عمده عملیات بر عهده سرویس دهنده DNS محلی است و مدیریت خطاها و پیگیری روند کار ساده تر خواهد بود و روش منطقی تری برای بکارگیری در شبکه اینترنت محسوب می شود. روش پرس و جوی بازگشتی برای شبکه های کوچک کاربرد دارد.


3) پرس و جوی معکوس:

فرض کنید حالتی بوجود بیاید که یک سرویس دهنده DNS ، آدرس IP یک ماشین را بداند ولی نام نمادین معادل با آن را نداند. بعنوان مثال DNS مایل است بداند که چه نامی در شبکه اینترنت معادل با 195.13.42.7 می باشد. در چنین حالتی مسئله کمی حادتر به نظر می رسد ، چرا که برای ترجمه نامهای نمادین ، چون این نامها دارای حوزه و زیرحوزه هستند ، تحلیل آدرسها ساده است ولی ترجمه آدرس IP به معادل نام حوزه ، از چنین روابطی تبعیت نمی کند ؛ بعبارت بهتر هیچ ارتباط مستقیم و متناظری بین آدرسهای IP و اسامی انتخاب شده در اینترنت وجود ندارد. برای یافتن نامهای متناظر با یک آدرس IP باید یک جستجوی کامل و در عین حال وقتگیر انجام بشود.

 

روش کار بدین صورت است که سرویس دهنده محلی یک تقاضا برای DNS متناظر با شبکه ای که مشخصه آن در آدرس IP ، مشخص شده ، ارسال می کند. بعنوان مثال آدرس IP شبکه ای را 138.14.7.13 در نظر بگیرید ، آدرس کلاس B و مشخصه آن 138.14.0.0 است . زمانی که مؤسسه ای یک کلاس IP ثبت می دهد یک سرویس دهنده DNS ، متناظر با شبکه خود ایجاد کرده و آنرا نیز معرفی می کند.

 

سرویس دهنده محلی بایستی آدرس DNS متناظر با شبکه 138.14.0.0 را پیدا کرده و سپس برای آن یک تقاضا ارسال کند. DNS مربوط به این شبکه ، براساس زیر شبکه هایی که دارد این سؤال را از طریق سرویس دهنده های متناظر با هر زیر شبکه پیگیری می کند. (چون هر زیر شبکه یک سرویس دهنده DNS مخصوص به خود دارد) نهایتاً یک نام نمادین حوزه معادل با آن آدرس IP بر خواهد گشت.
 

دامنه سطح ‌دوم
در سلسله مراتب سامانه نام دامنه، یک دامنه سطح دوم (Second Level Domain) (به اختصار SLD) دامنه ای است که بطور مستقیم زیر یک دامنه سطح بالا قرار دارد. برای مثال، در google.com , عبارت google دامنه سطح دومی از دامنه سطح بالای com. می باشد. دامنه‌های سطح دوم معمولاً به تشکیلاتی که نام دامنه آن با یک ثبت کننده نام دامنه ( Domain Name Registrar ) ثبت شده است منسوب می شود. برخی از ثبت کننده‌های نام دامنه سلسله مراتبی از دامنه سطح دوم یک دامنه سطح بالا را مطرح می کنند که نشانگر نوع تشکیلاتی است که قصد ثبت دامنه سطح دوم تحت آن وجود دارد. به عنوان مثال، در حوزه نام uk. یک دانشگاه یا موسسه فرهنگی دیگر تمایل دارد که دامنه خود را تحت یک دامنه سطح دوم کد کشوری (country code Second Level Domain) (به اختصار ccSLD) به نام .ac.uk به ثبت برساند، در حالیکه شرکت‌ها تمایل دارند دامنه خود را تحت .co.uk ثبت کنند.

لیست جزئیات بیشتر به همراه معرفی انواع رکوردهای DNS و روش تنظیم DNS بر روی سرور

منبع : مشاهده

پست های تصادفی

طوفان فکری با تیم مشاوران آکو

درخواست مشاوره
مشاوره با آکو