از نام دامنه تا آدرس IP
مرورگر پیش از اتصال به یک سایت باید بداند مقصد روی چه آدرس IP قرار دارد. ابتدا cache مرورگر و سیستمعامل بررسی میشود. اگر پاسخ موجود نباشد، درخواست به recursive resolver میرود. Resolver در صورت نداشتن cache، مسیر DNS root، سرور TLD و در نهایت authoritative nameserver دامنه را دنبال میکند و پاسخ را بازمیگرداند.
Resolver و Authoritative Server
Resolver از طرف کاربر جستوجو را انجام میدهد و پاسخها را cache میکند. Authoritative nameserver منبع رسمی رکوردهای یک دامنه است. این دو نقش را نباید یکی دانست: تغییر resolver گوشی، رکورد اصلی صاحب دامنه را تغییر نمیدهد؛ فقط واسطه پرسوجوی شما عوض میشود.
رکوردهای مهم DNS
- A و AAAA: نگاشت نام به IPv4 یا IPv6.
- CNAME: نام مستعار برای نام دیگری.
- MX: مقصد دریافت ایمیل دامنه.
- TXT: داده متنی برای تأیید مالکیت، SPF و کاربردهای دیگر.
- NS: nameserverهای مسئول یک zone.
Cache و TTL
Cache سرعت را افزایش و بار سرورها را کاهش میدهد. هر پاسخ TTL دارد که مدت نگهداری پیشنهادی آن را مشخص میکند. پس از تغییر DNS ممکن است بعضی کاربران تا پایان TTL پاسخ قدیمی ببینند؛ این پدیده معمولاً «انتشار DNS» نامیده میشود، هرچند در عمل بخش زیادی از آن انقضای cacheهای مختلف است.
DoH، DoT و DNSSEC
DNS سنتی معمولاً رمزگذاری نشده است. DNS over HTTPS و DNS over TLS مسیر میان دستگاه و resolver را رمزگذاری میکنند. این دو، درستبودن خود داده دامنه را تضمین نمیکنند. DNSSEC زنجیره امضای رمزنگاریشدهای برای اعتبار پاسخ فراهم میکند، ولی محتوای پرسوجو را مخفی نمیکند. این ابزارها مکمل یکدیگرند.
DNS در اتصال تونلی
اگر ترافیک از تونل عبور کند ولی DNS از resolver شبکه محلی پرسیده شود، ناهماهنگی یا DNS leak رخ میدهد. یک کلاینت درست باید DNS مناسب تونل، IPv4/IPv6 و رفتار Split Tunneling را هماهنگ کند. در عین حال همه اختلافهای DNS «نشت» نیستند؛ مرورگر ممکن است DoH مستقل خود را فعال کرده باشد.
تشخیص مشکل DNS
- یک IP شناختهشده را ping یا HTTPS کنید؛ اگر IP کار میکند ولی نام نه، DNS مشکوک است.
- با ابزارهایی مثل dig یا nslookup پاسخ و resolver را ببینید.
- A و AAAA را جداگانه بررسی کنید.
- cache سیستم و مرورگر را پس از تغییر مهم پاک کنید.
- پاسخ authoritative را با resolver عمومی مقایسه کنید.
