DNS چیست؟ جزییات تبدیل نام دامنه به IP

DNS چیست؟ جزییات تبدیل نام دامنه به IP

امید صادقی ادمین
مدت زمان مطالعه: 15 دقیقه 22 خرداد 01

DNS، مخفف عبارت  Domain Name System است. ما با استفاده از نام دامنه نظیر example.com به صورت آنلاین به اطلاعات وب سایت ها دسترسی پیدا می کنیم.

مرورگرهای وب (web browsers  ) به صورت Interact با IP ( Internet Protocol ) گفت و گو می کنند. DNS نام دامنه را به IP تبدیل می کند و به این صورت مرورگرها قادر می شوند، منابع موجود در اینترنت را load کنند.

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

DNS سرورها، نیاز ما را در به خاطر سپردن مقادیر IP نظیر 192.18.1.1 ( in IPv4 ) و یا سایر مقادیر پیچیده تر نظیر2400:cb00:2048:1::c654:d7a2 ( in IPv6 )  از بین می برند.

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

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

طی پروسه dns، نام دامنه مانند example.com به IP که برای کامپیوتر قابل فهم است تبدیل می شود.

همانند پیدا کردن آدرس یک خیابان، کامپیوترها نیز از طریق IP می توانند آدرس یکدیگر را بیابند. زمانی که یک User نام دامنه خود را در مرورگر وارد می کند، این آدرس به IP تبدیل شده و اطلاعات فضایی که IP به آن اشاره می کند را فراخوانی می کند.

برای آن که بدانیم در پشت پروسه DNS دقیقا چه فرآیندی طی می شود، لازم است در ابتدا در خصوص کامپوننت های سخت افزاری مختلف که قرار است، درخواست dns ( DNS query ) بین آنها رد و بدل شود، اطلاعات بیشتری کسب کنیم.

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

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

مرحله اول: درخواست کردن اطلاعات وب سایت

برای لود یک وب سایت، نام دامنه مد نظر را در مروگر خود وارد می کنیم. در این مرحله کامپیوتر ما شروع به پیدا کردن HostName نظیر www.example.com می کند. سپس کامپیوتر ما در  DNS Local Cacheخود به دنبال مقدار  IPخاصی می گردد که به دامنه وارد شده اشاره دارد.

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

اما اگر این اطلاعات در فایل کش دی ان اس کامپیوتر لوکال ما وجود نداشته باشد، کامپیوتر ما کوئری های لازم را برای بازیابی اطلاعات صحیح وب سایت ارسال می کند.

مرحله دوم: برقراری ارتباط با یک DNS سرور بازگشتی ( Recursive DNS Server )

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

Recursive DNS Server همانند کامپیوتر ما دارای کش لوکال است.

بسیاری از ارائه دهندگان اینترنت ( ISP’s ) از Recursive DNS Server مشابهی استفاده می کنند، و ممکن است اطلاعات مربوط به دامنه در کش این سرورها وجود داشته باشد. در صورتی که اطلاعات وب سایت در کش این سرورها وجود داشته باشد، مراحل جست و جوی IP به اتمام می رسد و نام دامنه به IP تبدیل شده و سایت به کاربر نمایش داده می شود.

مرحله سوم : ارسال درخواست به Authoritative DNS Server

اگر dns server های بازگشتی اطلاعات مربوط به دامنه را در کش حافظه خود نداشته باشند، آنها برای یافتن اطلاعات، جای دیگری را جستجو می کنند. به این منظور درخواست وارد زنجیره Authoritative DNS Server می شود. این جست و جو تا زمانی که نام دامنه به IP تبدیل نشده است، ادامه می یابد.

این نیم سرورهای اعتبار سنجی شده ( authoritative name servers ) در برابر بازیابی رکوردهای مربوط به دامنه وارد شده، پاسخگو هستند.

مرحله چهارم: دسترسی به رکورد های DNS

برای دست یابی IP مربوط به دامنه، درخواست های ما به authoritative name server ارسال می گردد تا مقدار A record استخراج شود. یک DNS سرور بازگشتی به A Record که توسط authoritative name server بازگردانی شده، دسترسی پیدا می کند و سپس آن را در کش خود ذخیره می کند. 

