مفاهیم پایه

DNS چیست و چطور کار می‌کند؟ از تایپ آدرس تا رسیدن به سرور

تهیه: کلودیفای (نگارش با کمک هوش مصنوعی) · انتشار: · زمان مطالعه: ۷ دقیقه

ATTL 600DNSمفاهیم پایهDNS چیست و چطور کارمی‌کند؟ از تایپ آدرس تارسیدن به سرورمجلهٔ کلودیفایclodify.net/blog
پاسخ کوتاه

DNS (سیستم نام دامنه) دفترچهٔ تلفن اینترنت است: نام‌هایی مثل example.com را به آی‌پی سرور تبدیل می‌کند. وقتی آدرسی را باز می‌کنید، Resolver اپراتور یا DNS عمومی به‌ترتیب از سرورهای Root، سرور پسوند (مثل .com) و در پایان سرور Authoritative دامنه می‌پرسد و پاسخ را برای مدت TTL در کش نگه می‌دارد. رکوردهایی مثل A، AAAA، CNAME و MX تعیین می‌کنند هر نام به کجا اشاره کند.

چرا به DNS نیاز داریم؟

کامپیوترها برای پیدا کردن یکدیگر در اینترنت از آدرس آی‌پی استفاده می‌کنند؛ عددی مثل 203.0.113.10 یا آدرس طولانی‌تر IPv6. اما به خاطر سپردن این اعداد برای انسان عملی نیست، و مهم‌تر از آن، آی‌پی سرورها تغییر می‌کند. اگر سایتی سرورش را عوض کند، نمی‌توان از همهٔ کاربران خواست آدرس جدید را یاد بگیرند.

DNS (Domain Name System) این دو مشکل را حل می‌کند. شما نام ثابت و خوانا را تایپ می‌کنید و DNS در پشت صحنه آن را به آی‌پی فعلی سرور ترجمه می‌کند. صاحب دامنه هر وقت سرور را عوض کند، فقط رکورد DNS را به‌روز می‌کند و کاربران بدون اینکه متوجه شوند به سرور جدید می‌رسند.

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

مسیر یک پرس‌وجوی DNS
پرسشارجاعآی‌پیمرورگر شماwww.example.com؟ResolverDNS اپراتور یا عمومیRoot و TLDارجاع به .comName Serverپاسخ رسمی دامنهپرسشارجاعآی‌پیمرورگر شماwww.example.com؟ResolverDNS اپراتور یا عمومیRoot و TLDارجاع به .comName Serverپاسخ رسمی دامنه
شکل ۱ Resolver به‌جای شما از Root، سرور پسوند و Name Server دامنه می‌پرسد و پاسخ را برای مدت TTL کش می‌کند.

بازیگران اصلی DNS

برای فهم اینکه یک پرس‌وجوی DNS چطور پاسخ می‌گیرد، باید چهار نقش را بشناسید:

  • Stub Resolver: بخشی از سیستم‌عامل گوشی یا کامپیوتر شما که سؤال را می‌پرسد. خودش جواب را پیدا نمی‌کند، فقط از Resolver بعدی می‌پرسد.
  • Recursive Resolver: سروری که کار اصلی جست‌وجو را انجام می‌دهد. معمولاً متعلق به اپراتور اینترنت شماست یا یک DNS عمومی مثل 1.1.1.1 و 8.8.8.8. این سرور پاسخ‌ها را کش می‌کند تا درخواست‌های بعدی سریع‌تر پاسخ بگیرند.
  • سرورهای Root و TLD: سرورهای Root می‌دانند هر پسوند (TLD) مثل .com، .net یا .ir را کدام سرورها مدیریت می‌کنند. سرورهای TLD هم می‌دانند هر دامنه زیر آن پسوند به کدام Name Server سپرده شده است.
  • Authoritative Name Server: سروری که پاسخ قطعی و رسمی رکوردهای یک دامنه را دارد. وقتی در پنل ثبت‌کنندهٔ دامنه یا Cloudflare رکورد می‌سازید، در واقع دادهٔ همین سرور را تغییر می‌دهید.

یک پرس‌وجو، قدم‌به‌قدم

فرض کنید برای اولین بار www.example.com را در مرورگر باز می‌کنید و هیچ کشی وجود ندارد:

  1. مرورگر و سیستم‌عامل ابتدا کش خودشان و فایل hosts را بررسی می‌کنند. چیزی پیدا نمی‌شود.
  2. سؤال به Recursive Resolver (مثلاً DNS اپراتور) فرستاده می‌شود.
  3. Resolver از یکی از سرورهای Root می‌پرسد. Root می‌گوید: «من جواب را ندارم، اما سرورهای .com این‌ها هستند.»
  4. Resolver از سرور .com می‌پرسد. پاسخ: «Name Serverهای example.com این‌ها هستند.»
  5. Resolver از Name Server دامنه می‌پرسد و پاسخ نهایی را می‌گیرد: آی‌پی www.example.com.
  6. Resolver پاسخ را به شما برمی‌گرداند و برای مدتی که TTL رکورد تعیین کرده، در کش نگه می‌دارد.

همهٔ این مراحل معمولاً در کسری از ثانیه انجام می‌شود و در درخواست‌های بعدی، چون پاسخ در کش است، تقریباً فوری است.

شش قدم تا آی‌پی
  1. کش محلی

    مرورگر و سیستم‌عامل ابتدا کش و فایل hosts را بررسی می‌کنند.

  2. پرسش از Resolver

    سؤال به DNS اپراتور یا DNS عمومی می‌رود.

  3. سرور Root

    آدرس سرورهای پسوند .com را برمی‌گرداند.

  4. سرور TLD

    Name Serverهای example.com را معرفی می‌کند.

  5. Name Server دامنه

    پاسخ قطعی: آی‌پی www.example.com.

  6. کش و پاسخ

    Resolver پاسخ را تا پایان TTL نگه می‌دارد و به شما می‌دهد.

شکل ۲ در درخواست‌های بعدی، بیشتر این قدم‌ها به لطف کش حذف می‌شوند.

کش و TTL: چرا تغییر DNS فوری دیده نمی‌شود

هر رکورد DNS عددی به نام TTL (Time To Live) دارد که به ثانیه است و تعیین می‌کند Resolverها تا چه مدت می‌توانند پاسخ را در کش نگه دارند. TTL بالا یعنی پرس‌وجوی کمتر و پاسخ سریع‌تر، اما تغییرات دیرتر به همه می‌رسد. TTL پایین یعنی تغییرات سریع‌تر منتشر می‌شوند، با کمی پرس‌وجوی بیشتر.

به همین دلیل وقتی آی‌پی سرور را عوض می‌کنید، برخی کاربران تا پایان TTL قبلی هنوز به سرور قدیمی می‌روند. ترفند رایج این است که یک روز پیش از مهاجرت، TTL را کم کنید و پس از جابه‌جایی دوباره بالا ببرید. جزئیات کامل این فرایند را در مقالهٔ انتشار DNS چقدر طول می‌کشد بخوانید.

انواع رکوردهای DNS

هر دامنه مجموعه‌ای از رکوردها دارد و هر نوع رکورد کار مشخصی انجام می‌دهد:

رکورد کاربرد
A نام را به آی‌پی نسخهٔ ۴ متصل می‌کند
AAAA نام را به آی‌پی نسخهٔ ۶ متصل می‌کند
CNAME نام را به نام دیگری ارجاع می‌دهد (نام مستعار)
MX سرورهای دریافت ایمیل دامنه را مشخص می‌کند
TXT متن آزاد؛ برای تأیید مالکیت، SPF و DKIM
NS Name Serverهای مسئول دامنه یا زیردامنه
CAA مراکز صدور گواهی مجاز برای دامنه

رکورد CNAME به‌خصوص در کار با CDN اهمیت دارد، چون زیردامنه را به آدرسی که CDN می‌دهد متصل می‌کند؛ توضیح کامل در رکورد CNAME چیست آمده است.

DNS و سرعت سایت

زمان پاسخ DNS بخشی از زمان بارگذاری هر سایت است، به‌خصوص برای بازدید اول. چند عامل روی آن اثر دارد: سرعت Name Serverهای دامنه، فاصلهٔ کاربر تا Resolver و TTL رکوردها. استفاده از ارائه‌دهندهٔ DNS با شبکهٔ گسترده و TTL معقول (نه خیلی پایین) معمولاً کافی است.

اثر مهم‌تر DNS در معماری CDN است. وقتی سایت پشت CDN قرار می‌گیرد، DNS کاربر را به‌جای سرور اصلی به نزدیک‌ترین سرور لبه هدایت می‌کند. یعنی همان سازوکار ساده ترجمهٔ نام، پایهٔ توزیع ترافیک در سراسر جهان است. اگر با این مفهوم آشنا نیستید، CDN چیست را بخوانید.

DNS و امنیت

DNS در طراحی اولیه‌اش رمزنگاری نداشت؛ پرس‌وجوها به‌صورت متن ساده روی پورت ۵۳ ارسال می‌شوند. این موضوع دو پیامد دارد: هر کسی در مسیر می‌تواند ببیند چه دامنه‌هایی را جست‌وجو می‌کنید، و در حالت‌هایی امکان جعل پاسخ وجود دارد. چند فناوری برای بهبود این وضعیت ساخته شده است:

  • DNSSEC: پاسخ‌های DNS را امضای دیجیتال می‌کند تا جعل آن‌ها قابل تشخیص باشد.
  • DNS over HTTPS (DoH) و DNS over TLS (DoT): ارتباط بین کاربر و Resolver را رمزنگاری می‌کنند.

در ایران، سرویس‌های «DNS ضد تحریم» هم از همین سازوکار پرس‌وجو استفاده می‌کنند: برای دامنه‌های تحریمی، آی‌پی یک سرور واسط را برمی‌گردانند. توضیح کامل و نکات امنیتی آن در DNS شکن چیست و چطور کار می‌کند؟ آمده است.

برای صاحب سایت، مهم‌ترین اقدام امنیتی این است که حساب ثبت‌کنندهٔ دامنه و ارائه‌دهندهٔ DNS را با رمز قوی و احراز هویت دومرحله‌ای محافظت کند؛ کسی که به پنل DNS دسترسی پیدا کند، می‌تواند کل ترافیک سایت را به سرور دیگری بفرستد.

TTL پایین یا بالا؟
TTL پایین
  • تغییرات سریع‌تر به همه می‌رسد
  • مناسب پیش از مهاجرت سرور
  • پرس‌وجوی بیشتر به Name Server
  • کش کوتاه‌تر
در برابر
TTL بالا
  • پاسخ بیشتر از کش
  • بار کمتر روی Name Server
  • تغییرات دیرتر دیده می‌شود
  • مناسب رکوردهای ثابت
شکل ۳ برای رکوردهای پایدار TTL معمولی و پیش از تغییر سرور TTL پایین را انتخاب کنید.

ابزارهای بررسی DNS

برای دیدن پاسخ DNS یک دامنه می‌توانید از این دستورها استفاده کنید:

dig example.com A +short
dig example.com MX
dig @1.1.1.1 www.example.com
nslookup example.com

اگر سرور شما خودش نمی‌تواند نام‌ها را حل کند و خطای Temporary failure in name resolution می‌دهد، راهنمای رفع خطای DNS در لینوکس را دنبال کنید.

جمع‌بندی

DNS لایه‌ای نامرئی اما حیاتی است که نام‌های خوانا را به آی‌پی سرورها ترجمه می‌کند. سلسله‌مراتب Root، TLD و Authoritative، به‌همراه کش و TTL، آن را سریع و مقیاس‌پذیر می‌کند. درک DNS برای هر کسی که سایت یا سرویس آنلاین دارد ضروری است؛ از مهاجرت به سرور جدید تا راه‌اندازی CDN و ایمیل، همه با تغییر درست رکوردهای DNS شروع می‌شوند. برای اتصال دامنه به سرویس CDN کلودیفای، مراحل در راهنمای تنظیم CNAME آمده است.

سؤالات متداول

DNS دقیقاً چه کاری انجام می‌دهد؟

نام دامنه‌ها را به آدرس آی‌پی سرورها ترجمه می‌کند تا مرورگر و برنامه‌ها بدانند به کدام سرور وصل شوند. علاوه بر آن، سرورهای ایمیل دامنه، تأیید مالکیت و تنظیمات امنیتی مثل SPF را هم نگهداری می‌کند.

تغییر DNS چقدر طول می‌کشد تا همه‌جا اعمال شود؟

به TTL رکورد قبلی بستگی دارد. Resolverهایی که پاسخ قدیمی را در کش دارند، تا پایان TTL همان را برمی‌گردانند. تغییر Name Serverهای دامنه معمولاً زمان بیشتری می‌برد، چون TTL رکوردهای NS در سطح پسوند طولانی‌تر است.

تفاوت DNS Server و Name Server چیست؟

Name Server یا سرور Authoritative پاسخ رسمی رکوردهای یک دامنه را نگه می‌دارد. DNS Serverی که در تنظیمات شبکهٔ شما تعریف می‌شود معمولاً Recursive Resolver است که پاسخ را از Name Serverها پیدا و کش می‌کند.

آیا تغییر DNS روی سرعت اینترنت اثر دارد؟

روی سرعت دانلود اثری ندارد، اما زمان شروع باز شدن سایت‌ها را تحت تأثیر قرار می‌دهد. Resolver سریع‌تر و نزدیک‌تر، پاسخ‌ها را زودتر برمی‌گرداند؛ به‌خصوص برای سایت‌هایی که بار اول باز می‌کنید.

آماده‌اید؟ سرورتان را بسازید.

از ۱٬۲۰۰ تومان در ساعت · پرداخت ریالی

سرورتان را همین حالا بسازید.

ساعتی بپردازید. هر وقت خواستید حذف کنید.