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

DNS چیست و چگونه کار می کند – DNS ( Domain Name System ) در واقع مانند یک دفترچه تلفن است. انسان ها از طریق نام های دامنه ( Domain ) به اطلاعات آنلاین مانند دامنه msp-ict.com دسترسی دارند . تعاملات مرورگر های وب به واسطه پروتکل IP انجام می پذیرد. DNS نام دامنه را به آدرس IP ترجمه می نماید تا مرورگر ها بتوانند منابع اینترنتی را بارگذاری نمایند.

هر دستگاه متصل به اینترنت دارای یک آدرس IP منحصر بفرد است که سایر دستگاه ها برای یافتن دستگاهای دیگر از آن استفاده می نمایند. DNS server ها نیاز انسان از حفظ آدرس های IP مانند 192.168.1.1 را از میان می برند. همچنین حفظ نمودن آدرس های IP همه ارتباطات در اینترنت و شبکه های داخلی برای انسان امری غیر ممکن است و DNS سرور با ایفای این نقش در راحتی ارتباطات شبکه ای به انسان کمک بزرگی نموده است.

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

فرایند DNS شامل تبدیل نام میزبان برای مثال ( www.msp-ict.com ) به آدرس IP “( 192.168.1.1 )” می باشد. یک آدرس IP به هر دستگاه در اینترنت تخصیص داده می شود و این آدرس برای یافتن آن دستگاه در اینترنت مانند آدرس خیابان برای یافتن یک خانه خاص ضروری است . هنگامی که کاربر قصد دارد صفحه وب را مشاهده نماید، باید بین آنچه کاربر در مرورگر وب خود تایپ می نماید (msp-ict.com) و آدرس لازم جهت مکان یابی صفحه وب msp-ict.com، ترجمه انجام شود. به منظور درک بهتر فرآیند ترجمه DNS، مهم است که در مورد اجزای سخت افزاری مختلفی که یک Query از DNS باید بین آن ها عبور نماید را شناسایی نماییم.

 

4  DNS سرور در بارگذاری یک صفحه وب دخیل هستند :

  • DNS Recursor : در واقع Recursor بازگشت کننده را می توان مانند کتابداری در نظر گرفت که از او درخواست می شود کتاب خاصی را در جایی از کتابخوانه پیدا نماید. DNS Recursor یک سرور است که برای دریافت Query از سمت کلاینت به واسطه استفاده در برنامه های مانند مرورگر های وب ، طراحی گردیده. سپس با سرور های دیگر DNS ارتباط برقرار می نماید تا آدرس IP مناسب را پیدا نماید. پس از اینکه DNS Recursor درخواستی را از سمت کلاینت دریافت می کند خودش مانند یک کلاینت عمل خواهد نمود و درخواست خود را به سمت سه سرور دیگر ارسال خواهد نمود.
  • Root nameserver : این سرور جهت منطقه ریشه DNS ( Root ) تعیین شده است. این اولین قدم در ترجمه و تبدیل نام به IP می باشد. می توان از آن مانند فهرست موضوعات در کتابخوانه یاد نمود که به قفسه های مختلفی از کتاب اشاره می نماید و مثل مرجعی برای مکان های دقیق تر دیگر عمل می نماید. وظیفه آن پاسخگویی به درخواست هایی است که جهت رکورد ها در منطقه Root به آن ارسال می گردد.
  • Top-level Domain nameserver ( TLD ) : سرور دامنه سطح بالا را می توان به یک قفسه خاص از کتاب در کتابخوانه تشبیه نمود. TLD گام بعدی در جستجوی یک آدرس IP خاص است و آخرین بخش از نام را میزبانی می کند. به عنوان مثال در msp-ict.com در واقع com سرور TLD می باشد.
  • Authoritative nameserver : این سرور نام نهایی را می توان به عنوان یک فرهنگ لغت روی یک قفسه کتاب در نظر گرفت که در آن می توان یک نام خاص را به تعریف آن ترجمه کرد. سرور نام معتبر ( Authoritative nameserver ) آخرین توقف در Query سرور نام است. اگر Authoritative nameserver به رکورد درخواستی دسترسی داشته باشد، آدرس IP برای نام میزبان درخواستی را به DNS Recursor که درخواست اولیه را انجام داده است، برمی گرداند.

 

تفاوت Authoritative DNS و Recursive DNS :

سرورهای نام معتبر ( Authoritative nameserver ) اطلاعات سوابق DNS را نگهداری می نماید. سرور بازگشتی ( Recursive Server ) به عنوان یک واسطه عمل می نماید که بین Authoritative server و کاربر نهایی قرار می گیرد. برای دسترسی به Nameserver ، سرور بازگشتی باید از طریق درخت DNS  را پیمایش کند تا به رکوردهای دامنه دسترسی پیدا نماید.

 

  • Authoritative DNS Server : برای روشن شدن مطلب یک دفترچه تلفن را مورد مثال قرار می دهیم. آدرس IP را به عنوان شماره تلفن و نام شخص را به عنوان URL در نظر بگیرید. سرور های Authoritative یک کپی از این دفترچه تلفن دارند که آدرس های IP را با نام دامنه مربوط به آن مرتبط می سازند. آنها به درخواست ها و Query های ارسال شده توسط سرورهای بازگشتی ( Recursive DNS nameserver ) پاسخ می دهند و اطلاعاتی را در مورد مکان یافتن وب سایت های خاص ارائه می دهند. پاسخ های ارائه شده حاوی آدرس IP دامنه های درخواست شده می باشد. سرور های Authoritative مسئول مناطق خاص مانند یک کشور، یک سازمان و یا یک منطقه محلی می باشند. صرف نظر از اینکه کدام منطقه تحت پوشش قرار گرفته، یک سرور Authoritative DNS دو کار مهم را انجام می دهد. اول ابتدا، سرور لیستی از نام های دامنه و آدرس های IP که با آن ها همراه است را نگه می دارد و دوم ، سرور به درخواست‌های سرور DNS بازگشتی در مورد آدرس IP مربوط به نام دامنه پاسخ می‌دهد. هنگامی که سرور DNS بازگشتی پاسخ را دریافت می نماید، آن اطلاعات را به کامپیوتر یا دستگاهی که آن را درخواست نموده است ارسال می کند. سپس کامپیوتر از آن اطلاعات برای اتصال به آدرس IP استفاده و کاربر وب سایت را مشاهده خواهد نمود.
  • Recursive DNS Server : پس از اینکه کاربر یک URL را در مرورگر وب خود تایپ نمود، آن URL به سرور DNS بازگشتی ارسال می گردد. سپس سرور DNS بازگشتی حافظه Cache خود را بررسی می نماید تا ببیند آیا آدرس IP برای URL قبلاً ذخیره شده است یا خیر. اگر اطلاعات آدرس IP از قبل وجود داشته باشد، سرور DNS بازگشتی آدرس IP را به مرورگر ارسال می کند. سپس کاربر می تواند وب سایتی را که URL را برای آن تایپ نموده است مشاهده کند. از طرف دیگر، اگر سرور DNS بازگشتی هنگام جستجو در حافظه خود آدرس IP را پیدا نکند، فرآیند دریافت آدرس IP برای کاربر را ادامه خواهد داد. در گام بعدی سرور DNS بازگشتی آدرس IP را برای مدت زمان مشخصی نگه می دارد. این بازه زمانی توسط شخصی که دامنه را در اختیار دارد با استفاده از تنظیماتی که Time to Live ( TTL ) نامیده می شود، تعریف می گردد.

 

مراحل جستجو در DNS چیست ؟

در اکثر مواقع از DNS جهت ترجمه نام دامنه به آدرس IP یاد می گردد. جهت یادگیری نحوه عملکرد این فرایند، بهتر است مسیر جستجوی DNS را از مرورگر تا فرایند انجام جستجو را مورد بررسی قرار داد.

نکته : اغلب اطلاعات جستجوی DNS به صورت محلی در داخل کامپیوتر درخواست کننده یا از راه دور در زیرساخت DNS ذخیره میگردد. معمولاً 8 مرحله در جستجوی DNS وجود دارد، هنگامی که اطلاعات DNS در حافظه پنهان ذخیره می شود، این مراحل از فرآیند جستجوی DNS حذف می گردد که باعث سریعتر شدن فرآیند خواهد شد.

8 مرحله جستجوی DNS قبل از اینکه هیچگونه ذخیره سازی در حافظه Cache شکل گیرد به صورت زیر می باشد :

 

8 مرحله در جستجوی DNS

  • کاربر ( msp-ict.com ) را در یک مرورگر وب تایپ می نماید و درخواست به سمت اینترنت ارسال می گردد و توسط ( Resolver ) DNS بازگشتی دریافت می گردد.
  • این Resolver جستجو را به سمت سرور نام ریشه DNS ( Root nameserver ) ارسال می نماید.
  • سپس سرور ریشه با آدرس سرور DNS دامنه سطح بالا ( Top-level Domain ) که همان ( .com, .net ) می باشد و اطلاعات Domian های خود را درون خود نگه می دارد، به Resolver پاسخ می دهد . هنگام جستجو برای msp-ict.com ، درخواست ما به سمت Top-level Domain که .com است می رود.
  • سپس Resolver مجدد درخواستی را به ( Top-level Domain ) .com ارسال می نماید.
  • اکنون سرور TLD با آدرس IP سرور دامنه، msp-ict.com پاسخ می دهد.
  • در نهایت، Resolver بازگشتی یک Query به سرور نام دامنه ارسال می نماید.
  • آدرس IP ، msp-ict.com از سمت سرور نام به Resolver ارسال خواهد گردید.
  • سپس DNS Resolver با آدرس IP دامنه به مرورگر که درخواست را ایجاد نموده، پاسخ می دهد.

 

هنگامی که 8 مرحله جستجوی DNS ، آدرس IP را بازگرداند اکنون مرورگر قادر خواهد بود تا درخواست صفحه وب را ارسال نماید . در این مرحله مرورگر درخواست HTTP  یا HTTPS را به آدرس IP مورد نظر ارسال می نماید و سروری که به واسطه این IP سرویس ارائه می نماید صفحه وب را در مرورگر کاربر پاسخ خواهد داد.

 

DNS Resolver چیست ؟

 

DNS Resolver اولین ایستگاه در فرایند جستجوی DNS است و مسئول رسیدگی به درخواست اولیه ای که توسط کاربر انجام می گردد، است. Resolver زنجیره ای از جستجو ها را شروع می کند که در نهایت منجر به ترجمه و تبدیل URL به آدرس IP می گردد.

این نکته حائز اهمیت است که بین DNS Resolver بازگشتی و جستجو بازگشتی DNS تفاوت قائل شویم.

جستجو ( query ) به درخواستی که به سمت DNS Resolver که نیاز به پاسخی جهت جستجو می باشد، اشاره دارد. NS Resolver بازگشتی کامپیوتری است که درخواست بازگشتی را می پذیرد و پاسخ را با درخواست های لازم پردازش می نماید.

 

انواع جستجو های DNS

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

جستجوی Iterative

 

سه نوع از جستجو های DNS

جستجوی Recursive ( بازگشتی ) : مواردی هستند که بین سرور بازگشتی و کلاینت انجام می گیرد. در این نوع جستجو پاسخ یا تبدیل کامل نام به IP است یا پیام خطایی مبتنی بر عدم یافتن نام مورد نظر. جستجو های بازگشتی یا به پاسخ یا یک خطا ختم می گردند.

 

جستجوی Iterative یا ( تکراری ) : این جستجو بین Resolver بازگشتی که یک DNS سرور Local است، و سرورهای نام غیر Local مانند root و TDL و سرور های نام Authoritative  انجام می گیرد. جستجو های تکراری نیاز به فرآیند ترجمه و تبدیل نام ندارند  در عوض name server ها ممکن است با ارجاع پاسخ دهند. سرور ریشه ( Root ) درخواست را به سرور های Top-level Domain ( TLD ) ارجاع خواهند داد و این TLD نیز درخواست را به یک سرور Authoritative ارجاع می دهند. سرور معتبر یا ( Authoritative ) اگر نام دامنه را در خود داشته باشد آن را به سرور بازگشتی ارائه خواهد نمود . جستجو های تکراری در یک پاسخ یا یک ارجاع انجام می گیرند و نیازی به طی شدن مراحل تبدیل و ترجمه نمی باشد.

 

جستجوی Non-recursive ( غیر بازگشتی ) : این جستجو در حالتی است که Resolver که اولین ایستگاه در فرایند DNS می باشد ، خود می داند که جواب را باید از کجا یافت. در این شرایط پاسخ یا در سرور بازگشتی ذخیره شده یا سرور بازگشتی می داند که سرور معتبر ( Authoritative ) کجاست و مستقیم درخواست را به آن ارسال می نماید و مراحل سرور ریشه  و سرور TDL را انجام نخواهد داد. این جستجو غیر بازگشتی است به این دلیل که هیچ درخواستی برای سوال های دیگر از سرور های Root و TDL اتفاق نمی افتد. اگر یک Resolver بازگشتی یک آدرس IP را از قبل ( توسط جستجویی که از قبل انجام داده ) در حافظه Cache خود ذخیره نموده باشد اگر جستجوی دیگری برای همان آدرس انجام شود، این جستجو غیر بازگشتی خواهد بود و Resolver خودش مستقیما به آن پاسخ خواهد داد.

 

رکورد های رایج در DNS

رکوردهای DNS اطلاعاتی هستند که جستجو ( Query ) برای یافتن این اطلاعات انجام می گیرد. بسته به درخواست کلاینت با برنامه اطلاعات متفاوتی مورد نیاز است. برخی از رکورد ها ( مانند A Record ها ) از اهمیت بسیار بالایی برخوردار هستند . انواع زیادی از رکورد های DNS وجود دارد که هر کدام هدف و نحوه پاسخگویی خاص خود را در جستجو خواهند داشت. برخی رکورد های رایج DNS به شرح زیر است :

 

  • A Record : این رکورد معرف آدرس است و آدرس IP یک دامنه را در نگه می دارد. A Record ها فقط بر روی IPv4 اعمال می گردند و IPv6 از AAAA Record استفاده می نماید که می تواند از آدرس طولاتی IPv6 پشتیبانی نماید. بیشتر وب سایت ها فقط یک A record دارند اما سایت های بزرگ از چندین A record استفاده می کنند که به مکانیزم تقسیم بار در ترافیک سنگین وب سایت ها کمک می نماید.
  • NS Record : این رکوردهای سرور نام ( Name server ) نشان می دهد که کدام سرور معتبر مسئول داشتن تمام اطلاعات در مورد یک دامنه معین می باشد. اغلب، دامنه ها دارای سرور نام اصلی و پشتیبان برای افزایش قابلیت اطمینان هستند و چندین رکورد NS برای هدایت جستجو ها به آنها مورد استفاده قرار می گیرد.
  • TXT Record : این رکورد مدیران شبکه را قادر می سازند تا متنی به DNS وارد نمایند. در گذشته هدف اصلی استفاده از TXT Record قرار دادن یادداشت‌های قابل خواندن توسط انسان در DNS بود، اما امروزه، اغلب یادداشت‌های قابل خواندن توسط ماشین در آنجا قرار داده می‌شوند. Record TXT برای تأیید مالکیت دامنه، ایمیل امن و مقابله با هرزنامه ایمیل استفاده می گردد.
  • CNAME record : اگر از یک اسم مستعار وجود داشته باشد به جای استفاده از A record از CNAME record استفاده می گردد. این رکورد ها برای آزمودن مجدد جستجو از یک آدرس IP در دو دامنه استفاده می گردند.

 

چگونه DNS عملکرد وب را افزایش می دهد؟

سرورها می توانند record A ها یا آدرس های IP را که از جستجو های DNS پیدا می نمایند برای مدت زمان مشخص در حافظ Cache ذخیره نمایند. این ذخیره سازی باعث افزایش کارایی خواهد گردید و سرور ها را قادر می سازد تا دفعه بعد که درخواستی برای همان آدرس IP دریافت شد ، به سرعت پاسخ دهند. به عنوان مثال، اگر همه افراد در یک شرکت نیاز به دسترسی به یک ویدیوی آموزشی مشابه در یک وب سایت خاص در همان روز داشته باشند، سرور DNS محلی فقط باید یک بار نام را جستجو و ترجمه نماید و سپس می تواند تمام درخواست های دیگر را از حافظه Cache خود ارائه دهد. مدت زمان نگهداری رکورد که به عنوان ( TTL ) شناخته می شود  به عوامل مختلفی بستگی دارد که توسط مدیران شبکه تنظیم می گردد. بازه‌های زمانی طولانی‌تر بار روی سرور ها را کاهش می‌دهد و بازه‌های زمانی کوتاه‌تر، دقیق‌ترین پاسخ‌ها را تضمین می‌ نماید.

 

ذخیره سازی در DNS ( DNS caching )

هدف از ذخیره سازی در DNS کاهش زمان لازم برای دریافت پاسخ به درخواست های DNS است. ذخیره سازی DNS را قادر می‌سازد تا پاسخ‌های قبلی به جستجو ها را نزدیک‌تر به کلاینت‌ ها ذخیره نماید و دفعه بعد که درخواست شد همان اطلاعات را سریع‌تر به آنها برگرداند. داده های DNS را می توان در چند مکان ذخیره کرد. برخی از موارد رایج شامل موارد زیر است :

 

  • مرورگر : اکثر مرورگر ها مانند Apple Safari، Google Chrome و Mozilla Firefox، داده های DNS را به طور پیش فرض برای مدت زمان مشخصی ذخیره می نمایند. مرورگر اولین حافظه پنهانی است که هنگام درخواست DNS ، قبل از اینکه درخواست از دستگاه برای یک سرور Resolver DNS محلی خارج شود، مورد بررسی قرار می گیرد.
  • سیستم عامل ( OS ) : بسیاری از سیستم عامل ها DNS Resolver های داخلی به نام Stub Resolver دارند که قادرند داده های DNS را در حافظه پنهان ( Cache ) ذخیره کنند و درخواست ها را با سرعت بالاتری قبل از ارسال به سرور خارجی پاسخ دهند. سیستم عامل معمولا بعد از مرورگر یا سایر برنامه ها مورد جستجو قرار می گیرد.
  • Resolver بازگشتی : پاسخ به یک جستجوی DNS همچنین می تواند روی Resolver بازگشتی DNS ذخیره گردد. Resolver ها ممکن است برخی از رکورد های لازم برای بازگرداندن یک پاسخ را داشته باشند و بتوانند از برخی مراحل در فرآیند DNS عبور نمایند. برای مثال اگر یک Resolver رکورد A را داشته باشد اما NS record را نداشته باشد می تواند سرور ریشه را رد نموده و جستجو را مستقیم توسط سرور TLD انجام دهد.

ذخیره سازی در DNS ( DNS caching )
 

امنیت در DNS

DNS دارای چند آسیب پذیری است که در طول زمان کشف گردیده اند. یکی از این آسیب پذیری ها DNS Cache Poisoning ( مسمومیت حافظه Cache ) می باشد. در چنین شرایطی داده ها می توانند اطلاعات نادرست ارائه دهند و می توانند بر TTL تأثیر بگذارند و درخواست های واقعی برنامه همچنین می توانند به یک شبکه میزبان مخرب هدایت شوند. افراد با نیت مخرب می توانند یک وب سایت خطرناک با عنوان گمراه کننده ایجاد نمایند کاربران را متقاعد کنند که به وب سایت واقعی متصل شده اند و به هکرها اجازه دسترسی به اطلاعات کاربر را بدهد. همچنین با جایگزین کردن یک کاراکتر در نام دامنه با یک کاراکتر شبیه مانند جایگزینی عدد 1 با حرف l، که ممکن است شبیه به نظر برسد کاربران را دچار اشتباه نموده و آن ها یک لینک اشتباه را کلیک نمایند. این آسیب پذیری معمولاً با حملات فیشینگ مورد سوء استفاده قرار می گیرد. برای برطرف نمودن این حفره های امنیتی افراد می توانند از برنامه های افزودنی امنیتی DNS استفاده نمایند.

 

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

 

اطلاعات بیشتر در مورد آموزش های مجازی شبکه :


link

کابل های شبکه مسی :

link

تجهیزات فیبر نوری:

link

 

با سپاس فراوان

محمدرضا سلیمانی

 

دیدگاه‌ها (0)

*
*