انواع رکورد DNS و کاربرد هر کدام

رکورد DNS یک خط در فایل منطقه (Zone) دامنه است که به سرورهای دیگر می‌گوید برای هر کار سراغ کجا بروند: سایت روی کدام IP است، ایمیل‌های دامنه به کدام سرور تحویل داده شود، کدام سرورها اجازه ارسال ایمیل از طرف دامنه را دارند و کدام مرجع می‌تواند برایش گواهی SSL صادر کند. رایج‌ترین انواع رکورد DNS این‌ها هستند: A، AAAA، CNAME، MX، TXT، NS، SOA، PTR، SRV و CAA.

هر رکورد چهار بخش دارد: نام (مثلاً www)، نوع، مقدار و TTL. TTL می‌گوید سرورهای دیگر تا چند ثانیه می‌توانند جواب را در حافظه نگه دارند. در فایل‌های منطقه به قالب BIND، چند رکورد نمونه این شکل را دارند:

example.com.       3600  IN  A      203.0.113.10
www.example.com.   3600  IN  CNAME  example.com.
example.com.       3600  IN  MX 10  mail.example.com.

در پنل‌هایی مثل Cloudflare یا پنل ثبت‌کننده دامنه همین اطلاعات را در یک فرم وارد می‌کنید و نیازی به نوشتن این قالب نیست. ولی دانستن قالب کمک می‌کند خروجی ابزارهایی مثل dig را راحت بخوانید.

انواع رکورد DNS و کاربرد هر کدام

رکورد A

نام را به یک آدرس IPv4 وصل می‌کند. رکورد A دامنه اصلی و www معمولاً مهم‌ترین رکوردهای هر سایت‌اند و در جابه‌جایی سرور، همین‌ها عوض می‌شوند. یک نام می‌تواند چند رکورد A داشته باشد که در این صورت پاسخ‌ها به نوبت داده می‌شوند.

رکورد AAAA

همان کار رکورد A را برای IPv6 انجام می‌دهد. اگر رکورد AAAA دارید، سایت باید روی آن آدرس IPv6 هم درست سرویس بدهد. رکورد AAAA قدیمی که به سرور قبلی اشاره می‌کند باعث می‌شود بعضی کاربران سایت قدیمی را ببینند و بقیه سایت جدید را.

رکورد CNAME

یک نام را نام مستعار نام دیگر می‌کند، مثلاً www را به example.com. سرور DNS برای جواب دادن، رکوردهای نام مقصد را برمی‌گرداند. CNAME دو محدودیت مهم دارد: کنار آن هیچ رکورد دیگری با همان نام نمی‌تواند وجود داشته باشد و به همین دلیل روی خود دامنه اصلی، که رکوردهای NS و SOA دارد، مجاز نیست. سرویس‌هایی مثل Cloudflare با قابلیتی به نام CNAME Flattening یا رکوردهای ALIAS این محدودیت را در پنل خودشان دور می‌زنند و در نهایت IP برمی‌گردانند.

رکورد MX

سرورهای دریافت ایمیل دامنه را مشخص می‌کند. هر رکورد MX یک عدد اولویت دارد و عدد کوچک‌تر اول امتحان می‌شود. مقدار MX باید نام یک میزبان باشد که خودش رکورد A دارد؛ نوشتن IP به‌جای نام یا اشاره به یک CNAME طبق استانداردها نادرست است و بعضی سرورهای ارسال‌کننده آن را نمی‌پذیرند.

رکورد TXT

متن آزاد است و امروز بیشتر برای سه کار استفاده می‌شود: SPF که فهرست سرورهای مجاز به ارسال ایمیل است، DKIM که کلید عمومی امضای ایمیل را زیر نامی مثل selector._domainkey نگه می‌دارد، و DMARC که سیاست دامنه را زیر نام _dmarc اعلام می‌کند. تأیید مالکیت دامنه برای سرویس‌هایی مثل Google Search Console هم با رکورد TXT انجام می‌شود. هر دامنه فقط باید یک رکورد SPF داشته باشد؛ جزئیات تنظیم این سه رکورد در تنظیم SPF، DKIM و DMARC آمده است.

رکورد NS

مشخص می‌کند کدام سرورها برای این دامنه یا زیردامنه پاسخ معتبر می‌دهند. NSهایی که در پنل ثبت‌کننده دامنه وارد می‌کنید تعیین می‌کنند رکوردهای دامنه را باید در کدام سرویس ویرایش کنید. اگر NS به Cloudflare اشاره می‌کند، هر تغییری در پنل ثبت‌کننده بی‌اثر است.

رکورد SOA

اولین رکورد هر منطقه است و اطلاعات مدیریتی آن را نگه می‌دارد: سرور DNS اصلی، ایمیل مسئول، شماره سریال و چند زمان‌سنج. شماره سریال در سرورهای DNS خودمیزبان مهم است، چون سرورهای ثانویه فقط وقتی تغییرات را می‌گیرند که سریال بالا رفته باشد. آخرین فیلد SOA هم تعیین می‌کند پاسخ «چنین رکوردی وجود ندارد» تا چه مدت در حافظه سرورهای دیگر بماند.

رکورد PTR

برعکس رکورد A است و یک IP را به نام برمی‌گرداند. رکورد PTR را مالک IP ثبت می‌کند، یعنی دیتاسنتر یا ارائه‌دهنده سرور، نه پنل دامنه شما. برای میل سرور اهمیت زیادی دارد، چون بیشتر سرورهای ایمیل از فرستنده‌ای که PTR درست ندارد نامه را با شک می‌پذیرند یا رد می‌کنند.

رکورد SRV

