شلتر · DNS گیمینگ
مقالات بازی آنلاین

DNS چیست و چگونه کار می‌کند؟ راهنمای کامل به زبان ساده

دی ان اس چیست و چطور نام سایت را به آدرس IP تبدیل می‌کند؟ مسیر یک درخواست از مرورگر تا سرور معتبر، انواع رکورد DNS، نقش کش و TTL و خطاهای رایج، به زبان ساده.

Sina Movahed۱۳ دقیقه مطالعهبه‌روزرسانی ۱۴ آبان ۱۴۰۵
دی ان اس چیست
فهرست مطالب

پاسخ کوتاه

DNS یا سامانه نام دامنه، دفترچه تلفن اینترنت است. شما نام سایت را می‌نویسید، DNS آن را به آدرس عددی سروری که آن سایت روی آن قرار دارد ترجمه می‌کند و دستگاه شما با همان عدد به مقصد وصل می‌شود. همین مرحله است که سرویس‌هایی مثل دی ان اس اختصاصی شلتر روی آن اثر می‌گذارند. این ترجمه معمولاً در چند دهم ثانیه انجام می‌شود و بدون آن باید آدرس عددی هر سرویس را حفظ می‌کردید.

قبل از DNS، اینترنت چطور کار می‌کرد؟

در روزهای اول شبکه آرپانت، تعداد کامپیوترهای متصل آن‌قدر کم بود که یک فایل متنی ساده کفایت می‌کرد. این فایل که HOSTS.TXT نام داشت، فهرستی از نام‌ها و آدرس‌های عددی بود و روی یک مرکز نگهداری می‌شد. هر کسی که کامپیوتر جدیدی اضافه می‌کرد، باید خبر می‌داد تا نامش به آن فهرست اضافه شود و بقیه نسخه به‌روز را دانلود کنند.

با رشد شبکه این روش از کار افتاد. فایل بزرگ و بزرگ‌تر شد، هماهنگی سخت شد و تضاد اسمی پیش آمد. در سال ۱۹۸۳ ساختاری معرفی شد که مسئولیت را توزیع می‌کرد: به جای یک فهرست مرکزی، هر بخش از فضای نام مسئول خودش را داشت. این همان چیزی است که امروز DNS می‌نامیم.

جالب است که آن فایل هنوز هم زنده است. در ویندوز، لینوکس و مک فایلی به نام hosts وجود دارد که اگر نامی در آن تعریف شده باشد، سیستم‌عامل قبل از هر چیز همان را می‌خواند و اصلاً سراغ DNS نمی‌رود.

دی ان اس چیست

DNS دقیقاً چه مشکلی را حل می‌کند؟

کامپیوترها با نام کار نمی‌کنند، با عدد کار می‌کنند. هر سروری روی اینترنت یک نشانی عددی دارد که به آن IP می‌گویند؛ چیزی شبیه 142.250.185.14 در نسخه چهار یا 2a00:1450:4001:82f::200e در نسخه شش.

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

DNS این دو مشکل را با هم حل می‌کند: به شما اجازه می‌دهد نام بنویسید، و به صاحب سرویس اجازه می‌دهد بدون اینکه شما چیزی بفهمید، سرورهایش را جابه‌جا کند.

نام یک دامنه از چه بخش‌هایی ساخته شده است؟

هر نام دامنه از راست به چپ خوانده می‌شود، یعنی برعکس چیزی که به آن عادت داریم. به این نمونه نگاه کنید:

blog.example.com.

بخشنام فنیتوضیح
. (نقطه آخر)ریشه یا Rootبالاترین سطح. معمولاً نوشته نمی‌شود ولی همیشه وجود دارد.
comدامنه سطح بالا یا TLDمثل com، org، ir، net
exampleدامنه سطح دومهمان نامی که ثبت می‌کنید.
blogزیردامنهبخشی که خودتان می‌سازید و محدودیتی ندارد.

به این ساختار کامل، نام دامنه کاملاً مشخص یا FQDN می‌گویند. این سلسله‌مراتب اتفاقی نیست؛ دقیقاً همان مسیری است که در ادامه برای پیدا کردن جواب طی می‌شود.

سفر یک درخواست DNS، مرحله به مرحله

فرض کنید نام سایتی را در مرورگر تایپ می‌کنید و اینتر می‌زنید. پشت پرده این اتفاق‌ها می‌افتد:

  1. دستگاه شما اول حافظه خودش را نگاه می‌کند. اگر همین اواخر به آن نام وصل شده باشید، جواب در کش سیستم‌عامل یا مرورگر موجود است و کار همین‌جا تمام می‌شود.
  2. اگر جواب نبود، درخواست به حل‌کننده بازگشتی می‌رود. این همان سروری است که آدرسش در تنظیمات شبکه دستگاه یا مودم شما ثبت شده. وظیفه‌اش این است که به جای شما دنبال جواب بگردد.
  3. حٜ‌کننده از سرورهای ریشه شروع می‌کند. سرور ریشه جواب نهایی را نمی‌داند، ولی می‌گوید «برای دامنه‌های com برو سراغ این سرورها».
  4. نوبت سرورهای TLD است. سرور مسئول com هم جواب نهایی را ندارد، اما می‌داند نام‌سرورهای آن دامنه خاص کدام‌اند و آدرسشان را می‌دهد.
  5. سرور معتبر جواب واقعی را می‌دهد. این سروری است که صاحب دامنه اطلاعاتش را روی آن تنظیم کرده. اینجا بالاخره آدرس IP به دست می‌آید.
  6. جواب برمی‌گردد و ذخیره می‌شود. حل‌کننده پاسخ را به دستگاه شما می‌دهد و هم‌زمان مدتی نگه می‌دارد تا دفعه بعد این مسیر طولانی تکرار نشود.
  7. اتصال واقعی برقرار می‌شود. از اینجا به بعد دیگر DNS نقشی ندارد و دستگاه شما مستقیم با آن IP حرف می‌زند.

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

چهار بازیگر این ماجرا

نقشکارش چیستمثال
حل‌کننده محلی (Stub Resolver)بخش کوچکی از سیستم‌عامل که درخواست را می‌سازد و می‌فرستد.خود ویندوز، اندروید یا کنسول
حل‌کننده بازگشتی (Recursive Resolver)به جای شما کل مسیر را طی می‌کند و جواب را کش می‌کند.سرور اپراتور شما یا سرورهای عمومی
سرور ریشه (Root)نقطه شروع. فقط مسیر TLDها را نشان می‌دهد.سیزده نشانی ریشه در سطح جهان
سرور معتبر (Authoritative)جواب رسمی و نهایی را نگه می‌دارد.نام‌سرور ثبت‌شده روی دامنه

آن سیزده نشانی ریشه در واقع سیزده دستگاه نیستند؛ صدها سرور در سراسر دنیا همان نشانی‌ها را پاسخ می‌دهند و شما به نزدیک‌ترینشان می‌رسید. روشی که این کار را ممکن می‌کند در مقاله Anycast DNS چیست؟ توضیح داده شده است.

دستگاه شما از کجا می‌فهمد از کدام سرور بپرسد؟

وقتی به یک شبکه وصل می‌شوید، مودم یا روتر علاوه بر آدرس IP، آدرس یک یا دو سرور DNS هم به دستگاه شما می‌دهد. این کار با پروتکلی به نام DHCP انجام می‌شود و به‌صورت خودکار اتفاق می‌افتد. به همین دلیل است که بدون هیچ تنظیمی، اینترنت کار می‌کند.

این آدرس‌ها معمولاً متعلق به اپراتور شما هستند. اگر در تنظیمات شبکه دستگاه، آدرس دیگری وارد کنید، آن آدرس اولویت پیدا می‌کند و دستگاه دیگر از سرور اپراتور استفاده نمی‌کند.

یک نکته که کمتر گفته می‌شود: ترتیب اهمیت دارد. تنظیم روی خود دستگاه بر تنظیم مودم اولویت دارد، و تنظیم مودم بر چیزی که اپراتور می‌دهد. پس اگر جایی تنظیمی کرده‌اید و اثری ندیده‌اید، احتمالاً لایه بالاتری دارد آن را نادیده می‌گیرد.

کش و TTL چه نقشی دارند؟

اگر هر بار باید کل آن مسیر شش‌مرحله‌ای طی می‌شد، اینترنت به‌شدت کند بود. برای همین هر پاسخ DNS همراه با عددی به نام TTL می‌آید که یعنی «این جواب را چند ثانیه معتبر بدان».

تا وقتی TTL تمام نشده، جواب از حافظه خوانده می‌شود و درخواست جدیدی ساخته نمی‌شود. به همین دلیل است که وقتی صاحب یک دامنه سرورش را عوض می‌کند، تغییر بلافاصله برای همه اعمال نمی‌شود؛ باید صبر کرد تا کش‌ها منقضی شوند. به این فاصله، انتشار یا Propagation می‌گویند.

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

زون چیست و واگذاری یعنی چه؟

مجموعه رکوردهای یک دامنه روی سرور معتبر، در واحدی به نام زون نگهداری می‌شود. زون یعنی بخشی از فضای نام که یک نفر مسئولیتش را پذیرفته است.

حالا فرض کنید صاحب یک دامنه هستید و می‌خواهید مدیریت یک زیردامنه را به تیم دیگری بسپارید. با افزودن رکورد NS برای آن زیردامنه، عملاً می‌گویید «از اینجا به بعد من جواب نمی‌دهم، از آن سرورها بپرسید». به این کار واگذاری یا Delegation می‌گویند.

همین مکانیزم است که کل اینترنت را قابل مدیریت نگه داشته: سرور ریشه مسئولیت com را واگذار کرده، سرور com مسئولیت هر دامنه را واگذار کرده، و هر دامنه می‌تواند زیردامنه‌هایش را واگذار کند.

انواع رکورد DNS

روی سرور معتبر، اطلاعات دامنه به شکل رکوردهای جداگانه ذخیره می‌شود. هر رکورد یک نوع دارد و کار مشخصی انجام می‌دهد:

نوع رکوردکاربرد
Aنام را به آدرس IP نسخه چهار وصل می‌کند. رایج‌ترین رکورد.
AAAAهمان کار، اما برای آدرس‌های نسخه شش.
CNAMEیک نام را به نام دیگری ارجاع می‌دهد. برای زیردامنه‌ها کاربرد دارد.
MXمشخص می‌کند ایمیل‌های آن دامنه به کدام سرور تحویل داده شوند.
NSنام‌سرورهای معتبر دامنه را معرفی می‌کند.
TXTمتن آزاد. بیشتر برای تأیید مالکیت و تنظیمات امنیتی ایمیل.
SRVسرویس و پورت یک سرویس خاص را اعلام می‌کند.
PTRبرعکس رکورد A؛ از روی IP به نام می‌رسد.

وقتی می‌گویند «نیم سرور دامنه را عوض کن»، منظور تغییر همان رکوردهای NS است؛ یعنی تعیین اینکه کدام سرور اجازه دارد جواب رسمی این دامنه را بدهد.

دی ان اس چیست

DNS روی چه پورتی و با چه پروتکلی کار می‌کند؟

DNS به‌طور سنتی روی پورت ۵۳ کار می‌کند و معمولاً از پروتکل UDP استفاده می‌کند، چون سریع است و برای پیام‌های کوتاه مناسب. اگر پاسخ بزرگ‌تر از حد معمول باشد، به TCP سوییچ می‌کند.

مشکل این روش قدیمی این است که درخواست‌ها رمزنگاری نشده‌اند؛ یعنی هر کسی در مسیر می‌تواند ببیند شما دنبال چه نامی بوده‌اید. برای حل همین موضوع دو استاندارد جدیدتر ساخته شد که درخواست را رمزنگاری می‌کنند. تفاوتشان در مقایسه DoH و DoT بررسی شده است.

DNSSEC؛ از کجا بدانیم جواب دستکاری نشده؟

در طراحی اولیه DNS، هیچ راهی برای اطمینان از اینکه جواب دریافتی واقعاً از سرور معتبر آمده وجود نداشت. این یعنی کسی که در مسیر قرار دارد می‌تواند جواب جعلی بفرستد و شما را به سرور اشتباهی هدایت کند. به این حمله مسموم‌سازی کش می‌گویند.

DNSSEC برای بستن همین در ساخته شد. در این روش، صاحب دامنه رکوردهایش را امضای دیجیتال می‌کند و حل‌کننده می‌تواند آن امضا را بررسی کند. زنجیره اعتماد از ریشه شروع می‌شود و تا خود دامنه ادامه پیدا می‌کند.

دو نکته که معمولاً اشتباه گرفته می‌شوند: DNSSEC محتوای درخواست شما را مخفی نمی‌کند، فقط جلوی جعل شدن جواب را می‌گیرد. مخفی‌سازی کار روظ‌های رمزنگاری‌شده است. همچنین DNSSEC روی هر دامنه‌ای فعال نیست و به تنظیمات صاحب دامنه بستگی دارد.

تفاوت سرور بازگشتی و سرور معتبر

این دو اصطلاح زیاد با هم اشتباه گرفته می‌شوند، در حالی که کارشان کاملاً متفاوت است:

سرور بازگشتیسرور معتبر
برای چه کسی کار می‌کندکاربر نهاییصاحب دامنه
جواب را از کجا داردمی‌رود پیدا می‌کند و کش می‌کندخودش صاحب اطلاعات است
شما با کدام سروکار داریدهمین، در تنظیمات شبکهمعمولاً هیچ‌وقت مستقیم

آن آدرسی که در تنظیمات شبکه ویندوز یا گوشی وارد می‌کنید، همیشه آدرس یک سرور بازگشتی است.

کش منفی؛ چرا خطا هم ذخیره می‌شود؟

وقتی نامی وجود ندارد، آن پاسخ منفی هم برای مدتی ذخیره می‌شود. منطقش ساده است: اگر هزار کاربر دنبال نامی بگردند که وجود ندارد، بی‌معنی است که هزار بار کل مسیر طی شود.

این رفتار گاهی گیج‌کننده می‌شود. مثلاً دامنه‌ای تازه ثبت کرده‌اید یا زیردامنه جدیدی ساخته‌اید و قبل از آماده شدنش یک بار امتحان کرده‌اید. حالا با وجود اینکه همه‌چیز درست تنظیم شده، تا مدتی برای شما باز نمی‌شود، چون آن پاسخ منفی هنوز در حافظه است.

وقتی DNS کار نمی‌کند چه می‌بینید؟

خطاهای DNS معمولاً شکل مشخصی دارند:

  • NXDOMAIN — نامی که خواسته‌اید اصلاً وجود ندارد. معمولاً غلط املایی است.
  • SERVFAIL — سرور معتبر جواب نداد یا جوابش نامعتبر بود.
  • Timeout — درخواست فرستاده شد ولی پاسخی نیامد. نشانه قطعی مسیر یا فیلتر شدن پورت.
  • سایت باز می‌شود ولی محتوایش قدیمی است — کش منقضی‌نشده.

تشخیص اینکه کدام‌یک از این‌ها رخ داده و راه‌حل هر کدام، در راهنمای مشکلات سرور DNS آمده است.

DNS روی چه چیزهایی اثر دارد و روی چه چیزهایی ندارد؟

این بخش بیشترین سوءتفاهم را ایجاد می‌کند، پس کوتاه و صریح:

اثر دارد روی: مدت زمان پیدا کردن آدرس مقصد، اینکه دستگاه شما به کدام سرور از یک سرویس جهانی هدایت شود، و اینکه نامی اصلاً قابل حل باشد یا نه.

برای تفکیک دقیق‌تر مفاهیمی که اینجا کنار هم می‌آیند، تفاوت Ping و Lag و Jitter و Packet Loss را ببینید.

اثر ندارد روی: پهنای باند اتصال شما، سرعت دانلود فایل بعد از شروع، و کیفیت خود خط اینترنت.

یعنی DNS می‌تواند لحظه شروع اتصال را سریع‌تر یا کندتر کند، اما سرعت خط شما را تغییر نمی‌دهد. توضیح کامل‌تر همراه با اعداد واقعی در آیا تغییر DNS سرعت اینترنت را زیاد می‌کند؟ آمده است.

چطور ببینیم DNS پشت پرده چه جوابی می‌دهد؟

لازم نیست حرف کسی را باور کنید؛ می‌توانید خودتان ببینید. سه ابزار برای این کار وجود دارد:

ابزارکجانمونه دستور
nslookupویندوز، مک، لینوکسnslookup example.com
digلینوکس و مکdig example.com A
Resolve-DnsNameپاورشل ویندوزResolve-DnsName example.com

خروجی این دستورها معمولاً چند بخش دارد. مهم‌ترین‌هایشان اینهاست:

  • ANSWER SECTION — خود جواب، یعنی نام و نوع رکورد و مقدارش.
  • TTL — عددی کنار هر رکورد که می‌گوید چند ثانیه دیگر اعتبار دارد. اگر دوباره دستور را بزنید و این عدد کمتر شده باشد، یعنی جواب از کش آمده نه از سرور معتبر.
  • Query time — مدت زمانی که گرفتن جواب طول کشیده، بر حسب میلی‌ثانیه.
  • SERVER — آدرس سروری که جواب را داده. با این می‌فهمید واقعاً از کدام سرور دارید استفاده می‌کنید.

همین SERVER ساده‌ترین راه بررسی این است که تنظیمات شما واقعاً اعمال شده یا نه.

چند باور رایج که درست نیستند

  • «DNS سرعت اینترنت را بالا می‌برد.» — پهنای باند شما را تغییر نمی‌دهد. فقط می‌تواند مرحله پیدا کردن آدرس را کوتاه‌تر کند.
  • «همه ترافیک من از DNS رد می‌شود.» — نه. بعد از پیدا شدن آدرس، DNS از ماجرا خارج می‌شود.
  • «اگر DNS را عوض کنم، IP من عوض می‌شود.» — آدرس IP شما را اپراتورتان تعیین می‌کند و ربطی به این تنظیم ندارد.
  • «یک سرور برای همه بهترین است.» — بهترین سرور به موقعیت جغرافیایی و مسیر شبکه شما بستگی دارد و برای دو نفر در دو شهر می‌تواند متفاوت باشد.
  • «تنظیم DNS روی مودم کافی است.» — اگر روی خود دستگاه تنظیم دیگری وجود داشته باشد، آن اولویت دارد.

اصطلاح‌هایی که زیاد خواهید شنید

  • Resolver — همان سرور بازگشتی که به جای شما جست‌وجو می‌کند.
  • TTL — مدت اعتبار یک پاسخ در حافظه.
  • Propagation — فاصله بین تغییر رکورد و دیده شدن آن توسط همه.
  • Anycast — روشی برای اینکه یک نشانی از نزدیک‌ترین نقطه پاسخ داده شود.
  • DNS Leak — وقتی درخواست‌ها از مسیری غیر از آنچه تنظیم کرده‌اید عبور می‌کنند. روش تست و رفع نشتی
  • Benchmark — سنجش زمان پاسخ سرورهای مختلف برای مقایسه. آموزش سنجش

راهنمای تنظیم روی هر دستگاه

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

راهنماهای مخصوص بازی‌ها

برای بعضی بازی‌ها نکته‌های خاص خودشان وجود دارد. راهنمای هر کدام جداگانه در دسترس است:DNS FC26، DNS FC25، DNS FC24 و پابجی. اثر کلی انتخاب سرور بر تجربه بازی آنلاین هم در این مقاله بررسی شده است.

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

دی ان اس چیست، به ساده‌ترین زبان؟

سامانه‌ای که نام سایت‌ها را به آدرس عددی سرورها ترجمه می‌کند تا لازم نباشد آن اعداد را حفظ کنید.

DNS سرور چیست؟

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

نیم سرور با DNS فرق دارد؟

نیم سرور یا Name Server همان سرور معتبر دامنه است، یعنی بخشی از کل سامانه DNS، نه چیزی جدا از آن.

آیا DNS اطلاعات من را می‌بیند؟

سرور بازگشتی می‌بیند که شما دنبال چه نام‌هایی بوده‌اید، اما محتوای ارتباط شما از آن عبور نمی‌کند. در حالت رمزنگاری‌نشده، واسطه‌های مسیر هم می‌توانند همین نام‌ها را ببینند.

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

روی دستگاه خودتان بلافاصله، ولی ممکن است لازم باشد کش قدیمی را پاک کنید. برای تغییر رکوردهای یک دامنه، تا منقضی شدن TTL طول می‌کشد.

چند بار در روز از DNS استفاده می‌کنم؟

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

بیشتر دربارهٔ DNS

این مجموعه را به‌صورت پیوسته نوشته‌ایم؛ هر صفحه یک تکهٔ جداگانه از ماجراست.

جمع‌بندی

DNS لایه‌ای است که بین نام‌هایی که ما می‌فهمیم و عددهایی که شبکه می‌فهمد نشسته. کارش ساده به نظر می‌رسد اما سلسله‌مراتبی جهانی، سیستم کش چندلایه و مجموعه‌ای از رکوردها پشتش است.

سه نکته‌ای که ارزش به خاطر سپردن دارند: DNS فقط در لحظه پیدا کردن آدرس دخالت می‌کند و بعد از آن کنار می‌رود؛ کش و TTL دلیل اصلی‌اند که تغییرات فوری اعمال نمی‌شوند؛ و کیفیت سرور بازگشتی روی شروع اتصال اثر می‌گذارد، نه روی پهنای باند.

اگر می‌خواهید بدانید انتخاب سرور چه تفاوتی در عمل ایجاد می‌کند، مقایسه سرورهای عمومی و دلایل بالا رفتن پینگ ادامه منطقی این مقاله‌اند. فهرست خدمات شلتر و تعرفه‌ها و تست رایگان هم جداگانه در دسترس است.

اشتراک‌گذاری: تلگرام
KEEP READING

بیشتر بخوان