عیب یابی DNS با dig و nslookup

عیب یابی dns

سیستم نام دامنه (DNS) یکی از حیاتی‌ترین بخش‌های اینترنت است که وظیفه ترجمه نام‌های دامنه مانند example.com به آدرس‌های IP را بر عهده دارد. هر زمان که وب‌سایتی باز نمی‌شود یا خطاهایی مثل “Server not found” دریافت می‌کنید، معمولاً مشکل از DNS است. در این مقاله اسپاد سرور، عیب یابی DNS با dig و nslookup را بررسی کرده تا منبع مشکل را پیدا کنیم و آن را برطرف کنیم.

مقدمه‌ای بر عیب یابی DNS

قبل از اینکه سراغ موضوع مقاله برویم، بهتر است بدانیم عیب یابی دی ان اس دقیقاً به چه معناست.
عیب یابی دی ان اس یعنی بررسی مراحل مختلفی که درخواست یک دامنه طی می‌کند تا به IP مقصد برسد. اگر در هر مرحله‌ای خطایی رخ دهد — مثلاً پاسخ از سرورهای ریشه دریافت نشود یا رکورد A اشتباه باشد — سایت شما در دسترس نخواهد بود.

در فرآیند عیب یابی دی ان اس ما بررسی می‌کنیم که:

  • آیا رکوردهای دامنه به‌درستی پیکربندی شده‌اند؟

  • آیا سرورهای DNS پاسخ می‌دهند؟

  • آیا تاخیر یا اشکال در کش DNS وجود دارد؟

  • آیا propagation دامنه به‌درستی انجام شده است؟

در این آموزش، یاد می‌گیرید چگونه با dig و nslookup به تمام این سؤالات پاسخ دهید.

معرفی ابزارهای dig و nslookup برای عیب یابی DNS

dig در عیب یابی DNS چیست؟

ابزار dig (Domain Information Groper) یکی از پرکاربردترین ابزارهای خط فرمان لینوکس و macOS برای عیب یابی دی ان اس است. این ابزار نتایج دقیق، سریع و قابل فهمی از پاسخ DNS ارائه می‌دهد و می‌تواند رکوردهای مختلف را بررسی کند.

nslookup چیست

nslookup یک ابزار خط فرمان برای جستجو و دریافت اطلاعات مربوط به سرورهای DNS است. این ابزار به شما امکان می دهد نام دامنه ها را به آدرس های IP و بالعکس تبدیل کنید و یا اطلاعاتی درباره رکوردهای DNS (مثل A، MX، CNAME و غیره) دریافت کنید.

استفاده های معمول nslookup عبارتند از:

  1. جستجو برای تبدیل نام دامنه به آدرس IP (A record):
  2. nslookup example.com

این دستور IP مربوط به دامنه example.com را نمایش می دهد.

  1. جستجو برای رکوردهای DNS خاص (مثلا MX):
  2. nslookup -type=MX example.com

این دستور رکوردهای MX (مربوط به ایمیل) دامنه example.com را جستجو می کند.

  1. استفاده از سرور DNS خاص برای جستجو:
  2. nslookup example.com 8.8.8.8

این دستور به جای استفاده از سرور DNS پیش فرض سیستم، از سرور DNS گوگل (با آدرس ۸.۸.۸.۸) برای جستجوی نام دامنه استفاده می کند.

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

nslookup در عیب یابی DNS چیست؟

ابزار nslookup در تمام سیستم‌عامل‌ها (از ویندوز تا لینوکس) وجود دارد و یکی از ساده‌ترین ابزارها برای تست رکوردهای DNS است. اگرچه نسبت به dig امکانات کمتری دارد، اما برای کاربران تازه‌کار گزینه‌ای عالی محسوب می‌شود.

تفاوت dig و nslookup

در فرآیند عیب یابی دی ان اس، هر دو ابزار مفید هستند، اما dig خروجی دقیق‌تری دارد.
در جدول زیر تفاوت‌های اصلی این دو ابزار آورده شده است:

ویژگی dig nslookup
دقت خروجی بسیار بالا متوسط
امکان بررسی رکورد خاص دارد دارد
پشتیبانی از IPv6 دارد دارد
جزئیات Query Time و TTL دارد محدود
مناسب برای مدیران سیستم حرفه‌ای کاربران عمومی

مقاله پیشنهادی: مشکل DNS سایت | مشکلات رایج در پیکربندی DNS و راهکارهای آن

نصب ابزارهای dig و nslookup

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

Ubuntu یا Debian:

sudo apt update
sudo apt install dnsutils -y

CentOS یا AlmaLinux:

sudo yum install bind-utils -y

macOS:

brew install bind

اکنون آماده هستید تا عیب یابی DNS را با این دو ابزار آغاز کنید.

اگر نیاز به راهنمایی برای خرید هاست اقتصادی و دامنه و سرور مجازی  دارید، متخصصان با تجربه اسپاد سرور آماده خدمت به شما هستند. برای تماس با ما، روی “تماس با اسپاد سرور” کلیک کنید.

عیب یابی dns

بررسی رکورد A با dig

رکورد A، آدرس IPv4 مربوط به دامنه را نشان می‌دهد. برای بررسی عیب یابی dns با رکورد A از دستور زیر استفاده کنید:

dig example.com A

خروجی شامل اطلاعات زیر است:

  • QUESTION SECTION: دامنه‌ای که پرسیده‌اید

  • ANSWER SECTION: پاسخ سرور شامل IP

  • AUTHORITY SECTION: سرورهای معتبر

  • Query time: زمان پاسخ‌دهی

این اطلاعات در عیب یابی DNS به شما نشان می‌دهد که آیا IP درست تنظیم شده یا خیر.

بررسی رکورد MX (میل سرور) با dig

در مواقعی که ایمیل‌ها ارسال یا دریافت نمی‌شوند، باید رکورد MX را بررسی کنید:

dig example.com MX

خروجی معمولاً شامل اولویت (Priority) و دامنه سرور ایمیل است. اگر خروجی خالی بود یا اشتباه، یعنی پیکربندی ایمیل اشتباه است.

عیب یابی DNS از طریق رکورد NS (Name Server)

اگر دامنه شما به سرورهای اشتباهی متصل شده باشد، در پاسخ رکورد NS مشخص می‌شود. برای بررسی:

dig example.com NS

در خروجی باید نام سرورهای اصلی (مثلاً ns1.yourhost.com, ns2.yourhost.com) را ببینید.
اگر با نام سرورهای رجیسترشده در پنل دامنه متفاوت است، یکی از مراحل propagation ناقص انجام شده است.

بررسی رکورد AAAA (IPv6)

اگر سایت شما از IPv6 استفاده می‌کند و کاربران با این نسخه خطا دارند، دستور زیر مفید است:

dig example.com AAAA

در فرآیند عیب یابی DNS این دستور کمک می‌کند مطمئن شوید IPv6 به درستی تنظیم شده است.

مقاله پیشنهادی: پیکربندی BIND برای DNS over IPv6 | افزودن listen-on-v6 و رکورد AAAA

استفاده از dig برای تست کامل دامنه (ANY Query)

برای بررسی همه رکوردها با یک دستور:

dig example.com ANY

در خروجی رکوردهای A، MX، TXT، NS، و CNAME نمایش داده می‌شوند. این روش در عیب یابی DNS مفید است زیرا تمام اطلاعات در یک نگاه قابل مشاهده است.

تحلیل Query Time و TTL در dig

در بخش انتهایی خروجی dig، دو پارامتر مهم وجود دارد:

  • Query time: زمان پاسخ‌دهی (هرچه کمتر بهتر)

  • TTL: مدت زمان ذخیره‌سازی کش DNS

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

عیب یابی DNS با nslookup در ویندوز

در سیستم‌های ویندوز، می‌توانید از nslookup استفاده کنید. برای شروع، Command Prompt را باز کنید و بنویسید:

nslookup example.com

در خروجی، آدرس IP و سرور پاسخ‌دهنده مشخص می‌شود.

بررسی رکورد خاص:

