سامانه نام دامنه
سامانه نام دامنه (DNS) دایرکتوری توزیعشده اینترنت است که نامهای دامنه قابل خواندن برای انسان را از طریق سلسله مراتبی از سرورهای معتبر واگذارشده و ذخیرهسازی گسترده، به آدرسهای IP مورد نیاز شبکه ترجمه میکند.
Definition
سامانه نام دامنه (DNS) یک سرویس نامگذاری سلسلهمراتبی و توزیعشده است که نامهای دامنه را به آدرسهای IP و سایر رکوردها نگاشت میکند و توسط شبکهای از سرورهای نام معتبر واگذارشده و تفکیککنندههای ذخیرهساز پیادهسازی میشود.
Scope
این موضوع DNS را پوشش میدهد: فضای نام سلسلهمراتبی و مناطق آن؛ نقشهای سرورهای ریشه، دامنه سطح بالا و سرورهای نام معتبر؛ تفکیک بازگشتی و تکراری؛ رکوردهای منابع (مانند A، AAAA، NS، MX و CNAME)؛ ذخیرهسازی و مقادیر زمان-زندگی (TTL) که باعث مقیاسپذیری سیستم میشوند؛ و اتکای DNS به UDP برای اکثر پرسوجوها. همچنین نقش DNS فراتر از جستجوی ساده، مانند توزیع بار و تغییر مسیر CDN را نیز مورد توجه قرار میدهد. این موضوع پروتکلهای کاربردی و سیستمهای تحویل محتوا که به آن وابسته هستند را شامل نمیشود.
Core questions
- چرا اینترنت به یک سیستم نامگذاری جدا از آدرسهای IP نیاز دارد؟
- فضای نام DNS چگونه به صورت سلسلهمراتبی به مناطق و واگذاریها سازماندهی شده است؟
- پرسوجوهای بازگشتی و تکراری چگونه یک نام را به یک آدرس تفکیک میکنند؟
- ذخیرهسازی و مقادیر زمان-زندگی (TTL) چگونه DNS را مقیاسپذیر و سریع میکنند؟
- DNS از چه انواع رکوردهای منبعی استفاده میکند و هر یک چه چیزی را نشان میدهد؟
Key concepts
- سلسلهمراتب نام دامنه
- مناطق و واگذاری
- سرورهای ریشه، TLD و معتبر
- تفکیک بازگشتی و تکراری
- رکوردهای منابع (A، AAAA، NS، MX، CNAME)
- ذخیرهسازی و زمان-زندگی (TTL)
- DNS بر روی UDP
- توزیع بار مبتنی بر DNS
Key theories
- نامگذاری سلسلهمراتبی و واگذارشده
- DNS فضای نام را به یک درخت از دامنهها تقسیم میکند و اختیار زیردرختها را به سرورهای نام سازمانهای مختلف واگذار میکند، بنابراین هیچ نهاد واحدی نیازی به دانستن همه نامها ندارد و مدیریت توزیعشده است.
- تفکیک و ذخیرهسازی
- یک تفکیککننده (resolver) با دنبال کردن سلسلهمراتب از ریشه تا سرورهای معتبر به یک پرسوجو پاسخ میدهد، سپس نتیجه را برای زمان-زندگی (TTL) خود ذخیره میکند؛ ذخیرهسازی تهاجمی به این معنی است که اکثر جستجوها هرگز به سرورهای معتبر نمیرسند، که برای مقیاسپذیری DNS ضروری است.
Clinical relevance
DNS یک وابستگی حیاتی برای تقریباً هر تعامل آنلاین است: مرور وب، ایمیل و اتصالات برنامهها با جستجوی نام آغاز میشوند، بنابراین عملکرد و در دسترس بودن DNS تجربه کاربر را شکل میدهد و قطعیهای DNS در سراسر سرویسها آبشاری میشوند. DNS همچنین برای هدایت کاربران به سرورهای نزدیک برای تحویل محتوا و توزیع بار استفاده میشود و امنیت آن (از طریق DNSSEC و DNS رمزگذاریشده) یک نگرانی فعال است.
History
پیش از DNS، نامهای میزبان توسط یک فایل مشترک واحد به آدرسها نگاشت میشدند که مقیاسپذیر نبود. پاول موکاپتریس (Paul Mockapetris) سامانه نام دامنه را در اواسط دهه ۱۹۸۰ (RFCهای ۱۰۳۴ و ۱۰۳۵، ۱۹۸۷) به عنوان یک جایگزین توزیعشده و سلسلهمراتبی طراحی کرد. DNS از آن زمان به شدت رشد کرده و انواع رکوردها، نامهای بینالمللی، افزونههای امنیتی (DNSSEC) و انتقال رمزگذاریشده را اضافه کرده است، در حالی که از نظر معماری به طراحی اصلی خود وفادار مانده است.
Debates
- DNS رمزگذاریشده در مقابل قابلیت مشاهده عملیاتی
- رمزگذاری پرسوجوهای DNS (DNS بر روی HTTPS/TLS) حریم خصوصی کاربر را از ناظران در مسیر محافظت میکند، اما همچنین قابلیت مشاهده اپراتورهای شبکه را که برای فیلتر کردن و عیبیابی استفاده میشود، کاهش میدهد و میتواند تفکیک را در چند ارائهدهنده بزرگ متمرکز کند؛ مبادله بین حریم خصوصی و کنترل مورد بحث است.
Key figures
- Paul Mockapetris
- James F. Kurose
- Keith W. Ross
Related topics
Seminal works
- rfc1034
- rfc1035
- kurose2021
Frequently asked questions
- DNS چه کاری انجام میدهد؟
- DNS یک نام کاربرپسند مانند example.com را به آدرس IP مورد نیاز شبکه برای مسیریابی بستهها به سرور صحیح ترجمه میکند. این سیستم دفترچه تلفن اینترنت است و این جستجو را از طریق یک سلسلهمراتب توزیعشده از سرورها با ذخیرهسازی سنگین انجام میدهد تا در کل اینترنت مقیاسپذیر باشد.
- چرا DNS به جای یک سرور بزرگ، توزیعشده است؟
- یک سرور واحد نمیتوانست حجم پرسوجوها را مدیریت کند، یک نقطه شکست واحد میبود و نمیتوانست توسط همه سازمانهای جهان اداره شود. DNS در عوض اختیار بخشهایی از فضای نام را به سرورهای زیادی واگذار میکند و نتایج را به طور گسترده ذخیره میکند، بنابراین بار و کنترل توزیع شده و سیستم انعطافپذیر است.