وقتی google.com را در مرورگر تایپ می‌کنید، کامپیوتر شما نمی‌داند google.com کجاست. کامپیوترها با آدرس IP کار می‌کنند — عددهایی مثل 142.250.185.78 — نه با نام‌های متنی. کاری که DNS انجام می‌دهد این است: google.com را به عدد تبدیل می‌کند. ساده به نظر می‌رسد، ولی پشت این سادگی یک سیستم پیچیده و هوشمندانه وجود دارد.

DNS چیست؟

DNS مخفف Domain Name System است. یک سیستم سلسله‌مراتبی و توزیع‌شده برای تبدیل نام دامنه‌ها به آدرس IP. بدون DNS، باید آدرس IP هر سایتی را که می‌خواهید ببازید حفظ می‌بودید — کاری که عملاً غیرممکن است.

تشبیه معروف «دفترچه تلفن اینترنت» خوب است ولی کامل نیست. DNS بیشتر شبیه یک سیستم ردیابی توزیع‌شده است که در همه جای دنیا به صورت موازی کار می‌کند — نه یک دفترچه مرکزی.

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

وقتی google.com را می‌زنید:

  1. مرورگر اول کش خودش را چک می‌کند (شاید قبلاً این دامنه را resolve کرده)
  2. بعد از سیستم‌عامل می‌پرسد که کش دارد یا نه
  3. اگر نباشد، به Recursive Resolver (معمولاً DNS سرویس‌دهنده اینترنت یا DNS سفارشی) می‌پرسد
  4. Resolver از Root Server می‌پرسد: «برای .com کجا باید بروم؟»
  5. Root Server آدرس TLD Server برای .com را می‌دهد
  6. Resolver از TLD Server می‌پرسد: «google.com کجاست؟»
  7. TLD Server آدرس Authoritative Name Server گوگل را می‌دهد
  8. Resolver از Authoritative NS می‌پرسد و IP نهایی را می‌گیرد
  9. نتیجه کش می‌شود و به مرورگر برمی‌گردد

این فرآیند — که DNS Resolution یا DNS Lookup نامیده می‌شود — معمولاً در کمتر از ۱۰۰ میلی‌ثانیه انجام می‌شود. اما اگر DNS کند باشد، این زمان می‌تواند به ۵۰۰ میلی‌ثانیه یا بیشتر برسد — و این یعنی هنوز هیچ بایتی از سایت نیامده، سایت کند به نظر می‌رسد.

ساختار سلسله‌مراتبی DNS

  • Root (.): بالاترین سطح. ۱۳ Root Server در دنیا وجود دارد (که هر کدام cluster ای از سرورهای مختلف است)
  • TLD (Top Level Domain): مثل .com، .ir، .net، .org
  • Second Level Domain: مثل google.com یا yahoo.com
  • Subdomain: مثل mail.google.com یا www.yahoo.com

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

هر دامنه می‌تواند چندین نوع رکورد DNS داشته باشد. مهم‌ترین‌ها:

  • A Record: دامنه را به IPv4 وصل می‌کند. مثال: example.com → 93.184.216.34
  • AAAA Record: دامنه را به IPv6 وصل می‌کند
  • CNAME: دامنه را به دامنه دیگر وصل می‌کند. مثال: www.example.com → example.com
  • MX: سرور ایمیل را مشخص می‌کند. اولویت عددی دارد — عدد کمتر یعنی اولویت بالاتر
  • TXT: متن دلخواه. برای تایید مالکیت دامنه، SPF، DKIM، و DMARC استفاده می‌شود
  • NS: نیم‌سرورهای Authoritative دامنه را مشخص می‌کند
  • PTR: عکس A Record — IP را به نام تبدیل می‌کند. برای ایمیل مهم است
  • CAA: مشخص می‌کند کدام CA مجاز به صدور SSL برای دامنه است
  • SRV: سرویس‌های خاص مثل SIP یا XMPP را مشخص می‌کند

TTL چیست و چرا مهم است؟

TTL (Time To Live) مشخص می‌کند چند ثانیه یک رکورد DNS باید کش شود. اگر TTL یک رکورد A را ۳۶۰۰ تنظیم کنید، یعنی DNS resolverها می‌توانند یک ساعت این جواب را نگه دارند بدون اینکه دوباره بپرسند.

  • TTL پایین (۳۰۰ ثانیه): تغییرات DNS زودتر اعمال می‌شوند. مناسب قبل از migration
  • TTL بالا (۸۶۴۰۰ ثانیه = یک روز): بار سرور DNS کمتر، resolve سریع‌تر. مناسب وقتی تغییری در کار نیست

