رکوردهای DNS به زبان ساده: A، CNAME، MX، TXT و بقیه
DNS سامانهای است که نام دامنه را به نشانی عددی سرور ترجمه میکند، و «رکورد» یعنی یک سطر در همان دفترچهٔ ترجمه که میگوید کدام سرویس دامنهٔ شما روی کدام سرور است. رکورد A میگوید سایت کجاست، رکورد MX میگوید ایمیل کجا برود، رکورد TXT چیزی را دربارهٔ دامنه اعلام میکند. بیشتر خرابیهایی که مردم به «مشکل هاست» نسبت میدهند، در واقع یک سطر جامانده یا اشتباه در همین جدول است.
هاستسنج قیمت ۱۱۲۸ پلن از ۳۳ شرکت ایرانی را رصد میکند و آخرین بررسی قیمتها ۱۸ شهریور ۱۴۰۵ انجام شده است. این راهنما همان بخشی است که موقع خرید یا انتقال هاست بیشترین دردسر را میسازد و کمتر از همه توضیح داده میشود.
DNS دقیقاً چه کار میکند
فرض کنید میخواهید به یک شرکت زنگ بزنید و فقط اسمش را میدانید. شماره را از یک مرکز راهنما میپرسید، شماره را میگیرید، تماس برقرار میشود. DNS همین است: مرورگر شما نام دامنه را میداند، ولی برای وصل شدن به نشانی عددی سرور (همان IP) احتیاج دارد. DNS این ترجمه را انجام میدهد.
سه نکته در همین تشبیه پنهان است و هر سه بعداً به کارتان میآید. اول اینکه مرکز راهنما یکی نیست؛ زنجیرهای از سرورهاست که سؤال را به هم پاس میدهند. دوم اینکه هر کسی جواب را برای مدتی یادداشت میکند تا دفعهٔ بعد دوباره نپرسد — همین یادداشت است که بعداً اسمش را میگذاریم کش. و سوم اینکه شما تعیین میکنید کدام دفترچه مرجع دامنهٔ شماست؛ این همان نیمسرور است.
یک تفکیک مهم را هم از همین اول جا بیندازید: دامنه، هاست و DNS سه چیز جدا هستند و لازم نیست از یک شرکت باشند. میشود دامنه را از یک ثبتکننده گرفت، سایت را روی هاست ایران گذاشت و ایمیل را جای دیگری برد. رکوردها همان چیزی هستند که این سه را به هم وصل میکنند.
نیمسرور: قدم اول، و اصلاً یک رکورد معمولی نیست
نیمسرور تعیین میکند رکوردهای دامنهٔ شما را باید از کجا پرسید. تا وقتی نیمسرور به جای درست اشاره نکند، هر رکوردی که در هر پنلی بسازید بیاثر است — چون کسی از آن پنل سؤال نمیپرسد.
در عمل یکی از دو حالت را انتخاب میکنید: نیمسرورهای شرکت هاست، که سادهترین راه است و رکوردها را در همان کنترلپنل هاست میسازید؛ یا نیمسرورهای یک سرویس DNS مستقل، که کنترل بیشتری میدهد ولی یک جای دیگر برای مدیریت اضافه میکند.
اشتباه رایج اینجا این است که کسی نیمسرور را عوض میکند بدون آنکه اول رکوردهای موجود را یادداشت کرده باشد. با تغییر نیمسرور مرجع پاسخ عوض میشود و پنل جدید یک مجموعهٔ پیشفرض دارد که هیچ خبری از تنظیمات قبلی شما ندارد. قبل از تغییر، از تمام رکوردهای فعلی عکس یا فهرست بگیرید؛ دو دقیقه طول میکشد و یک شب بیخوابی را حذف میکند.
دامنهٔ ir و دامنههای بینالمللی مثل com در این ماجرا تفاوتی ندارند؛ فقط پنلی که نیمسرور را در آن عوض میکنید فرق دارد.
رکورد A و AAAA: نشانی خود سرور
رکورد A نام را به یک نشانی IPv4 وصل میکند و رکورد AAAA همان کار را برای IPv6 انجام میدهد. وقتی هاست جدید میخرید و به شما یک IP میدهند، جایی که آن را مینویسید همین رکورد A است.
برای زیردامنهها هم میشود رکورد A ساخت: یکی برای دامنهٔ اصلی، یکی برای www، یکی برای پنلی روی سرور دیگر. هر سطر مستقل است.
اشتباه رایج: عوض کردن رکورد A بدون عوض کردن رکورد www. آن وقت دامنه به سرور جدید میرود و نسخهٔ www روی سرور قدیمی میماند — و چون هر دو بالا میآیند، کسی متوجه نمیشود تا وقتی سفارشها روی سایت قدیمی ثبت شوند.
رکورد CNAME: نام مستعار — و چرا روی دامنهٔ اصلی نمیشود
رکورد CNAME میگوید «این نام را از روی آن نام بخوان». یعنی بهجای IP، به یک نام دیگر اشاره میکند و پاسخ نهایی از همان نام دوم گرفته میشود. فایدهاش این است که اگر IP عوض شود، فقط یک جا را باید تغییر دهید.
معمولترین کاربردش www است: رکورد A را روی دامنهٔ اصلی میگذارید و www را با CNAME به دامنهٔ اصلی وصل میکنید. سرویسهای خارجی هم معمولاً از شما میخواهند یک زیردامنه را با CNAME به آنها وصل کنید.
چرا روی دامنهٔ اصلی نمیشود: استاندارد DNS میگوید نامی که CNAME دارد نمیتواند هیچ رکورد دیگری داشته باشد. دامنهٔ اصلی شما همیشه رکوردهای دیگری دارد که وجودشان اجباری است — از جمله NS. پس اگر CNAME روی دامنهٔ اصلی بگذارید، یا پنل اجازه نمیدهد، یا اجازه میدهد و چیزی خراب میشود که معمولاً ایمیل است.
راهحل: بعضی سرویسهای DNS رکوردی به نام ALIAS یا ANAME دارند که همان رفتار را روی دامنهٔ اصلی شبیهسازی میکند. اگر سرویس شما ندارد، رکورد A با IP مستقیم بگذارید و بهجایش یادتان باشد که با تغییر سرور باید دستی عوضش کنید.
رکورد MX و عدد اولویت
رکورد MX میگوید ایمیلهای این دامنه را به کدام سرور تحویل بدهند. این رکورد کاملاً مستقل از رکورد A است؛ سایت شما میتواند روی یک سرور باشد و ایمیل روی سروری کاملاً دیگر. اگر هاست ایمیل جداگانه گرفتهاید، دقیقاً همین اتفاق افتاده است.
هر رکورد MX یک عدد اولویت دارد و قاعدهاش برعکس چیزی است که به ذهن میرسد: عدد کمتر یعنی اولویت بالاتر. سرور با عدد ۱۰ قبل از سرور با عدد ۲۰ امتحان میشود؛ دومی وقتی به کار میآید که اولی جواب ندهد.
اشتباه رایج: نگه داشتن رکورد MX قدیمی کنار رکورد جدید. آن وقت بخشی از ایمیلها به سرور قدیمی میرود و شما فکر میکنید ایمیلها گم میشوند، در حالی که سالم روی صندوقی نشستهاند که دیگر بازش نمیکنید. موقع تغییر سرویس ایمیل، رکوردهای قبلی را حذف کنید نه اینکه فقط رکورد تازه اضافه کنید.
رکورد TXT: از SPF و DKIM تا تأیید مالکیت
رکورد TXT یک متن آزاد است که روی دامنه اعلام میشود تا سرویسهای دیگر بخوانندش. سه کاربرد اصلی دارد.
SPF
میگوید چه سرورهایی مجازند به نام دامنهٔ شما ایمیل بفرستند. سرور گیرنده این را میخواند و اگر فرستنده در فهرست نباشد، ایمیل را مشکوک حساب میکند. مقدارش با v=spf1 شروع میشود.
اشتباه رایج و پرتکرار: داشتن دو رکورد SPF. استاندارد میگوید یک دامنه باید فقط یک رکورد SPF داشته باشد؛ با دو تا، هر دو بیاعتبار میشوند و نتیجه بدتر از نداشتن هیچکدام است. اگر هم از هاست ایمیل میفرستید و هم از یک سرویس خبرنامه، باید هر دو را داخل یک رکورد بگذارید.
DKIM
یک امضای رمزنگاریشده که سرویس ایمیل به شما میدهد و شما آن را روی یک زیردامنهٔ مشخص بهصورت TXT میگذارید. کارش این است که ثابت کند متن ایمیل در راه دستکاری نشده.
تأیید مالکیت
ابزارهای وبمستر و سرویسهای ایمیل، برای اطمینان از اینکه دامنه مال شماست، یک رشتهٔ تصادفی میدهند تا در TXT بگذارید. بعد از تأیید میشود حذفشان کرد، ولی ماندنشان هم مشکلی ایجاد نمیکند.
NS، SRV و CAA
سه رکورد دیگر که کمتر با آنها سروکار دارید ولی بد نیست بشناسیدشان.
NS همان نیمسرورهاست، این بار بهشکل رکورد داخل خود ناحیهٔ DNS. معمولاً دست به آن نمیزنید؛ جایی که واقعاً نیمسرور را عوض میکنید، پنل ثبت دامنه است نه این رکورد — و برای دامنههای ir این کار در پنل ایرنیک یا نمایندهٔ آن انجام میشود. کاربرد جدیاش وقتی است که بخواهید مدیریت یک زیردامنه را به سرور دیگری بسپارید.
SRV برای معرفی سرویسهایی است که روی پورت خاصی کار میکنند — مثل تلفن اینترنتی یا پیکربندی خودکار برخی سرویسهای ایمیل. اگر سرویسی به آن نیاز داشته باشد، مقدار دقیقش را خودش به شما میدهد.
CAA اعلام میکند کدام مراکز صدور گواهی مجازند برای دامنهٔ شما گواهی SSL صادر کنند. مفید است، ولی یک تلهٔ کوچک دارد: اگر CAA بگذارید و مرکز صادرکنندهٔ گواهی هاستتان در فهرست نباشد، صدور گواهی شکست میخورد و پیام خطا هم معمولاً گویا نیست. اگر گواهی SSL ناگهان صادر نشد، این را چک کنید.
| رکورد | برای چه | اشتباه رایج |
|---|---|---|
| A و AAAA | وصل کردن نام به نشانی عددی سرور | عوض کردن دامنهٔ اصلی و جا انداختن نسخهٔ www |
| CNAME | وصل کردن یک نام به نام دیگر | گذاشتنش روی دامنهٔ اصلی |
| MX | تعیین سرور تحویل ایمیل | نگه داشتن رکورد قدیمی کنار رکورد جدید |
| TXT | اعلام SPF و DKIM و تأیید مالکیت | دو رکورد SPF همزمان |
| NS | معرفی نیمسرورهای مرجع | عوض کردنش بهجای تنظیم نیمسرور در پنل دامنه |
| CAA | محدود کردن مراکز صدور گواهی | جا انداختن مرکز صادرکنندهٔ گواهی هاست |
TTL و آن چیزی که به آن میگویند «انتشار»
TTL عددی است که کنار هر رکورد مینشیند و میگوید هر کسی که این جواب را گرفت، چند ثانیه اجازه دارد آن را نگه دارد و دوباره نپرسد. همین یک عدد، تمام ماجرای «انتشار» را توضیح میدهد.
و بگذارید صادق باشیم: «انتشار» اسم گمراهکنندهای است. چیزی پخش نمیشود و همگامسازی جهانی مرموزی در کار نیست. لحظهای که رکورد را ذخیره میکنید، نیمسرور شما جواب جدید را میدهد. چیزی که طول میکشد، منقضی شدن نسخهٔ قدیمی است که سرورهای DNS اپراتورها، شرکتها و مودم خود کاربر کش کردهاند؛ تا آن یادداشت باطل نشود، دوباره سؤال نمیپرسند.
کاری که تقریباً هیچکس نمیکند
چند روز قبل از انتقال، TTL رکوردهایی را که قرار است عوض شوند به کمترین مقدار ممکن برسانید — معمولاً ۳۰۰ ثانیه. کشهای قدیمی بهتدریج منقضی میشوند و همه با مقدار جدید جایگزین میشوند. حالا روز انتقال، تغییر شما در چند دقیقه همهجا دیده میشود، نه چند ساعت. بعد از اینکه همهچیز پایدار شد، TTL را به مقدار عادی برگردانید.
تفاوت این کار با نکردنش، دقیقاً تفاوت یک جابهجایی نرم و یک ساعت قطعی است. و کل هزینهاش این است که چند روز زودتر یادتان باشد.
چطور رکوردهای خودم را ببینم
سه راه دارید و هر سه رایگاناند.
- کنترلپنل خودتان. بخش مدیریت DNS چیزی را نشان میدهد که شما تنظیم کردهاید — نه لزوماً همان چیزی که دنیا میبیند.
- ابزار خط فرمان. روی ویندوز دستور
nslookupو روی لینوکس و مکdigجواب واقعی را از سرور DNS میگیرند و میشود نوع رکورد را هم مشخص کرد. - ابزارهای وب. سایتهایی که رکورد را از چند نقطهٔ دنیا همزمان میپرسند و نشان میدهند تغییر تا کجا رسیده.
برای اطمینان، جواب را از یک سرور DNS عمومی بپرسید نه از سرور اپراتور خودتان؛ اپراتور ممکن است هنوز نسخهٔ کششده را بدهد.
سه خرابی رایج و علتشان
بعد از انتقال هاست، ایمیلها قطع شد
شایعترین حادثه. نیمسرور را به هاست جدید بردید، هاست جدید ناحیهٔ DNS پیشفرض خودش را ساخت و رکورد MX آن به سرور خودش اشاره میکند — جایی که هیچ صندوقی ندارید. ایمیلها به آنجا تحویل داده میشوند و ناپدید به نظر میرسند.
پیشگیری: پیش از تغییر نیمسرور، رکوردهای MX و TXT مربوط به ایمیل را از پنل قبلی بردارید و بلافاصله بعد از تغییر در پنل جدید بسازید. اگر ایمیل روی سرویس جداگانهای است، این رکوردها اصلاً نباید عوض شوند.
سایت روی اینترنت موبایل باز میشود ولی روی وایفای شرکت نه
تقریباً همیشه مسئلهٔ کش است، نه خرابی. سرور DNS شبکهٔ شرکت هنوز جواب قدیمی را نگه داشته و تا منقضی نشود، به سرور جدید نمیرود. اپراتور موبایل کش دیگری دارد که زودتر بهروز شده است.
راهحل: صبر تا پایان TTL، خالی کردن کش DNS روی کامپیوتر و مودم، و اگر شبکهٔ سازمانی سرور DNS داخلی دارد، درخواست از مدیر شبکه برای پاک کردن کش. اگر بعد از گذشت زمان زیادی هنوز فرق دارد، آن وقت واقعاً دنبال رکورد اشتباه بگردید.
دامنه با www کار میکند و بدون www نه (یا برعکس)
اینها دو نام جدا هستند و هر کدام رکورد خودشان را میخواهند. حالت رایج این است که فقط یکی تعریف شده، یا هر دو تعریف شدهاند ولی به دو سرور متفاوت اشاره میکنند.
راه درست: هر دو را تعریف کنید — یکی رکورد A و دیگری CNAME به همان — و بعد در تنظیمات سایت یکی را انتخاب کنید و دیگری را با ریدایرکت دائمی به آن بفرستید. داشتن هر دو نسخهٔ فعال و مستقل، هم برای کاربر گیجکننده است و هم برای موتور جستوجو.
پرسشهای متداول
تغییر رکورد چقدر طول میکشد تا اثر کند؟
به TTL همان رکورد پیش از تغییر بستگی دارد، نه به سرعت هاست یا سرویس DNS. اگر TTL را از قبل کم کرده باشید، خیلی سریع؛ اگر روی مقدار بلند بوده، باید تا پایان همان مدت صبر کنید.
میشود دامنه را از یک شرکت و هاست را از شرکت دیگری گرفت؟
بله و کاملاً عادی است. کافی است نیمسرورهای دامنه را به هاست اشاره دهید یا رکورد A را دستی بسازید. صفحهٔ دامنه و جدول هاست را میتوانید جدا از هم ببینید.
رکوردها را پاک کردم، سایت خراب شد. چه کنم؟
اگر فهرست قبلی را دارید، همان را دوباره بسازید. اگر ندارید، از پشتیبانی هاست بخواهید ناحیهٔ پیشفرض را بازسازی کند و بعد رکوردهای ایمیل و سرویسهای بیرونی را دستی اضافه کنید.
تفاوت رکورد A و نیمسرور چیست؟
نیمسرور میگوید رکوردها را از کجا بپرسند؛ رکورد A یکی از همان رکوردهاست. با عوض کردن نیمسرور کل مجموعهٔ رکوردها جابهجا میشود، با عوض کردن رکورد A فقط مقصد همان یک نام.
چند تا رکورد MX لازم دارم؟
سرویس ایمیل شما مشخص میکند. بعضی یک رکورد میدهند و بعضی چند رکورد با اولویتهای مختلف برای حالت پشتیبان. مقدارها را عیناً از خود سرویس بگیرید.
جمعبندی: ترتیب کارها
- پیش از هر تغییری، از تمام رکوردهای فعلی فهرست یا عکس بگیرید.
- چند روز قبل از انتقال، TTL رکوردهایی را که عوض میشوند کم کنید.
- تصمیم بگیرید نیمسرور کجا باشد: هاست یا سرویس DNS مستقل.
- رکورد A دامنهٔ اصلی و رکورد
wwwرا با هم تنظیم کنید، نه یکیاش را. - رکوردهای MX و TXT مربوط به ایمیل را جداگانه بررسی کنید؛ اینها با تغییر هاست خودبهخود درست نمیشوند.
- بعد از تغییر، رکوردها را از یک سرور DNS عمومی بپرسید و سایت را با و بدون
wwwباز کنید. - وقتی همهچیز پایدار شد، TTL را به مقدار عادی برگردانید.
اگر هنوز در مرحلهٔ انتخاب هاست هستید، راهنمای خرید هاست و یابندهٔ هاست نقطهٔ شروع بهتری از جدولهای خام هستند.
DNSرکورد DNSنیمسرورانتقال هاست