اگر در درخواست های بعدی مجددا مقدار A record مربوط به همین دامنه درخواست شود DNS Recursive Server با استفاده از کش خود، اطلاعات آدرس سایت را فراخوانی می کند. 

هر رکورد DNS داری مقداری با نام TTL است که مخفف Time To Live بوده و نشان دهنده زمان منقضی شدن یک query است.

بعد از گذشت مدت زمانی،  Recursive DNS Server درخواست آپدیت شدن کپی رکوردها را ارسال می کند.

مرحله پنجم: مرحله نهایی DNS Resolving

در این مرحله Recursive DNS server اطلاعات لازم را در اختیار داشته و آنرا به کامپیوتر ما ارسال می کند. کامپیوتر ما رکوردهایی را که از Recursive DNS Server دریافت کرده است، در کش dns سیستم لوکال ذخیره می کند. 

سپس مقدار آدرس IP از رکوردهای DNS خوانده شده و به مرورگر ارجاع داده می شود. درنهایت مرورگر وب ما به وب سروی که مقدار آی پی A Record به آن اشاره دارد، متصل شده و اطلاعات سایت را که در یک vitual directoy قرار دارد، به ما نمایش می دهد.

کل فرآیند جست و جوی DNS در حد چند میلی ثانیه به طول می انجامد.

برای درک بهتر، در ادامه سعی می شود تا کامپوننت های مختلفی را که پروسه جست و جوی dns را پردازش می کنند، تشریح نماییم.

دسترسی به رکورد های DNS


Authoritative DNS Server چیست؟

Authoritative DNS Server چیست؟

یک Authoritative DNS Server سروری است که اطلاعات رکوردهای DNS دامنه ها را نظیر A، CNAME، MX، TXTو... در خود ذخیره می کند. این سرور تنها به درخواست هایی پاسخگو است که فایل DNS Zone آنها را به طور لوکال در خود ذخیره کرده باشد.

Recursive NameServer ( نام سرورهای بازگشتی )

یک Recursive NameServer یک سرور دی ان اس است که درخواست ها را برای اهداف اطلاعاتی دریافت می کند. این نوع سرورها رکوردهای dns را در خود ذخیره نمی کنند. زمانی که در این سرورها یک query دریافت می شود، پروسه جست و جو در Memory cache سرور، به منظور یافتن IP لینک شده به دامنه آغاز می شود. 

اگر اطلاعات مربوط به دامنه در مموری کش سرور وجود داشته باشد، این مقدار به ارسال کننده درخواست ( Request Sender ) بازگردانده می شود. اما اگر اطلاعاتی در اختیار نداشته باشد، درخواست را به یک Recursive DNS Server دیگر ارسال می کند.

این پروسه تا زمانی که درخواست به authoritative سروری برسد که اطلاعات IP مربوط به دامنه را در اختیار داشته باشد، ادامه می‌یابد.

تا به اینجا، اجزای مختلفی را که پروسه تبدیل نام دامنه به IP انجام می دهند، معرفی کرده و ارتباط آنها را در دیدی کلی ترسیم کردیم. در ادامه جزییات پروسه تبدیل نام به آی پی را بررسی خواهیم کرد. 

جزییات پروسه تبدیل نام به IP ( DNS Resolving )

پروسه تبدیل نام به IP زمانی آغاز می شود که کاربر آدرس دامنه مد نظر خود را در مرورگر وارد نموده و بر روی دکمه Enter کلیک کند. در این زمان مرورگر در مرحله اول آدرس وب سایت از سیستم کامل ما می پرسد تا وب سایت را لود کند.

طی مقاله پیش رو فرض شده است که در هر هیچ مرحله اطلاعات dns در کش هیچ یک از کامپوننت ها وجود ندارد. تا بتوانیم یکبار تمام پروسه را از ابتدا تا پایان بررسی کنیم.

  • مراحل اول: جست و جوی بازگشتی سیستم عامل ( OS Recursive ) در DNS Reslover

از آنجایی که سیستم عامل اطلاعی از محل وب سایت ( مثلا WWW.SABA.HOST ) ندارد، سیستم عامل درخواست خود را به یک DNS Resolver ارسال می کند. اما برای ارسال این درخواست و ادامه جست و جو، سیستم عامل جست و جوی خود را در DNS Resolver ای انجام می دهد که داری Flag با نام " recursive query " باشد.

این یعنی سروری که به عنوان Resolver تنظیم شده است می بایست پروسه جست و جو را تا جایی ادامه دهد که یا مقدار IP را یافته و اطلاع دهد و یا در صورتی که با خطا مواجه شد، پیغام خطای متناسبی نمایش دهد.

اکثرا کاربران از DNS Resolver های ارایه دهندگان اینترنت خود (  ISP’s) استفاده می کنند و یا از یک جایگزین Open Source نظیر دی ان اس های گوگل ( 8.8.8.8 ) یا دی ان اس های OpenDNS ( 208.67.222.222 ). این مقادیر در تنظیمات Network و یا در router قابل تغییر است.

در این مرحله Resolver وارد پروسه ای با نام Recursion to convert the domain name to an IP address می شود.

سرورهای بازگشتی

  • مرحله دوم: ارسال Iterative query به Root Server توسط DNS Resolver

Resolver کار خود را با جست و جو در یکی از Root Server ها آغاز می کند. این جستجو دارای هیچ پرچمی ( Flag ) با عنوان Recursive نیست، بنابراین این نوع جستجو یک iterative query بوده و به این معنی است که در پاسخ لازم است آدرس IP محلی را بازگرداندی کند که مربوط به یک authorative Server باشد، و یا در صورتی که بازگردانی این آدرس نباشد، می بایست یک ارور بازگردانی کند.

روت توسط نقطه ای که در پایان url  قرار دارد فراخوانی می شود. نیازی به قرار دادن این نقطه به صورت دستی در پایان url  نیست و به طور اتوماتیک مرورگر ها این نقطه را به صورت Hidden در آخر آدرس وارد شده در مرورگر قرار می دهند.

لازم به ذکر است که 13 سرور root به صورت Cluster، با نام A-M در 380 مکان مختلف وجود دارند.

این روت سرورها توسط 12 ارگان بزرگ بین المللی پشتیبانی می شوند که به سازمان  ( IANA )گزارش می دهند. تمامی این روت سرورها نسخه کپی از سرور مستری می باشند که توسط LANA ایجاد شده است.

  • مرحله سوم: پاسخ دهی سرور ROOT

سرورهای روت، آدرس تمام مکان هایی که اطلاعات Top Level Domains ( TLDs ) را در خود نگهداری می کنند، در اختیار دارند.

سرورهای روت آدرس IP مربوط به وب سایت ها، به طور مثال SABA.HOST را در اختیار ندارند. اما بسته به TLD دامنه، آدرس سرورهایی را که اطلاعات مربوط به TLD را اختیار دارند، می داند ( مثلاً، آدرس سرور هایی که اطلاعات مربوط به TLD دامنه .com یا .Host را در اختیار دارند ).

سرور روت با 13 مکان مختلفی که آدرس TLD وارد شده را در اختیار دارند، به عنوان لیستی از رکوردهای NameServer ( NS ) اقدام به پاسخ گویی می کند.

  • مرحله چهارم: جست و جوی Iterative توسط DNS Resolver در TLD Server

در این مرحله Resolver جست و جوی خود را در سرور TLD ای که اطلاعات TLD وارد شده در مروگر را نظیر HOST. در اختیار دارد، آغاز می کند. به طور مثال فرض کنیم دامنه Saba.Host را در مرورگر وارد نموده ایم. در ابتدا با نقطه ای که در پایان نام دامنه مرورگر به صورت اتوماتیک قرار می گیرد، به سرور روت متصل می شویم و سپس سرور روت آدرس TLD Server مربوط به .host را در اختیار resolver قرار می دهد. پس از مراجعه Resolver به TLD Server، جست و جو به دنبال Saba.Host ادامه می یابد.

همانند سرور روت، TLD Server ها نیز به صورت cluster با 4 تا 13 سرور دیگر، در مکان های مختلف قرار دارند.

TLD Serverها بر دو نوع دارند: Country Code ( ccTLDs ) که به وسیله دولت ها پشتیبانی و ساماندهی می شود و generic یا GTLD.

  • مرحله پنجم: پاسخ TLD Server

آموزش راه اندازی DNS اختصاصی

هر TLD سرور، لیستی از  authoritative serverها را برای هر دامنه در TLD در اختیار دارد. برای مثال، هر یک از 13 سرور gtld برای دامنه .Host لیستی از Name Server ها را برای هر دامنه .Host موجود در TLD Server در اختیار دارند.

اما مانند root server، در TLD Server ها نیز مقدار IP متعلق به یک دامنه در اختیار نمی باشد و تنها Name Server ( NS ) مربوط به هر دامنه نگهداری می شود. 

بنابراین پاسخی را که TLD Server بهresolver  ارسال می کند، حاوی اطلاعات مربوط به name server های دامنه مد نظر ما می باشد. 

به طور مثال، در صورتی که ما به دنبال جست و جوی saba.host باشیم، TLD Server مقادیر دی ان اسی را که بر روی دامنه saba.host تنظیم شده است بر می گرداند. این مقادیر به شکل زیر به resolver معرفی می شود. NS1.Saba.Host و NS2.Saba.host

  • مرحله ششم: جست و جوی Iterative توسط Resolver در Name Server های دامنه

در نهایت DNS Resolver یکی از Name Server های تنظیم شده ( NS1.Saba.Host ) بر روی دامنه مد نظر ( Saba.Host ) را به منظور یافتن مقدار IP سرور میزبان سایت جست و جو می کند.

  • مرحله هفتم: پاسخ NameServer ( NS ) دامنه ( Saba.Host )

در این مرحله NSهای مربوط به دامنه، مقدار IP وب سرور میزبان دامنه را در اختیار داشته و IP را به Resolver، ارجاع می دهند.

  • مرحله هشتم: پاسخ DNS Resolver به سیستم عامل ( OS )

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

آموزش راه اندازی DNS

  • مرحله نهم: برقراری ارتباط TCP مرورگر با وب سرور

در این مرحله مرورگر با دانستن IP آدرس وب سرور، از طریق پروتکل HTTP به صورت TCP با وب سرور ارتباط برقرار کرده و اطلاعات وب سایت نمایش داده می شود.

DNS  اختصاصی چیست؟

 DNS اختصاصی همان DNS می باشد که به صورت اختصاصی و مجزا برای دامنه ما تعریف می شود. به عنوان مثال ما سایتی با دامنه yourdomain.com را خریداری می کنیم، اما نمی خواهیم از نیم سرورهای پیش فرض شرکت هاستینگ و میزبانی وب خود استفاده کنیم. چراکه هنگام whois گرفتن دامین، نام شرکت میزبان ما نمایش داده خواهد شد. به عنوان مثال، ممکن است به این صورت باشد: ns1.saba.host 

چنانچه بخواهیم اطلاعات به صورت دلخواه و مطابق با نام دامین ما نمایش داده شود، باید DNS اختصاصی خریداری کنیم. در این صورت اطلاعات دامنه به این شکل نمایش داده خواهد شد: ns1.yourdomain.com و ns2.yourdomain.com

آموزش راه اندازی DNS اختصاصی 

 1- ابتدا می بایست دو عدد ChildName Server با نام دلخواه ( مثلاً ns1.yourdomain.com , ns2.yourdoamin.com ) به آی پی سرور ( که زمان خرید سرویس برای ما ارسال می شود ) ایجاد کنیم.

2- سپس به شرکت میزبانی خود اعلام می کنیم تا تغییرات بعدی را از سمت سرور اعمال کنند که DNS اختصاصی ما راه اندازی شود. پس از انجام تغییرات مربوطه، دامنه خود را در http://whois.com جستجو کرده و از صحت تنظیم DNS  خود مطمئن می شویم. 

نتیجه گیری

DNS اساس آدرس دهی و مسیر یابی در فضای اینترنت می باشد. به طوری که در صورتی پروسه DNS Resolving یعنی تبدیل نام به IP صورت نگیرد، اطلاعات وب سایت ها لود نخواهند شد. همچنین در صورتی که نام به مقدار IP تبدیل نشود، کاربران اینترنت لازم است مقادیر IP ورژن ها 4 و 6 را حفظ نمایند بدیهی است که به خاطر سپردن آن ها کاربران را با مشکل مواجه خواهد نمود.

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

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

موفق باشید.

برچسب ها :
دسته بندی ها :