توصیه: قبل از تغییر IP سرور یا انتقال هاست، چند روز قبل TTL را به ۳۰۰ کاهش دهید تا propagation سریع‌تر باشد. بعد از اتمام migration، TTL را دوباره بالا ببرید.

DNS Propagation چیست؟

وقتی رکورد DNS را تغییر می‌دهید، این تغییر فوری روی همه جای دنیا اعمال نمی‌شود. به این فرآیند DNS Propagation می‌گویند. بسته به TTL قبلی، ممکن است از چند دقیقه تا ۴۸ ساعت طول بکشد.

چرا؟ چون DNS resolverهای مختلف در دنیا کش‌های مختلفی دارند. تا زمانی که TTL قبلی منقضی نشود، جواب قدیمی را از کش برمی‌گردانند. برای چک کردن propagation می‌توانید از dnschecker.org یا whatsmydns.net استفاده کنید — این ابزارها وضعیت رکوردهای DNS را از نقاط مختلف دنیا بررسی می‌کنند.

چرا DNS روی سرعت سایت تاثیر دارد؟

DNS Lookup اولین قدم در لود شدن صفحه است. حتی قبل از اینکه یک بایت از سرور بیاید، مرورگر باید IP سرور را پیدا کند. اگر این lookup 500 میلی‌ثانیه طول بکشد، ۵۰۰ میلی‌ثانیه به زمان لود اولیه اضافه می‌شود — بدون هیچ دلیل فنی دیگری.

عوامل موثر بر سرعت DNS:

  • کیفیت Recursive Resolver (DNS سرویس‌دهنده اینترنت شما)
  • تعداد hops در مسیر Query
  • موقعیت جغرافیایی Authoritative NS نسبت به کاربر
  • TTL رکورد (cache hit rate)

DNS سرورهای سریع

DNS سرویس‌دهنده اینترنت (ISP) شما DNS ارائه می‌دهد ولی همیشه بهترین نیست. می‌توانید DNS سرورهای بهتری انتخاب کنید:

  • Cloudflare DNS (1.1.1.1): از سریع‌ترین DNS های دنیا با تمرکز روی حریم خصوصی. معمولاً سریع‌ترین گزینه است
  • Google DNS (8.8.8.8): قابل اعتماد، سریع، و گسترده‌ترین حافظه کش دنیا
  • OpenDNS (208.67.222.222): قابلیت فیلترینگ محتوا دارد — خوب برای خانواده‌ها
  • Quad9 (9.9.9.9): روی امنیت تمرکز دارد، دامنه‌های مخرب را بلاک می‌کند

DNSSEC چیست؟

DNSSEC (DNS Security Extensions) یک لایه امنیتی به DNS اضافه می‌کند. بدون DNSSEC، یک هکر می‌تواند پاسخ‌های DNS را جعل کند و کاربر را به سایت مخرب هدایت کند — این حمله به Cache Poisoning یا DNS Spoofing معروف است.

با DNSSEC، هر رکورد DNS امضای دیجیتال دارد. مرورگر می‌تواند این امضا را تایید کند و مطمئن شود جواب دستکاری نشده. اگر ثبت‌کننده دامنه شما DNSSEC ارائه می‌دهد، فعال کردنش توصیه می‌شود.

مدیریت DNS در cPanel

اگر هاست اشتراکی با cPanel دارید، می‌توانید رکوردهای DNS را از بخش Zone Editor یا Advanced DNS Zone Editor مدیریت کنید. اینجا می‌توانید:

  • رکورد A جدید برای subdomain بسازید
  • MX Record برای ایمیل تنظیم کنید
  • TXT Record برای تایید مالکیت و SPF اضافه کنید
  • CNAME برای www اضافه کنید

برای تایید دامنه در Google Search Console، Google Workspace، یا ابزارهای ایمیل مثل Zoho Mail، معمولاً باید یک رکورد TXT خاص اضافه کنید. این کار از همان Zone Editor انجام می‌شود.

SPF، DKIM، و DMARC: DNS برای ایمیل

یکی از مهم‌ترین کاربردهای رکوردهای TXT، تنظیم امنیت ایمیل است:

  • SPF: مشخص می‌کند کدام سرورها مجاز به ارسال ایمیل از نام دامنه شما هستند. مثال: "v=spf1 include:_spf.google.com ~all"
  • DKIM: امضای دیجیتال به ایمیل اضافه می‌کند تا دریافت‌کننده بتواند صحت آن را تایید کند
  • DMARC: سیاست مدیریت ایمیل‌های جعلی را تعریف می‌کند — مثلاً «اگر SPF یا DKIM fail شد، ایمیل را reject کن»

بدون این سه رکورد، ایمیل‌های شما ممکن است در spam قرار بگیرند یا هکرها بتوانند از نام دامنه شما ایمیل جعلی بفرستند.

چطور با ابزار dig رکوردهای DNS را بررسی کنیم؟

ابزار dig در لینوکس و macOS یکی از مفیدترین ابزارها برای debugging مشکلات DNS است:

# بررسی A Record
dig example.com A

# بررسی MX Record
dig example.com MX

# بررسی TXT Record (برای SPF)
dig example.com TXT

# بررسی NS Record
dig example.com NS

# پرس‌وجوی مستقیم از یک DNS خاص
dig @8.8.8.8 example.com A

در ویندوز می‌توانید از nslookup استفاده کنید:

nslookup example.com
nslookup -type=MX example.com 8.8.8.8

DNS و عملکرد ایمیل: رکورد PTR

یک رکورد DNS کمتر شناخته‌شده ولی مهم برای ایمیل، رکورد PTR است. این رکورد عکس A Record است — IP را به نام تبدیل می‌کند. وقتی سرور ایمیل شما ایمیل می‌فرستد، سرور مقصد ممکن است Reverse DNS Lookup انجام دهد و بررسی کند که آیا IP شما یک PTR Record درست دارد.

اگر PTR Record نداشته باشید یا آن را اشتباه تنظیم کنید، بسیاری از سرورهای ایمیل ایمیل‌های شما را reject یا spam می‌کنند. PTR Record را از طریق ارائه‌دهنده سرور یا VPS خود تنظیم می‌کنید — نه از پنل دامنه.

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

چرا بعد از تغییر DNS سایتم لود نمی‌شود؟

این احتمالاً به خاطر DNS Propagation است. تغییرات DNS فوری نیستند و ممکن است تا ۴۸ ساعت طول بکشد. با ابزار dnschecker.org می‌توانید وضعیت propagation را چک کنید. اگر TTL رکورد قبلی بالا بوده، مدت بیشتری منتظر بمانید.

فرق A Record و CNAME چیست؟

A Record مستقیم به یک IP اشاره می‌کند. CNAME به یک دامنه دیگر اشاره می‌کند و DNS باید یک lookup دیگر انجام دهد تا IP را پیدا کند. CNAME برای www یا subdomain‌هایی که می‌خواهید همیشه به همان IP دامنه اصلی وصل باشند مناسب است. A Record برای دامنه اصلی و وقتی IP مستقیم دارید بهتر است.

آیا می‌توانم DNS سرویس‌دهنده اینترنتم را عوض کنم؟

بله، کاملاً. به تنظیمات شبکه سیستم‌عامل بروید و DNS را تغییر دهید. در ویندوز: Control Panel → Network → Properties → IPv4 → DNS. این فقط DNS برای کامپیوتر شما را تغییر می‌دهد. برای تغییر DNS سایت، باید از پنل ثبت‌کننده دامنه تنظیم کنید.

SOA Record چیست و چرا مهم است؟

SOA (Start of Authority) Record اطلاعات اصلی zone DNS را نگه می‌دارد: کدام nameserver اصلی است، ایمیل admin، شماره serial (برای sync بین nameserver ها) و TTL های مختلف. معمولاً نیازی به دستکاری مستقیم ندارید چون سرویس DNS به صورت خودکار مدیریتش می‌کند.

جمع‌بندی

DNS یک بخش حیاتی از اینترنت است که معمولاً نادیده گرفته می‌شود — تا وقتی مشکلی پیش بیاید. شناخت انواع رکوردهای DNS، TTL، و نحوه مدیریت آن‌ها برای هر کسی که با هاست و دامنه کار می‌کند ضروری است.

برای بهترین عملکرد: از DNS سرورهای معتبر استفاده کنید، TTL ها را منطقی تنظیم کنید، SPF و DKIM را برای ایمیل راه‌اندازی کنید، و قبل از هر تغییر مهم (مثل migration هاست) برنامه‌ریزی کنید. صباهاست با ارائه هاست اشتراکی و VPS، کنترل کامل DNS را در اختیار مشتریان قرار می‌دهد.