DevOps

رکوردهای DNS به زبان ساده: A، AAAA، CNAME، MX، TXT، NS و TTL.

نویسنده: تیم noc724۴ دقیقه مطالعهبه‌روزرسانی: ۲۶ مهر ۱۴۰۵

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

نکته‌های کلیدی

  • A/AAAA نام رو به آدرس IPv4/IPv6 وصل می‌کنن؛ CNAME یه نام رو نام مستعار نام دیگه‌ای می‌کنه.
  • MX می‌گه ایمیل یه دامنه کجا بره؛ TXT داده‌های تأیید و امنیت ایمیل رو نگه می‌داره.
  • رکوردهای NS دامنه رو به نیم‌سرورهاش تفویض می‌کنن.
  • TTL مشخص می‌کنه resolverها چقدر جواب رو کش کنن؛ قبل از تغییرات برنامه‌ریزی‌شده کمش کنید.
  • رکوردهای حیاتی رو مانیتور کنید تا یه تغییر غیرمنتظره هشدار بده.
قطعی پیش میاد. زود باخبر شید!

noc724 سایت، سرور و APIهای شما رو شبانه‌روز چک می‌کنه و همون لحظه‌ای که چیزی خراب شد با پیامک، تلگرام یا بله خبرتون می‌کنه.

ثبت‌نام رایگان

جستجوی نام چطور انجام می‌شه؟

وقتی مرورگر www.example.com رو لازم داره:

  1. از resolver سیستم‌عامل می‌پرسه که اول کش خودش رو نگاه می‌کنه.
  2. اگه کش نشده باشه، یه resolver بازگشتی (از اپراتور اینترنت، سازمان یا یه سرویس عمومی) کار رو انجام می‌ده.
  3. resolver از یه سرور ریشه می‌پرسه که اون رو به سرورهای .com ارجاع می‌ده.
  4. سرورهای .com اون رو به نیم‌سرورهای مرجع example.com (از روی رکوردهای NS) ارجاع می‌دن.
  5. سرور مرجع جواب رو برمی‌گردونه و هر resolver اون رو به اندازه‌ی TTL رکورد کش می‌کنه.

رکوردهای رایج

نوعکاربردمقدار نمونه
Aنام به آدرس IPv4203.0.113.10
AAAAنام به آدرس IPv62001:db8::10
CNAMEنام مستعار برای نام دیگهshop.example.net.
MXسرورهای ایمیل با اولویت10 mail.example.com.
TXTمتن آزاد: SPF، DKIM، تأیید مالکیتv=spf1 include:_spf.example.net -all
NSنیم‌سرورهای مرجعns1.provider.net.
SOAاطلاعات کلی zone (سریال، زمان‌ها)ns1.provider.net. admin.example.com. ...
CAAکدوم CAها اجازه‌ی صدور گواهی دارن0 issue "letsencrypt.org"

A و AAAA

رکوردهایی که بیشتر جستجوها به اون‌ها ختم می‌شن. یه نام می‌تونه چند رکورد A داشته باشه؛ کلاینت یکی رو انتخاب می‌کنه و این یه پخش بار ساده ایجاد می‌کنه.

CNAME

یه نام رو به نام دیگه‌ای اشاره می‌ده که بعد جستجو می‌شه. دو قانون آدم‌ها رو گیر میندازه:

  • نامی که CNAME داره نمی‌تونه هیچ رکورد دیگه‌ای داشته باشه.
  • ریشه‌ی zone (خود example.com) نمی‌تونه CNAME باشه؛ سرویس‌دهنده‌ها به‌جاش امکان «ALIAS» یا «flattening» دارن.

MX

سرورهای ایمیل رو به ترتیب اولویت فهرست می‌کنه؛ کوچک‌ترین عدد اول امتحان می‌شه. مقصد MX باید نامی با رکورد A/AAAA باشه، نه CNAME یا آدرس IP.

TXT

متن نگه می‌داره. برای SPF (کدوم سرورها اجازه‌ی ارسال ایمیل دامنه‌ی شما رو دارن)، کلیدهای DKIM، سیاست DMARC و تأیید مالکیت برای خیلی از سرویس‌ها استفاده می‌شه.

NS

دامنه رو به نیم‌سرورها تفویض می‌کنه. اگه رکوردهای NS در ثبت‌کننده‌ی دامنه و داخل zone با هم نخونن، بعضی resolverها جواب متفاوتی با بقیه می‌گیرن.

TTL و انتشار تغییرات

هر رکورد یه TTL (طول عمر) به ثانیه داره. resolverها می‌تونن جواب رو اون‌قدر کش کنن، پس یه تغییر فقط بعد از تموم شدن TTL قبلی به همه می‌رسه. «انتشار DNS» چیزی جز منقضی شدن کش‌ها نیست.

برای یه تغییر برنامه‌ریزی‌شده:

  1. یه روز قبل، TTL رو به ۳۰۰ ثانیه کم کنید.
  2. صبر کنید TTL قبلی تموم بشه.
  3. تغییر رو اعمال کنید؛ حالا ظرف حدود پنج دقیقه پخش می‌شه.
  4. وقتی همه‌چیز پایدار شد، TTL رو دوباره بالا ببرید.

چک کردن رکوردها

dig +short A example.com
dig +short MX example.com
dig example.com TXT
dig @ns1.provider.net example.com A   # ask the authoritative server directly
nslookup -type=AAAA example.com

پرسیدن از سرور مرجع می‌گه چی منتشر شده؛ پرسیدن از یه resolver عمومی می‌گه کاربرها الان چی می‌بینن. ابزارهای آنلاین بررسی رکوردهای DNS و بررسی رکورد MX هم در دسترسن.

چه چیزهایی خراب می‌شن؟

  • دامنه یا تفویض نیم‌سرور منقضی شده؛ همه‌چیز یکجا از resolve شدن می‌افته.
  • یه اشتباه تایپی موقع مهاجرت؛ ترافیک به سرور قدیمی می‌ره یا هیچ‌جا.
  • رکورد AAAA جاافتاده یا کهنه؛ کاربرهای IPv6 خطا می‌بینن و کاربرهای IPv4 نه.
  • SPF/DKIM اشتباه بعد از عوض کردن سرویس ایمیل؛ ایمیل‌ها به اسپم می‌رن.
  • رکوردهای ربوده‌شده؛ بازدیدکننده‌ها به سرور مهاجم فرستاده می‌شن.

یه مانیتور DNS که مقدار مورد انتظار رکوردهای A، MX و NS رو چک می‌کنه، قبل از اینکه مشتری‌ها متوجه بشن درباره‌ی همه‌ی این‌ها هشدار می‌ده.

پرسش‌های پرتکرار

  • به اندازه‌ی TTL قبلی. با TTL یک‌ساعته، بیشتر resolverها ظرف یه ساعت تغییر رو می‌گیرن؛ بعضی‌ها TTL رو نادیده می‌گیرن و بیشتر طول می‌کشن.

  • رکورد A مستقیم آدرس IP می‌ده. CNAME می‌گه «به‌جاش این نام دیگه رو جستجو کن» و یه جستجوی اضافه درست می‌کنه.

  • ممکنه resolverهای مختلف جواب‌های متفاوتی کش کرده باشن، یا resolver مشتری به نیم‌سرورهای شما دسترسی نداشته باشه. جواب‌ها رو از چند resolver عمومی مقایسه کنید.

اشتراک‌گذاری مقاله:ایکستلگراملینکدینفیسبوکردیت
noc724

نویسنده

تیم noc724

تیم فنی مانیتورینگ آپتایم

ما noc724 رو می‌سازیم و اداره می‌کنیم؛ سرویس مانیتورینگ آپتایمی که سایت، سرور و API رو از چند شهر ایران چک می‌کنه. این راهنماها از مشکل‌هایی میان که خودمون و کاربرهامون موقع آنلاین نگه داشتن سرویس‌ها باهاشون روبه‌رو می‌شیم.

تماس با تیم

تخصص:DevOps

سؤالی دارید؟تماس با پشتیبانی
پیشنهادی دارید؟بفرستید

تازه‌ترین مقاله‌ها