nslookup -type=MX example.com
nslookup -type=NS example.com

با این دستورات، می‌توانید مشکلات مربوط به رکوردهای خاص را در فرآیند عیب یابی DNS بررسی کنید.

تغییر سرور DNS برای تست عیب یابی

گاهی لازم است بدانید مشکل از سرور DNS شماست یا از پیکربندی دامنه. برای تست از سرور خاص، مثلاً Google DNS (8.8.8.8) استفاده کنید:

dig @8.8.8.8 example.com

یا با nslookup:

nslookup example.com 8.8.8.8

اگر پاسخ صحیح دریافت شد، یعنی مشکل از سرور DNS محلی شماست.

بررسی Propagation در عیب یابی DNS

پس از تغییر رکوردهای DNS، ممکن است تا ۲۴ ساعت طول بکشد تا تغییرات در سراسر اینترنت منتشر شود. در این مدت اگر با dig یا nslookup رکوردهای قدیمی را می‌بینید، یعنی هنوز Propagation کامل نشده است.

برای بررسی propagation می‌توانید از چند سرور مختلف استفاده کنید:

dig @1.1.1.1 example.com
dig @9.9.9.9 example.com

اگر پاسخ‌ها متفاوت هستند، نشان می‌دهد در فرایند انتشار رکوردها تأخیر وجود دارد.

بررسی رکورد CNAME در عیب یابی DNS

رکورد CNAME دامنه‌ای را به دامنه دیگر اشاره می‌دهد. اشتباه در تنظیم CNAME می‌تواند باعث خطاهای ۴۰۴ شود.

dig example.com CNAME

در خروجی باید دامنه مقصد درست باشد، در غیر این صورت باید رکورد اصلاح شود.

بررسی TXT و SPF در عیب یابی ایمیل

برای رفع مشکلات ایمیل، باید رکوردهای TXT و SPF بررسی شوند:

dig example.com TXT

در بخش عیب یابی DNS مربوط به ایمیل، بررسی SPF و DKIM اهمیت زیادی دارد تا از اسپم شدن ایمیل جلوگیری شود.

تحلیل خطاهای رایج در عیب یابی DNS

در حین کار با dig و nslookup ممکن است با پیام‌های خطا مواجه شوید:

خطا توضیح راه‌حل
SERVFAIL سرور DNS پاسخ نمی‌دهد بررسی تنظیمات NS
NXDOMAIN دامنه وجود ندارد بررسی نام دامنه و ثبت آن
REFUSED سرور اجازه پاسخ نمی‌دهد بررسی ACL در سرور DNS
Timeout سرور در دسترس نیست بررسی فایروال و اتصال شبکه

این خطاها در ۹۰٪ موارد مربوط به اشتباهات پیکربندی DNS هستند.

مقاله پیشنهادی: DNS Zone در سرور هاستینگ | جلوگیری از خطای SERVFAIL و NXDOMAIN

ترکیب dig با ابزارهای دیگر در عیب یابی DNS

برای عیب یابی پیشرفته‌تر می‌توانید dig را با ابزارهایی مثل traceroute و ping ترکیب کنید:

ping example.com
traceroute example.com

این ابزارها کمک می‌کنند بفهمید آیا مشکل در لایه DNS است یا در مسیر شبکه (Routing).

بررسی کش DNS سیستم

در برخی موارد مشکل از کش محلی است. برای پاک کردن کش:

ویندوز:

ipconfig /flushdns

macOS:

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

لینوکس:

sudo systemd-resolve --flush-caches

سپس مجدداً با dig و nslookup تست کنید تا از رفع مشکل مطمئن شوید.

نتیجه گیری

در این مقاله یاد گرفتید چگونه با دو ابزار قدرتمند dig و nslookup فرآیند عیب یابی DNS را به‌صورت کامل انجام دهید.
از بررسی رکوردهای A و MX تا تحلیل TTL، خطاهای NXDOMAIN و SERVFAIL، تمام جنبه‌های کلیدی عیب یابی را پوشش دادیم.

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

علیرضا جمشاد

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *