DNS چیست ؟ و چطور کار می کند ؟
DNS چیست ؟ و چطور کار می کند ؟ آموزش

DNS چیست؟

Domain Name System یا همان DNS ، دفترچه تلفن اینترنت است . انسان ها از طریق نام دامنه مانند luxhost.org به اطلاعات آنلاین دسترسی پیدا می کنند .

مرورگر های وب از طریق آدرس های پروتکل اینترنت ( IP ) با هم ارتباط برقرار می کنند . DNS نام دامنه را به آدرس IP ترجمه می کند . تا مرورگرها بتوانند منابع اینترنت را بارگیری کنند .

هر دستگاه متصل به اینترنت دارای یک آدرس IP منحصر به فرد است . که ماشین های دیگر از آن برای یافتن آن دستگاه استفاده می کنند .

سرورهای دی ان اس نیازی به انسان برای حفظ کردن آدرس های IP مثل 192.168.1.1 (در IPv4 ) یا آدرس IP های جدید با عدد پیچیده تر مثل 2400: cb00: 2048: 1 :: c629: d7a2 (در IPv6 ) ندارند .

 

بعد از خواندن این مقاله شما می توانید :

  1. DNS را تعریف کنید و طرز کار آن را بفهمید .
  2. فرق بین جستجوی DNS بازگشتی (recursive ) و تکراری ( iterative ) را تشخیص دهید .
  3. نام سرورهای معتبر را از تحلیلگر های بازگشتی DNS تفکیک کنید .
  4. نحوه عملکرد DNS caching را توضیح دهید .

 

DNS چطور کار می کند ؟

فرآیند تفکیک DNS شامل تبدیل نام هاست ( مانند www.example.com ) به آدرس IP کامپیوتری ( مانند 192.168.1.1 ) است. در اینترنت به هر دستگاه یک آدرس IP داده می شود . و این آدرس برای یافتن دستگاه اینترنتی مناسب ضروری است . مثل آدرس یک خیابان برای پیدا کردن یک خانه  .

کاربر باید برای لود شدن صفحه ای در وب ، آدرسی مثل luxhost.org را مرورگر  خود تایپ کند . این آدرس به آدرسی قابل درک برای کامپیوتر ترجمه می شود .

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

 

4 سرور DNS در بارگیری یک صفحه وب موثرند :

  • DNS recursor  :  این سرور مثل یک کتابداریست که از او خواسته می شود کتاب خاصی را در جایی از کتابخانه پیدا کند . DNS recursor برای دریافت درخواست از ماشین های کلاینت از طریق برنامه هایی مانند مرورگرهای وب طراحی شده است . معمولا recursor مسئول انجام درخواست های اضافی برای پاسخ به درخواست کاربر است .
  • Root name server : سرور root اولین قدم در ترجمه  نام میزبان به آدرس IP است . دقیقا مثل یک فهرست در کتابخانه است که به ردیف های کتاب اشاره دارد . معمولاً به عنوان مرجعی برای آدرس های دیگر است  .
  • TLD name server : نام سرور سطح بالا (TLD) را می توان به عنوان مجموعه خاصی از کتاب ها در کتابخانه در نظر گرفت . این نام سرور  مرحله بعدی در جستجوی یک آدرس IP خاص است . و آخرین قسمت از نام هاست را میزبانی می کند .  مثلا در example.com ، سرور TLD ” com” است .
  • Authoritative name server : این سرور  را می توان به عنوان یک فرهنگ لغت در یک قفسه ای از کتاب ها دانست . که در آن یک نام خاص را به تعریف خود ترجمه می شود . نام سرور معتبر آخرین ایستگاه در جستجوی نام سرور  است . اگر نام سرور معتبر به رکورد درخواستی دسترسی داشته باشد ، آدرس IP مربوط به نام میزبان درخواستی را به DNS Recursor ( کتابدار ) که درخواست اولیه را داده است برمی گرداند .

 

برای اطلاعات بیشتر مقاله نام سرور چیست را بخوانید .

تفاوت بین سرور authoritative DNS و تحلیلگر recursive DNS چیست؟

هر دو مفهوم به سرورهایی ( گروه سرورها ) اشاره دارند كه جزء جدایی ناپذیر در زیرساخت دی ان اس هستند . اما هر یك از آن ها نقش متفاوتی را ایفا می كنند . و در نقاط مختلفی در کانال ارتباطی یک query دی ان اس وجود دارند .

تفاوت آن ها این است که ، « recursive resolver » در ابتدای کوئری دی ان اس و « authoritative nameserver » در انتهای آن قرار گرفته است .

Recursive DNS resolver چیست ؟

Recursive resolver کامپیوتریست که به درخواست بازگشتی از طرف کاربر پاسخ می دهد . و  زمانی را صرف بررسی رکورد دی ان اس  می کند . این کار را با ایجاد یک سری درخواست انجام می دهد . تا زمانی که به DNS name server معتبری برای رکورد درخواستی برسد . در صورت پیدا نکردن رکورد ، یک پیام خطا به جای آن ارسال می کند .

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

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

Recursive DNS resolver چیست

Authoritative DNS server چیست؟

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

یک authoritative name server می تواند بدون نیاز به کوئری گرفتن از منابع دیگر ، با استفاده از داده هایی که دارد به کوئری ها پاسخ دهد .  زیرا این آخرین منبع حقیقی برای برخی رکورد دی ان اس های مشخص است .

 

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

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

توجه کنید ! غالباً اطلاعات جستجوی DNS به صورت محلی درون کامپیوتر جستجوگر یا از راه دور در زیرساخت دی ان اس ذخیره ( کَش ) می شوند . به طور معمول 8 مرحله در جستجوی دی ان اس وجود دارد .

وقتی اطلاعات دی ان اس ذخیره می شوند ، بعضی از مراحل جستجوی DNS به طور خودکار skip می شوند . که این مسئله باعث سریعتر شدن فرآیند می شود . مثال زیر هر 8 مرحله که قبل از ذخیره اطلاعات اتفاق می افتد را بررسی می کند .

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

1.یک کاربر « example.com » را در یک مرورگر وب تایپ می کند و درخواست به اینترنت می رود و توسط یک تحلیگر DNS recursive دریافت می شود .

2.سپس تحلیلگر (resolver) ، از نام سرور ریشه DNS پرس و جو می کند .

3.سپس سرور root با آدرس دامنه سطح بالای دی ان اس ( TLD ) که اطلاعات دامنه های خود را ذخیره می کند ، به تحلیلگر پاسخ می دهد ( مانند .com یا .net ) . هنگام جستجو برای example.com ، درخواست ما دامنه سطح بالا (com (TLD. را مد نظر قرار می دهد .

4.بعد ، تحلیلگرrecursive یک درخواست برای دامنه سطح بالا com. می فرستد .

5.سرور دامنه سطح بالا (TLD) با آدرس IP نام سرور دامنه ، پاسخ می دهد . مثلا : example.com

6.سرانجام ، تحلیلگر recursive درخواستی را به نام سرور دامنه ارسال می کند .

7.بعد آدرس آی پی ( example.com  ) از نام سرور به تحلیلگر برگشت داده می شود .

8.سپس تحلیلگر DNS به مرورگر وب با آدرس IP دامنه درخواست شده اولیه پاسخ می دهد .

هنگامی که 8 مرحله جستجوی دی ان اس ، آدرس IP را برای example.com بازگرداند ، در این صورت مرورگر می تواند درخواست صفحه وب را انجام دهد :

9.مرورگر یک درخواست HTTP برای آدرس IP ارائه می دهد .

10. سرور با IP مورد نظر ، صفحه وب را برای نمایش در مرورگر برمی گرداند .

 

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

تحلیلگر DNS چیست ؟

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

نکته : یک جستجوی دی ان اس معمولی کَش نشده ، شامل هر دو کوئری recursive و iterative است .

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

 

تحلیلگر DNS چیست ؟

انواع کوئری های DNS کدامند ؟

در یک جستجوی معمولی DNS ، سه نوع کوئری وجود دارد . با استفاده از ترکیبی از این کوئری ها ، یک فرایند بهینه شده برای تفکیک دی ان اس می تواند منجر به کاهش مسافت انتقال شود . در یک موقعیت ایده آل ، داده های ذخیره شده ( کَش شده ) در دسترس خواهند بود . این کار به نام سرور دی ان اس اجازه می دهد تا یک جستجوی غیر بازگشتی را بازگرداند .

 

انواع کوئری DNS :

  • کوئری بازگشتی ( Recursive query ) : در کوئری بازگشتی ، یک سرویس گیرنده DNS احتیاج دارد که یک سرور دی ان اس ( معمولاً یک تحلیلگر بازگشتی دی ان اس ) با یک رکورد منبع درخواستی و یا یک پیام خطا به  کاربر پاسخ دهد ( اگر تحلیلگر نتواند رکورد را پیدا کند ) .
  • کوئری تکراری ( Iterative query ) : در این شرایط ، سرویس گیرنده DNS به یک سرور دی ان اس اجازه می دهد تا بهترین جواب ممکن را برگرداند . اگر سرور DNS مورد پرسش با نام درخواست شده مطابقت نداشته باشد ، یک ارجاع را به سرور DNS  authoritative برای سطح پایین تر از فضای نام دامنه ( Domain Namespace )  باز می گرداند . سپس سرویس گیرنده دی ان اس یک کوئری  برای آدرس مرجوعی می فرستد . این فرایند با سرورهای DNS اضافی در زنجیره کوئری ادامه می یابد تا وقتی که خطا یا وقفه زمانی رخ دهد .
  • کوئری غیر بازگشتی ( Non-recursive query ) : معمولاً این اتفاق زمانی رخ می دهد که سرویس گیرنده تحلیلگر DNS از یک سرور دی ان اس برای ثبت رکوردی ، کوئری می گیرد که به آن دسترسی دارد . چون هم برای رکورد معتبر است و هم برای رکوردی که داخل کَش آن قرار دارد . به طور معمول ، یک سرور دی ان اس برای جلوگیری از مصرف پهنای باند اضافی و بارگیری در سرورهای آپ استریم ( Upstream server ) ، رکوردهای دی ان اس را ذخیره می کند .

 

DNS caching چیست ؟  کَش کردن دی ان اس کجا اتفاق می افتد ؟

هدف از ذخیره سازی ، ذخیره داده های موقت در جاییست که منجر به بهبود عملکرد و اعتبار برای درخواست های داده می شود . DNS caching شامل ذخیره داده ها در نزدیکی کاربر درخواست کننده است .

به این ترتیب کوئری دی ان اس می تواند زودتر تفکیک شود . و از جستجوی اضافی در پایین زنجیره جستجوی دی ان اس جلوگیری شود . در نتیجه زمان بارگذاری بهبود می یابد و پهنای باند / CPU کمتری مصرف می شود . داده های DNS را می توان در مکان های مختلف ذخیره کرد . که در هر یک از آن ها رکوردهای دی ان اس برای مدت زمان مشخصی که توسط ( Time-to-Live ) (TTL) تعیین می شود ، ذخیره می شوند .

 

DNS caching مرورگر :

 

مرورگرهای وب مدرن طوری طراحی شده اند که به طور پیش فرض  رکوردهای DNS برای مدت زمان مشخصی در آن ها ذخیره می شوند . هدف واضح است .

هرچه  DNS caching به مرورگر وب نزدیکتر باشد ، برای بررسی cache و ایجاد درخواست صحیح از آدرس IP ، مراحل پردازش کمتری  انجام می شود .

هنگامی که درخواستی برای رکورد دی ان اس ایجاد می شود ، کَش مرورگر اولین مکانی است که برای رکورد درخواست شده  بررسی می شود .

 

  • شما هم در Google chrome ، با رفتن به chrome: // net-internals / # dns می توانید وضعیت کَش DNS خود را مشاهده کنید .

 

DNS caching سطح سیستم ‌عامل (OS)

تحلیلگر DNS در سطح سیستم عامل ، آخرین ایستگاه  و محلی است که قبل از جستجوی DNS از دستگاه شما خارج می شود . فرآیند موجود در سیستم عامل شما که برای رسیدگی به این کوئری طراحی شده ، معمولاً  « stub resolver » یا سرویس گیرنده DNS گفته می شود .

وقتی یک stub resolver درخواستی را از یک برنامه دریافت می کند ، ابتدا cache خود را بررسی می کند تا ببیند رکوردی ثبت شده یا نه . اگر چنین نباشد ، سپس یک کوئری DNS ( با یک recursive flag set ) در خارج از شبکه محلی به یک تحلیلگر بازگشتی DNS در سرویس ارائه دهنده خدمات اینترنت ( ISP ) می فرستد .

 

DNS caching تحلیلگر بازگشتی

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

 

تحلیلگر بازگشتی بسته به انواع رکوردهایی که در کَش خود دارد ، قابلیت اضافه هم دارد :

1_ اگر تحلیلگر دارای رکورد A نباشد ، اما دارای رکورد های NS برای نام سرورهای  معتبر باشد . تحلیلگر  با دور زدن چندین مرحله از درخواست DNS ، آن نام سرورها را مستقیماً پرس و جو می کند .

این میانبر از جستجوی روت و نام سرورهای  com. جلوگیری می کند . ( مثلا example.com ) و کمک می کند تا فرآیند تفکیک پرس و جوی DNS با سرعت بیشتری اتفاق بیافتد .

 

2_ اگر تحلیلگر رکورد های NS را نداشته باشد ، یک کوئری را با اسکیپ از سرور root ، برای سرورهای TLD ارسال می کند . (مثل example.com ) .

 

3_ در یک حالت غیر ممکن ، اگر تحلیلگر هیچ رکوردی نداشته باشد که به سرورهای TLD اشاره کند ، در این شرایط از  root سرورها پرس و جو می کند . این رویداد معمولاً پس از پاک شدن  DNS cache رخ می دهد .

5% هاست وردپرس
پوچ
دامنه ir. رایگان
پوچ
10% هاست وردپرس
پوچ
پوچ
10% پشتیبانی وردپرس
پوچ
15% هاست وردپرس
پوچ
پوچ
شانس خود را امتحان کنید
لطفا آدرس ایمیل معتبر برای اعتبارسنجی بعد از کد تخفیف وارد نمایید و شانس خود را امتحان نمایید!