محل یک سرویس مشخص را همراه با پورت اعلام می‌کند. نام آن قالب _service._protocol.domain دارد و مقدارش شامل اولویت، وزن، پورت و نام میزبان است. SIP در مراکز تلفن، Autodiscover در Exchange و بعضی سرویس‌های Active Directory از رکورد SRV استفاده می‌کنند:

_sip._udp.example.com.  3600  IN  SRV  10 60 5060 sip.example.com.

رکورد CAA

مشخص می‌کند کدام مراجع صدور گواهی اجازه دارند برای دامنه SSL صادر کنند. اگر رکورد CAA نداشته باشید، همه مراجع مجازند. اگر داشته باشید و مرجع فعلی‌تان در آن نباشد، تمدید گواهی شکست می‌خورد:

example.com.  3600  IN  CAA  0 issue "letsencrypt.org"

خلاصه انواع رکورد DNS

نوعکاربردنمونه مقدار
AIPv4 سایت یا سرور203.0.113.10
AAAAIPv6 سایت یا سرور2001:db8::10
CNAMEنام مستعارexample.com.
MXسرور دریافت ایمیل10 mail.example.com.
TXTSPF، DKIM، DMARC و تأیید مالکیتv=spf1 mx -all
NSسرورهای DNS دامنهns1.example.net.
SOAاطلاعات مدیریتی منطقهسرور اصلی، ایمیل مسئول، سریال
PTRنام متناظر با IPmail.example.com.
SRVمحل و پورت یک سرویس10 60 5060 sip.example.com.
CAAمراجع مجاز صدور SSL0 issue "letsencrypt.org"

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

چیزی به نام پخش شدن DNS در اینترنت وجود ندارد. وقتی رکوردی را عوض می‌کنید، سرورهای DNS معتبر شما فوراً جواب جدید را می‌دهند. ولی سرورهای DNS اپراتورها و سازمان‌ها جواب قبلی را تا پایان TTL آن در حافظه نگه می‌دارند. اگر TTL رکورد ۸۶۴۰۰ ثانیه بوده، ممکن است بعضی کاربران تا یک روز آدرس قدیمی را ببینند.

برای همین، اگر قرار است سرور را جابه‌جا کنید، یک تا دو روز قبل TTL رکوردهایی را که عوض می‌شوند به ۳۰۰ ثانیه کم کنید و بعد از جابه‌جایی دوباره بالا ببرید. تغییر NS در سطح رجیستری جداست؛ برای دامنه‌های com، TTL رکوردهای NS در سرورهای رجیستری دو روز است و این زمان در اختیار شما نیست.

بررسی رکوردهای DNS با dig و nslookup

در لینوکس و مک دستور dig و در ویندوز nslookup رکوردها را نشان می‌دهند:

dig example.com A +short
dig example.com MX +short
dig example.com TXT +short
dig @1.1.1.1 www.example.com +short
dig -x 203.0.113.10 +short
nslookup -type=mx example.com

دستور چهارم از یک DNS عمومی مشخص می‌پرسد و برای مقایسه با جواب DNS اپراتور خودتان مفید است. دستور پنجم رکورد PTR را نشان می‌دهد. اگر ترجیح می‌دهید همه رکوردهای اصلی را یک‌جا ببینید و SPF و DMARC هم تحلیل شوند، از ابزار بررسی DNS دامنه استفاده کنید.

اشتباه‌های رایج در تنظیم رکوردهای DNS

  • ویرایش رکوردها در پنل ثبت‌کننده دامنه، در حالی که NS دامنه به سرویس دیگری مثل Cloudflare اشاره می‌کند.
  • ساختن دو رکورد SPF جدا به‌جای ادغام همه مقدارها در یک رکورد.
  • نوشتن IP در رکورد MX یا اشاره MX به یک CNAME.
  • فراموش کردن رکورد AAAA قدیمی بعد از جابه‌جایی سرور.
  • جا انداختن نقطه انتهای نام در فایل‌های منطقه BIND، که باعث می‌شود نام دامنه دوباره به انتهای مقدار اضافه شود.
  • بالا نگه داشتن TTL درست پیش از جابه‌جایی سرور.

وقتی یک سایت وردپرسی را جابه‌جا می‌کنید، ترتیب درست تغییر DNS را در انتقال سایت وردپرس به هاست جدید مرحله‌به‌مرحله نوشته‌ایم.

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

فرق رکورد A و CNAME چیست؟

رکورد A مستقیماً IP را برمی‌گرداند و CNAME می‌گوید جواب را از یک نام دیگر بگیر. اگر IP سرور عوض شود، با CNAME فقط رکورد A مقصد را عوض می‌کنید و همه نام‌های مستعار خودشان به‌روز می‌شوند. روی دامنه اصلی فقط A و AAAA قابل استفاده‌اند، مگر سرویس DNS قابلیت ALIAS داشته باشد.

رکورد PTR را کجا ثبت کنم؟

در پنل ارائه‌دهنده سرور یا با تیکت به دیتاسنتری که IP متعلق به آن است. پنل دامنه و Cloudflare امکان ثبت PTR برای IP سرور شما را ندارند، چون منطقه معکوس IP در اختیار مالک IP است.

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

حداکثر به اندازه TTL قبلی آن رکورد. تغییر NS دامنه ممکن است تا دو روز طول بکشد، چون به TTL رکوردهای NS در سرورهای رجیستری بستگی دارد.

رکورد CAA برای SSL رایگان لازم است؟

لازم نیست. ولی اگر آن را ساخته‌اید، مرجعی که از آن گواهی می‌گیرید باید در آن آمده باشد. برای گواهی Let’s Encrypt مقدار letsencrypt.org را اضافه کنید؛ روش نصب گواهی رایگان در نصب SSL رایگان آمده است.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *