DNS چیست و چه کاری برای سایت انجام می دهد؟
پاسخ کوتاه: DNS دفترچه تلفن اینترنت است. نام دامنه مثل codeyas.com را به آدرس عددی سرور مثل 185.7.212.89 ترجمه می کند تا مرورگر بداند صفحه را از کجا بگیرد. هر صاحب سایتی بالاخره یک روز به این دفترچه دست می زند: وقتی هاست را عوض می کند، وقتی ایمیل سازمانی راه می اندازد یا وقتی می خواهد یک زیر دامنه بسازد.
این راهنما برای صاحبان سایت نوشته شده، نه برای مهندسان شبکه. اول می گوییم DNS چیست و چگونه کار می کند، بعد با چهار دستور واقعی روی دامنهٔ خودمان نشان می دهیم چطور وضعیت دی ان اس سایت را ببینید، و آخر سر جدول تصمیم می دهیم که چه زمانی باید DNS را تغییر دهید و چه زمانی دست نزنید.
دی ان اس به زبان ساده؛ دفترچه تلفنی که همه هر روز از آن استفاده می کنند
آدم ها نام را یاد می گیرند، رایانه ها عدد را. سرور سایت شما یک آدرس عددی دارد و هیچ کس آن عدد را حفظ نمی کند. دی ان اس همان لایه ای است که بین این دو می نشیند و نام را به عدد تبدیل می کند.
سه نکته که تصویر را کامل می کند:
- DNS روی همه دستگاه ها و همه مرورگرها فعال است؛ شما کاری برای روشن کردنش نمی کنید.
- هر دامنه دو بخش مدیریتی دارد: نیم سرور (چه کسی جواب می دهد) و رکوردها (چه جوابی می دهد).
- هیچ رکوردی روی کامپیوتر شما نیست؛ همه روی سرورهای نیم سرور نوشته شده اند و از آنجا خوانده می شوند.
پرسش «DNS چگونه کار می کند» در یک جمله جواب دارد: مرورگر می پرسد این نام کدام آدرس عددی است و یکی از سرورهای میانی جواب می دهد. بعد همین جواب در کش می ماند تا پرسش بعدی سریع تر باشد.
تفاوت DNS با IP را می شود این طور جمع کرد: IP نشانی واقعی سرور است و DNS نام خوانا برای انسان. اگر آی پی سرور عوض شود، تا وقتی رکورد DNS به روز شود، بازدیدکننده چیزی نمی فهمد.

از تایپ آدرس تا دیدن صفحه؛ چهار ایستگاه در مسیر
وقتی آدرس سایت را می زنید، این مسیر در چند صدم ثانیه طی می شود:
- حافظهٔ دستگاه شما: اگر همین چند دقیقه پیش سایت را باز کرده باشید، جواب در حافظهٔ موقت (کش) مرورگر و سیستم است و هیچ پرسشی بیرون نمی رود.
- سرور بازگشتی (Resolver): معمولا سرور اینترنت شما. اگر جواب را نداند، خودش پرسش را ادامه می دهد.
- سرورهای ریشه و سرور دامنهٔ سطح بالا: ریشه فقط می گوید برای پسوند
.comباید از کجا بپرسید. شماره گذاری نمی کنیم، چون هیچ صاحب سایتی قرار نیست با این سرورها کار کند. - سرور معتبر دامنهٔ شما (نیم سرور): همان جایی که رکوردها را ثبت کرده اید. جواب نهایی از اینجا می آید.
در دامنهٔ خودمان، رکورد NS دو سرور کلادفلر را نشان می دهد: andronicus.ns.cloudflare.com و zita.ns.cloudflare.com. همین دو خط جواب می دهند که تنظیمات دامنه از کجا خوانده شود.
کش (حافظهٔ موقت) بخش مهمی از داستان است: هر جواب یک «زمان اعتبار» دارد و تا وقتی آن زمان تمام نشده، همه همان جواب قدیمی را می بینند. همان چیزی که باعث می شود بعد از تغییر DNS، سایت برای شما باز شود ولی برای مشتری تان باز نشود.
انواع رکورد DNS؛ هر خط چه کاری می کند؟
رکورد یعنی یک خط تنظیمات روی نیم سرور. اگر صاحب سایت هستید، این شش رکورد را باید بشناسید:
| رکورد | کارش چیست | مثال از دامنهٔ ما |
|---|---|---|
| A | نام را به آی پی نسخهٔ چهارم وصل می کند؛ رکورد اصلی سایت | codeyas.com → 185.7.212.89 |
| AAAA | همان کار برای آی پی نسخهٔ شش | در دامنهٔ ما خالی است |
| CNAME | یک نام را به نام دیگر وصل می کند؛ بیشتر برای زیر دامنه ها | www روی همین دامنه تنظیم شده |
| NS | می گوید نیم سرور دامنه کدام هاست | دو سرور کلادفلر |
| MX | ایمیل دامنه را به صندوق پستی می رساند | باید پیش از هر مهاجرت چک شود |
| TXT | متن آزاد؛ برای تایید مالکیت و تنظیم ایمیل | رکورد ضد اسپم دامنه فعال است |
| SOA | شناسنامهٔ تنظیمات دامنه: شمارهٔ نسخه و زمان های تازه سازی | در دامنهٔ ما فعال است |
در اندازه گیری امروز دامنهٔ خودمان این رکوردها را دیدیم: رکورد A روی آی پی 185.7.212.89، رکورد NS روی دو سرور کلادفلر، و رکورد TXT با مقدار ضد اسپم. رکورد AAAA خالی بود؛ یعنی سایت فقط روی آی پی نسخهٔ چهار جواب می دهد. خالی بودن AAAA خطا نیست، ولی اگر ارائه دهندهٔ اینترنت مشتری کم کم به نسخهٔ شش مهاجرت کند، این بحث دوباره بالا می آید.
یک رکورد دیگر هم هست که کم دیده می شود: CAA. این رکورد می گوید کدام شرکت اجازه دارد برای دامنهٔ شما گواهی امنیتی صادر کند. تنظیم نکردنش سایت را قطع نمی کند، ولی جلوی یک نوع سوءاستفاده را می گیرد.
نیم سرور چیست و چه تفاوتی با رکورد دارد؟
این دو را زیاد با هم قاطی می کنند و همین قاطی شدن، علت بیشتر سایت های خرابی است که بعد از مهاجرت پیش می آید.
- نیم سرور (که به آن سرور DNS هم می گویند) آدرس جایی است که تنظیمات دامنه در آن نگه داشته می شود. با تغییر نیم سرور، تمام رکوردها از جای قبلی به جای جدید منتقل می شوند.
- رکورد یک خط تنظیمات مشخص است: کدام نام به کدام سرور یا کدام صندوق ایمیل برود.
پس دو راه برای انتقال سایت دارید: یا نیم سرور را عوض می کنید و کل تنظیمات با آن می رود، یا نیم سرور را دست نمی زنید و فقط رکورد A را از آی پی قدیم به آی پی جدید تغییر می دهید. راه اول ساده تر است و خطر جا ماندن رکوردها را دارد، راه دوم کنترل بیشتری می دهد و برای ایمیل سازمانی امن تر است.

TTL چیست و چرا تغییر DNS فوری دیده نمی شود؟
TTL عددی است که می گوید یک جواب چند ثانیه اعتبار دارد. هر چه این عدد بزرگ تر باشد، اینترنت سریع تر جواب می دهد و تغییر دادن کندتر دیده می شود. برای دیدن همین عدد، دستور dig codeyas.com A را در خط فرمان اجرا کنید:
$ dig codeyas.com A | grep -A1 "ANSWER SECTION"
;; ANSWER SECTION:
codeyas.com. 300 IN A 185.7.212.89
در اندازه گیری امروز، TTL رکورد A دامنهٔ ما ۳۰۰ ثانیه (پنج دقیقه) و TTL رکورد NS ۲۱۶۰۰ ثانیه (شش ساعت) بود. یعنی اگر امروز رکورد A را عوض کنیم، در بدترین حالت پنج دقیقه بعد همه جای دنیا جواب تازه را می بینند؛ ولی اگر نیم سرور را عوض کنیم، تا شش ساعت ممکن است کاربران جواب قدیمی بگیرند.
| چه چیزی را عوض می کنید | TTL فعلی دامنهٔ ما | چقدر باید صبر کنید |
|---|---|---|
| رکورد A یا CNAME سایت | ۳۰۰ ثانیه | پنج دقیقه تا نیم ساعت |
| رکورد ایمیل | بستگی به ارائه دهنده دارد | یک تا چند ساعت |
| نیم سرور | ۲۱۶۰۰ ثانیه | چند ساعت تا یک روز |
نکتهٔ عملی: اگر از قبل می دانید فردا شب هاست را عوض می کنید، امروز TTL را روی ۳۰۰ ثانیه بیاورید. این کار هزینه ای ندارد و شب مهاجرت، سایت شما زودتر بالا می آید.
رکوردها را کجا تنظیم می کنیم؟
دو جای متفاوت وجود دارد و پیدا کردن جای درست، نیمی از کار است:
- پنل دامنه (رجیسترار): جایی که نیم سرور را عوض می کنید. اگر دامنه را از یک شرکت خریده اید و هاست را از شرکت دیگری گرفته اید، اینجاست که می گویید «جواب دادن به پرسش های دامنه را برو از فلان نیم سرور بگیر».
- پنل هاست یا پنل نیم سرور: جایی که رکوردها را می نویسید؛ افزودن رکورد A، ساختن زیر دامنه، تنظیم رکورد ایمیل.
اگر نمی دانید رکوردها را در کدام پنل تنظیم کرده اید، اول نیم سرورها را ببینید. نام دامنه ای که در خروجی رکورد NS می آید، شرکت مسئول تنظیمات است.
هر رکورد در پنل با چهار قطعه نوشته می شود: نوع، نام، مقدار و زمان اعتبار. نمونهٔ ساده اش این جدول است:
| نوع | نام | مقدار نمونه | زمان اعتبار |
|---|---|---|---|
| A | @ (خود دامنه) | 185.7.212.89 | ۳۰۰ ثانیه |
| CNAME | www | @ (همان دامنه) | ۳۰۰ ثانیه |
| TXT | @ | متن ضد اسپم ایمیل | ۳۰۰ ثانیه |
| MX | @ | 10 mail.example.com | ۳۰۰ ثانیه |
با چهار دستور، وضعیت دی ان اس سایت را خودتان ببینید
لازم نیست منتظر پشتیبانی هاست باشید. این چهار دستور روی لینوکس و مک مستقیم کار می کنند و روی ویندوز به جای دستور dig از nslookup استفاده می کنید.
۱. سایت به کدام آی پی وصل است و نیم سرور دامنه کدام شرکت است؟ دو دستور dig +short codeyas.com و dig +short NS codeyas.com را در ترمینال اجرا کنید:
$ dig +short codeyas.com
185.7.212.89
$ dig +short NS codeyas.com
andronicus.ns.cloudflare.com.
zita.ns.cloudflare.com.
عدد اول را با آی پی هاست جدید مقایسه کنید. اگر همان است، یعنی تغییر DNS شما هنوز برای اینترنت دیده نشده. دو خط بعدی می گوید مسئول تنظیمات دامنه کدام شرکت است.
۲. رکورد ایمیل و رکورد تایید مالکیت چه می گویند؟ با دو دستور زیر بپرسید:
$ dig +short MX codeyas.com
$ dig +short TXT codeyas.com
"v=spf1 ip4:185.7.212.89 include:... ~all"
اگر خروجی رکورد ایمیل خالی باشد یعنی این دامنه هیچ صندوق پستی ندارد. این را پیش از هر مهاجرت چک کنید؛ چون رکورد ایمیل از رکوردهای سایت جداگانه است و آدم ها معمولا فراموش می کنند.
۳. جست و جو چقدر طول می کشد و چند وقته کش می شود؟ دستور curl زمان هر مرحله را جدا نشان می دهد:
$ curl -o /dev/null -s -w "dns=%{time_namelookup}\n" \
https://codeyas.com/
dns=0.008510
dns=0.011016
dns=0.010944
سه اندازه گیری امروز روی همین سرور: جست و جوی دی ان اس بین ۸ تا ۱۱ میلی ثانیه طول کشید. عدد سلامتی است؛ اگر این عدد روی سایت های ایرانی به چند صد میلی ثانیه برسد، مشکل از سرورهای DNS شما یا اینترنت شماست، نه از سایت.
یک دستور دیگر هم هست که کل زنجیره را از سرورهای ریشه تا نیم سرور نشان می دهد: dig +trace codeyas.com. خروجی این دستور به چند ده خط می رسد و برای صاحب سایت فقط خط آخرش ارزش دارد که همان جواب نهایی است.
چه زمانی DNS را تغییر دهیم و چه زمانی دست نزنیم؟
تغییر DNS خودش هدف نیست. این جدول تصمیم را از تجربهٔ مهاجرت ها نوشته ایم:
| موقعیت | اقدام درست | چرا |
|---|---|---|
| هاست عوض کرده اید و سایت باید با هاست جدید بالا بیاید | رکورد A را از آی پی قدیم به آی پی جدید تغییر دهید | سریع ترین راه با کم ترین ریسک |
| کل تنظیمات سایت را به شرکت دیگری سپرده اید | نیم سرور را عوض کنید | مدیریت متمرکز می شود، ولی همهٔ رکوردها را از قبل یادداشت کنید |
| می خواهید ایمیل سازمانی راه بیندازید | فقط رکورد ایمیل و رکورد تایید را اضافه کنید | دست زدن به نیم سرور در این مرحله بی جهت است |
| سایت کند است و کسی می گوید «DNS را عوض کن» | اول سرعت واقعی سایت را اندازه بگیرید | DNS فقط لحظهٔ اول را سریع می کند؛ کندی صفحه از جای دیگری است |
| می خواهید در ایران بدون تغییر سرور، سرعت را بهتر کنید | نیم سرور را به ارائه دهندهٔ داخلی منتقل کنید | معتبر است، ولی تغییر مکان تنظیمات است و باید با احتیاط انجام شود |
| سایت تازه راه افتاده و همه چیز کار می کند | دست نزنید | تغییر بی دلیل، تنها چیزی است که می تواند سایت سالم را خراب کند |

مهاجرت به هاست جدید: چک لیست تغییر DNS بدون قطع شدن سایت و ایمیل
ترتیب کارها مهم است. این ترتیب هشت مرحله ای، سایت را در کوتاه ترین حالت ممکن پایین نگه می دارد:
- پیش از هر چیز، از سایت و پایگاه داده پشتیبان کامل بگیرید.
- TTL رکوردهای سایت را یک روز قبل روی ۳۰۰ ثانیه بیاورید.
- همهٔ رکوردهای فعلی را از پنل فعلی کپی کنید: A، CNAME، MX، TXT و زیر دامنه ها.
- سایت را روی هاست جدید بالا بیاورید و با فایل میزبان روی رایانهٔ خودتان تست کنید تا مطمئن شوید درست کار می کند.
- رکوردهای جدید را در پنل جدید بسازید؛ هنوز نیم سرور را عوض نکنید.
- حالا نیم سرور را عوض کنید یا رکورد A را تغییر دهید.
- ایمیل را جداگانه تست کنید: یک نامه بفرستید و یک نامه دریافت کنید.
- دو روز بعد، اگر همه چیز سالم بود، نسخهٔ قدیمی را خاموش کنید.
چه چیزی جا می ماند؟ چهار چیز بیشتر از همه فراموش می شوند: رکورد ایمیل، رکورد تایید مالکیت، زیر دامنه ها (مثل یک پنل مدیریت یا فروشگاه قدیمی) و رکورد CAA. این چهار مورد در چک لیست بالا جای مشخص دارند و باید پر شوند.
پنج خطای رایج DNS و معنای واقعی شان
| خطا | معنای واقعی | کار درست |
|---|---|---|
| NXDOMAIN | این نام اصلا شناخته نشده است؛ یا رکورد نساخته اید یا دامنه منقضی شده | رکورد را در پنل چک کنید و تاریخ دامنه را ببینید |
| SERVFAIL | سرور جواب دادن را قبول کرد ولی نتوانست پاسخ معتبر بدهد | معمولا اشکال موقت سرورهای نیم سرور است؛ چند ساعت بعد دوباره چک کنید |
| سایت باز نمی شود ولی با موبایل باز می شود | کش دستگاه یا اینترنت شما جواب قدیمی را نگه داشته | کش را پاک کنید و از اینترنت دیگری تست بگیرید |
| ایمیل بعد از مهاجرت قطع شده | رکورد ایمیل منتقل نشده یا مقدارش اشتباه است | رکورد ایمیل را از نسخهٔ پشتیبان بازگردانید |
| سایت برای بعضی کاربران باز می شود و برای بعضی نه | مقدار TTL بالاست یا هنوز منتشر نشده | ساعت ها صبر کنید؛ این حالت گذراست |
امنیت دی ان اس؛ دو تنظیمی که کمتر کسی انجام می دهد
دو مورد امنیتی هست که در اندازه گیری امروز ما هیچ کدام از صفحه های رقیب به آن نپرداخته بودند:
- قفل امنیتی DNS (DNSSEC): امضای دیجیتال روی رکوردها که جلوی جعل جواب را می گیرد. در اندازه گیری امروز، دامنهٔ ما این قفل را فعال ندارد. برای سایت های فروشگاهی ارزش فعال کردن دارد، ولی پیش از فعال کردن باید بدانید کدام شرکت آن را پشتیبانی می کند.
- رکورد CAA: می گوید چه کسی حق دارد برای دامنهٔ شما گواهی امنیتی بگیرد.
یک نکتهٔ ساده امنیتی هم هست که هیچ تنظیمی نمی خواهد: هیچ وقت پنل دامنه را با یک رمز تکراری باز نگذرید. دزدیدن پنل دامنه یعنی از دست دادن کل سایت و ایمیل، نه فقط یک فایل.
پایش ماهانه با یک دستور
DNS تنظیم یک باره نیست. هر ماه یک بار این چهار مورد را ببینید: آی پی سایت، نیم سرورها، تاریخ انقضای گواهی امنیتی و تاریخ انقضای دامنه. این حلقهٔ for که با dig کار می کند، همه را یک جا جمع می کند:
$ for t in A NS TXT; do
echo "== $t"
dig +short codeyas.com $t
done
== A
185.7.212.89
== NS
andronicus.ns.cloudflare.com.
zita.ns.cloudflare.com.
== TXT
"v=spf1 ip4:185.7.212.89 include:... ~all"
اگر این خروجی تا ماه دیگر تغییر نکرده باشد، DNS سایت شما سالم است. هر تغییر ناخواسته در این خروجی، یعنی کسی تنظیمات را دست زده است.
و اگر ترجیح می دهید کل این کارها را کسی برایتان انجام دهد و پایش کند، طراحی سایت در شیراز شامل راه اندازی دامنه و ایمیل و پایش دوره ای است.
برای اینکه جای هر قطعه در این نقشه را ببینید، دو مقالهٔ مرتبط کمک می کنند: راهنمای کامل دامنه سایت دربارهٔ خرید و تمدید و مالکیت دامنه است، و هاست چیست و چه انواعی دارد دربارهٔ انتخاب هاست. اگر می خواهید بدانید سایت شما روی چه سروری نشسته و اولین سقفش کدام است، تفاوت سرور اشتراکی، مجازی و اختصاصی را ببینید.


ارسال نظر جدید