سیستم نام دامنه (DNS) دفترچه تلفن اینترنت است. انسان ها از طریق نام های دامنه مانند nytimes.com یا espn.com به اطلاعات آنلاین دسترسی دارند. مرورگرهای وب از طریق آدرس های پروتکل اینترنت (IP) تعامل دارند. DNS نام دامنه را به آدرس های IP ترجمه می کند تا مرورگرها بتوانند منابع اینترنتی را بارگیری کنند.
هر دستگاه متصل به اینترنت دارای یک آدرس IP منحصر به فرد است که سایر دستگاه ها برای یافتن دستگاه از آن استفاده می کنند. سرورهای DNS نیاز انسان را به حفظ آدرسهای IP مانند 192.168.1.1 (در IPv4) یا آدرسهای IP پیچیدهتر الفبایی عددی جدیدتر مانند 2400:cb00:2048:1::c629:d7a2 (در IPv6) از بین میبرند.
بیشتر بخوانید : بهترین نرم افزار همکاری در فروشDNS چگونه کار می کند؟
فرآیند رزولوشن سیستم نام دامنه DNS شامل تبدیل یک نام میزبان (مانند www.example.com) به یک آدرس IP مناسب برای رایانه (مانند 192.168.1.1) است. یک آدرس IP به هر دستگاه در اینترنت داده می شود، و این آدرس برای یافتن دستگاه اینترنتی مناسب ضروری است. مانند آدرس خیابان برای یافتن یک خانه خاص. هنگامی که کاربر می خواهد یک صفحه وب را بارگیری کند، باید بین آنچه کاربر در مرورگر وب خود تایپ می کند (example.com) و آدرس ماشین پسند لازم برای مکان یابی صفحه وب example.com، ترجمه انجام شود.
برای درک فرآیند پشت رزولوشن سیستم نام دامنه DNS، مهم است که در مورد اجزای سخت افزاری مختلفی که یک کوئری DNS باید بین آنها عبور کند، یاد بگیرید. برای مرورگر وب، جستجوی DNS “پشت صحنه” انجام می شود و به غیر از درخواست اولیه نیازی به تعامل با رایانه کاربر ندارد.
4 سرور DNS در بارگذاری یک صفحه وب دخیل هستند:
Recursor DNS – Recursor را می توان به عنوان یک کتابدار در نظر گرفت که از او خواسته می شود تا کتاب خاصی را در جایی در کتابخانه پیدا کند. Recursor DNS سروری است که برای دریافت پرس و جو از ماشین های مشتری از طریق برنامه هایی مانند مرورگرهای وب طراحی شده است. معمولاً Recursor پس از آن مسئول ایجاد درخواست های اضافی به منظور برآوردن درخواست DNS مشتری است.
nameserver ریشه – سرور ریشه اولین گام در ترجمه (حل کردن) نام های میزبان قابل خواندن توسط انسان به آدرس های IP است. میتوان آن را مانند نمایهای در کتابخانه در نظر گرفت که به قفسههای مختلف کتاب اشاره میکند – معمولاً به عنوان مرجعی برای مکانهای خاص دیگر عمل میکند.
nameserver TLD – سرور دامنه سطح بالا (TLD) را می توان به عنوان یک قفسه خاص از کتاب ها در یک کتابخانه در نظر گرفت. این nameserver گام بعدی در جستجوی یک آدرس IP خاص است و آخرین بخش از نام میزبان را میزبانی می کند (در example.com، سرور TLD “com” است).
Authoritative nameserver – این سرور نام نهایی را می توان به عنوان فرهنگ لغت روی قفسه ای از کتاب ها در نظر گرفت که در آن می توان یک نام خاص را به تعریف آن ترجمه کرد. nameserver معتبر آخرین توقف در پرس و جو سرور نام است. اگر سرور نام معتبر به رکورد درخواستی دسترسی داشته باشد، آدرس IP را برای نام میزبان درخواستی به Recursor DNS (کتابدار) که درخواست اولیه را انجام داده است، برمی گرداند.
تفاوت بین سرور DNS معتبر و حل کننده DNS بازگشتی چیست؟
هر دو مفهوم به سرورهایی (گروههایی از سرورها) اشاره میکنند که یکپارچه از زیرساختهای DNS هستند، اما هر یک نقش متفاوتی را ایفا میکنند و در مکانهای مختلفی در داخل خط پرس و جوی DNS قرار دارند. یکی از این تفاوت ها این است که حلکننده بازگشتی در ابتدای کوئری DNS و نام سرور معتبر در انتهای آن قرار دارد.
Recursive DNS resolver
حلکننده بازگشتی رایانهای است که به درخواست بازگشتی از مشتری پاسخ میدهد و برای ردیابی رکورد DNS زمان میبرد. این کار را با ایجاد یک سری درخواست انجام می دهد تا زمانی که به نام سرور معتبر DNS برای رکورد درخواستی برسد (یا در صورت یافتن هیچ رکوردی، زمان را تمام کند یا خطا را برگرداند). خوشبختانه، حلکنندههای DNS بازگشتی برای ردیابی سوابق مورد نیاز برای پاسخگویی به مشتری، همیشه نیازی به درخواستهای متعدد ندارند. کش کردن یک فرآیند تداوم داده است که به اتصال کوتاه درخواست های ضروری با ارائه رکورد منبع درخواستی در جستجوی DNS کمک می کند.
سرور DNS معتبر
به بیان ساده، سرور DNS معتبر سروری است که در واقع سوابق منابع سیستم نام دامنه DNS را نگه می دارد و مسئول آن است. این سرور در پایین زنجیره جستجوی DNS است که با رکورد منبع درخواست شده پاسخ می دهد و در نهایت به مرورگر وب اجازه می دهد تا به آدرس IP مورد نیاز برای دسترسی به یک وب سایت یا سایر منابع وب برسد. یک نام سرور معتبر می تواند پرس و جوها را از داده های خود بدون نیاز به پرس و جو از منبع دیگری برآورده کند، زیرا منبع نهایی برای برخی رکوردهای DNS است.
شایان ذکر است که در مواردی که پرس و جو برای یک زیر دامنه مانند foo.example.com یا blog.cloudflare.com است، یک نام سرور اضافی بعد از سرور نام معتبر به دنباله اضافه می شود که وظیفه ذخیره رکورد CNAME زیر دامنه را بر عهده دارد.
مراحل جستجوی DNS چیست؟
برای اکثر مواقع، DNS مربوط به ترجمه نام دامنه به آدرس IP مناسب است. برای یادگیری نحوه عملکرد این فرآیند، به دنبال کردن مسیر جستجوی DNS در حین حرکت از مرورگر وب، از طریق فرآیند جستجوی DNS و بازگشت مجدد کمک می کند. بیایید نگاهی به مراحل بیاندازیم.
توجه: اغلب اطلاعات جستجوی DNS به صورت محلی در داخل رایانه درخواست کننده یا از راه دور در زیرساخت DNS ذخیره می شود. معمولاً 8 مرحله در جستجوی DNS وجود دارد. هنگامی که اطلاعات DNS در حافظه پنهان ذخیره می شود، مراحل از فرآیند جستجوی DNS نادیده گرفته می شود که باعث سریعتر شدن آن می شود. مثال زیر تمام 8 مرحله را نشان میدهد که هیچ چیز در حافظه پنهان وجود ندارد.
8 مرحله در جستجوی DNS:
- کاربر «com» را در یک مرورگر وب تایپ می کند و درخواست به اینترنت ارسال می شود و توسط یک حل کننده بازگشتی DNS دریافت می شود.
- سپس حل کننده یک سرور نام ریشه DNS (.) را پرس و جو می کند.
- سپس سرور ریشه با آدرس سرور DNS دامنه سطح بالا (TLD) (مانند .com یا .net)، که اطلاعات را برای دامنه های خود ذخیره می کند، به حل کننده پاسخ می دهد. هنگام جستجو برای com، درخواست ما به سمت TLD .com است.
- سپس حل کننده درخواستی را به TLD .com ارسال می کند.
- سپس سرور TLD با آدرس IP سرور نام دامنه، com پاسخ می دهد.
- در نهایت، حلکننده بازگشتی یک پرس و جو را به سرور نام دامنه ارسال میکند.
- سپس آدرس IP برای com از سرور نام به حل کننده بازگردانده می شود.
- سپس حلکننده DNS با آدرس IP دامنه درخواستی ابتدا به مرورگر وب پاسخ میدهد.
هنگامی که 8 مرحله جستجوی DNS آدرس IP برای مثال .com را برگرداند، مرورگر میتواند درخواست صفحه وب را انجام دهد:
- مرورگر یک درخواست HTTP به آدرس IP ارسال می کند.
- سرور در آن IP صفحه وب را برای نمایش در مرورگر بر می گرداند (مرحله 10).
بیشتر بخوانید : نحوه دریافت اینماد
حل کننده DNS چیست؟
حلکننده DNS اولین ایستگاه در جستجوی DNS است و مسئول رسیدگی به مشتری است که درخواست اولیه را انجام داده است. حل کننده دنباله ای از پرس و جوها را شروع می کند که در نهایت منجر به ترجمه URL به آدرس IP لازم می شود.
توجه: یک جستجوی DNS غیر کش معمولی شامل پرس و جوهای بازگشتی و تکراری می شود.
مهم است که بین یک پرس و جو DNS بازگشتی و یک حل کننده DNS بازگشتی تفاوت قائل شوید. پرس و جو به درخواستی اشاره دارد که به یک حل کننده DNS انجام شده است که به حل پرس و جو نیاز دارد. حلکننده بازگشتی DNS رایانهای است که یک درخواست بازگشتی را میپذیرد و با درخواستهای لازم، پاسخ را پردازش میکند.
انواع کوئری های DNS چیست؟
در یک جستجوی سیستم نام دامنه DNS معمولی سه نوع پرس و جو رخ می دهد. با استفاده از ترکیبی از این پرس و جوها، یک فرآیند بهینه برای وضوح DNS می تواند منجر به کاهش مسافت طی شده شود. در یک موقعیت ایدهآل، دادههای رکورد حافظه پنهان در دسترس خواهد بود، که به name سرور DNS اجازه میدهد یک پرس و جو غیر بازگشتی را برگرداند.
3 نوع پرس و جو DNS:
پرس و جو بازگشتی – در یک پرس و جو بازگشتی، یک سرویس گیرنده DNS نیاز دارد که یک سرور DNS (معمولاً یک حل کننده بازگشتی DNS) در صورتی که حل کننده نتواند رکورد را پیدا کند، با رکورد منبع درخواستی یا یک پیام خطا به مشتری پاسخ دهد.
پرس و جو تکرار شونده – در این شرایط، سرویس گیرنده DNS به سرور DNS اجازه می دهد بهترین پاسخی را که می تواند ارائه دهد. اگر سرور DNS مورد بررسی برای نام پرس و جو مطابقت نداشته باشد، یک ارجاع به سرور DNS معتبر برای سطح پایینتری از فضای نام دامنه را برمیگرداند. سپس مشتری DNS یک پرس و جو به آدرس ارجاع می دهد. این فرآیند با سرورهای DNS اضافی در زنجیره پرس و جو ادامه می یابد تا زمانی که یک خطا یا مهلت زمانی رخ دهد.
پرس و جو غیر بازگشتی – معمولاً زمانی رخ می دهد که یک سرویس گیرنده حل کننده DNS از یک سرور DNS برای رکوردی که به آن دسترسی دارد یا به دلیل معتبر بودن رکورد یا وجود رکورد در حافظه پنهان آن به آن دسترسی دارد، پرس و جو می کند. به طور معمول، یک سرور DNS برای جلوگیری از مصرف پهنای باند اضافی و بارگذاری در سرورهای بالادست، سوابق DNS را کش می کند.
کش سیستم نام دامنه DNS چیست؟ کش DNS کجا اتفاق می افتد؟
هدف از ذخیره سازی ذخیره موقت داده ها در مکانی است که منجر به بهبود عملکرد و قابلیت اطمینان درخواست های داده می شود. کش کردن DNS شامل ذخیره دادهها نزدیکتر به مشتری درخواستکننده است، به طوری که پرس و جوی DNS میتواند زودتر حل شود و از درخواستهای اضافی در زنجیره جستجوی DNS جلوگیری شود، در نتیجه زمان بارگذاری بهبود مییابد و مصرف پهنای باند/CPU کاهش مییابد. دادههای DNS را میتوان در مکانهای مختلفی ذخیره کرد، که هر یک از آنها رکوردهای DNS را برای مدت زمان مشخصی که توسط زمان (TTL) تعیین میشود، ذخیره میکنند.
ذخیره سیستم نام دامنه DNS مرورگر
مرورگرهای وب مدرن به طور پیش فرض طراحی شده اند تا رکوردهای DNS را برای مدت زمان مشخصی ذخیره کنند. هدف در اینجا واضح است. هر چه کش کردن DNS به مرورگر وب نزدیکتر باشد، مراحل پردازش کمتری باید انجام شود تا کش را بررسی کرده و درخواستهای صحیح را برای یک آدرس IP انجام دهید. هنگامی که درخواستی برای رکورد DNS انجام می شود، حافظه پنهان مرورگر اولین مکانی است که برای رکورد درخواستی بررسی می شود.
در کروم، با رفتن به chrome://net-internals/#dns، میتوانید وضعیت کش DNS خود را ببینید.
ذخیره سازی سیستم نام دامنه DNS سطح سیستم عامل (OS).
حلکننده DNS سطح سیستم عامل، دومین و آخرین توقف محلی قبل از خروج یک درخواست DNS از دستگاه شما است. فرآیند داخل سیستم عامل شما که برای رسیدگی به این پرس و جو طراحی شده است، معمولاً «حل کننده خرد» یا سرویس گیرنده DNS نامیده می شود. هنگامی که حلکننده خرد درخواستی از یک برنامه دریافت میکند، ابتدا حافظه پنهان خود را بررسی میکند تا ببیند آیا رکورد را دارد یا خیر. اگر این کار را انجام ندهد، یک پرس و جوی DNS (با مجموعه پرچم بازگشتی)، خارج از شبکه محلی به یک حل کننده بازگشتی DNS در ارائه دهنده خدمات اینترنت (ISP) ارسال می کند.
هنگامی که حلکننده بازگشتی در داخل ISP یک کوئری DNS دریافت میکند، مانند تمام مراحل قبلی، همچنین بررسی میکند که آیا ترجمه میزبان به آدرس IP درخواستی قبلاً در لایه ماندگاری محلی آن ذخیره شده است یا خیر.
حلکننده بازگشتی نیز بسته به نوع رکوردهایی که در حافظه پنهان خود دارد، عملکردهای اضافی دارد:
اگر حلکننده رکوردهای A را نداشته باشد، اما رکوردهای NS را برای سرورهای نام معتبر داشته باشد، مستقیماً از آن سرورهای نام پرس و جو میکند و چندین مرحله در کوئری DNS را دور میزند. این میانبر از جستجوها از سرورهای نام root و .com (در جستجوی ما به عنوان مثال.com) جلوگیری می کند و کمک می کند تا حل پرس و جو DNS سریعتر رخ دهد.
اگر حلکننده سوابق NS را نداشته باشد، درخواستی را به سرورهای TLD (در مورد ما .com) ارسال میکند و سرور ریشه را رد میکند.
در صورت بعید که حل کننده سوابقی که به سرورهای TLD اشاره می کنند نداشته باشد، سرورهای ریشه را پرس و جو می کند. این رویداد معمولاً پس از پاکسازی کش DNS رخ می دهد.