دستور nslookup در لینوکس چیست؟ – به زبان ساده + کاربرد

۴۶۴ بازدید
آخرین به‌روزرسانی: ۳۰ مهر ۱۴۰۲
زمان مطالعه: ۱۵ دقیقه
دستور nslookup در لینوکس چیست؟ – به زبان ساده + کاربرد

دستور nslookup یکی از ابزارهای پرکاربرد در زمینه عیب‌یابی و آزمون شبکه است. نام این ابزار عیب‌یابی و مدیریت شبکه در واقع کوتاه شده عبارت Name Server Lookup   است و برای انجام امور مربوط به «سیستم نام دامنه» (Domain Name System | DNS) مورد استفاده قرار می‌گیرد. به کمک دستور nslookup می‌توان آدرس IP و رکوردهای DNS مرتبط با یک نام دامنه را بررسی کرد. دستور nslookup در لینوکس و سایر سیستم عامل‌های پرکاربرد مانند ویندوز، مک و freeBSD به صورت پیش‌فرض در دسترس است و برای استفاده از آن کافیست در محیط خط فرمان ویندوز یا در ترمینال لینوکس نام این دستور را وارد کنیم. به این ترتیب بدون نیاز به نصب نرم‌افزار خاصی یا اعمال هرگونه تنظیمات اضافی امکاناتی که ابزار nslookup فراهم می‌کند در اختیارمان قرار خواهد گرفت. همچنین برای جستجوی معکوس DNS یا Reverse DNS Lookup نیز می‌توانیم از ابزار nslookup استفاده کنیم.

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

کاربردهای دستور nslookup

به کمک دستور nslookup می‌توانیم رکوردهای DNS مرتبط با یک نام دامنه را بررسی کرده و از همین طریق آدرس IP مربوط به دامنه مورد نظر را نیز به دست آوریم. این اطلاعات در عیب‌یابی تنظیمات شبکه یا آزمودن سرور می‌توانند بسیار پر اهمیت باشند. به طور مثال اگر وب‌سایت شما از دسترس خارج شود یکی از موضوعاتی که باید از آن اطمینان حاصل کنید این است که آیا سرورهای DNS در پاسخ به جستجویی که با نام دامنه وب‌سایت شما انجام شده است آدرس IP صحیح را بر می‌گردانند یا خیر؟ علاوه بر این می‌توانید دسترسی به وب‌سایت خود از طریق سرورهای DNS متعلق به سرویس‌دهنده‌های اینترنت مختلف را به کمک دستور nslookup بررسی کنید و مطمئن شوید همه مخاطبانتان آن‌طور که انتظار دارید به وب‌سایت شما دسترسی دارند.

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

ساختار دستور nslookup

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

nslookup [-option] [name | -] [server]

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

  1. در صورتی که هیچ کدام از سه آرگومان مقداری نداشته باشند. یعنی در ترمینال لینوکس یا خط فرمان ویندوز صرفا عبارت nslookup  را تایپ کرده و کلید Enter   را فشار دهید.
  2. در صورتی که به جای آرگومان اول تنها یک کاراکتر -    وارد شود و آرگومان دوم آدرس IP یا دامنه‌ی مربوط به یک سرور DNS باشد. مثلا به صورت زیر:

nslookup - 8.8.8.8

در مثال بالا ابزار nslookup در حالت تعاملی اجرا خواهد شد و از آدرس IP 8.8.8.8    که متعلق به سرور DNS عمومی گوگل است به عنوان سرور DNS استفاده خواهد کرد. در صورتی که یک سرور DNS را به صورت مشخص برای استفاده توسط ابزار nslookup معرفی نکنیم این ابزار از سرور DNS پیش‌فرضی که در تنظیمات محلی شبکه مشخص شده است استفاده خواهد کرد. در حالت تعاملی برای خروج از ابزار nslookup باید از دستور exit   استفاده کنید. در ادامه به توضیح آرگومان‌های دستور nslookup می‌پردازیم.

آرگومان name در دستور nslookup

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

در تصویر زیر مثالی از استفاده از دستور nslookup در حالت غیرتعاملی را می‌بینید که دامنه google.com   به عنوان آرگومان name مورد استفاده قرار گرفته است و از وارد کردن نشانه‌ در قسمت option صرف نظر شده است:

استفاده از دستور nslookup برای به دست آوردن آدرس IP

در مثال فوق می‌بینیم که آدرس IP مرتبط با نام دامنه google.com   در خروجی نمایش داده شده است و برای به دست آوردن این اطلاعات دستور nslookup از سرور محلی استفاده کرده است.

برای این‌که همین اطلاعات را در حالت تعاملی ابزار nslookup به دست آورید لازم است ابتدا در محیط ترمینال دستور nslookup را وارد کرده و سپس در ابزار nslookup نام دامنه را وارد کرده و کلید Enter   را بفشارید. در تصویر زیر مثالی از حالت تعاملی ابزار nslookup را می‌بینید:

استفاده از دستور nslookup در حالت تعاملی

آرگومان Server در دستور nslookup

این آرگومان سرور DNS مورد استفاده توسط ابزار nslookup برای جستجوی اطلاعات دامنه‌ها را مشخص می‌کند. برای مقداردهی به این آرگومان در حالت غیرتعاملی دستور nslookup کافیست پس از وارد کردن نام دامنه در قسمت name آدرس IP یا نام دامنه‌ی سرور DNS را وارد کنید. در مثال زیر دستور nslookup مانند مثال قبل برای یافتن آدرس IP مرتبط با دامنه google.com   مورد استفاده قرار گرفته است با این تفاوت که در این مثال آدرس IP 8.8.8.8   به عنوان سرور DNS استفاده شده است. به تفاوت دستور و پاسخ نمایش داده شده در این مثال و مثال قبل دقت کنید:

مثالی از کاربرد دستور nslookup در حالت غیر تعاملی با آرگومان server

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

nslookup – 8.8.8.8

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

> server name

در این حالت کافیست به جای عبارت name نام دامنه یا آدرس IP یک سرور DNS را وارد کنیم تا تمام درخواست‌هایی که در ادامه ارسال می‌کنیم برای سرور مشخص شده ارسال شوند. برای بررسی سرور مورد استفاده در حالت تعاملی باید عبارت server   را تایپ کرده و کلید Enter   را فشار دهید. در مثال زیر پس از ورود به حالت تعاملی دستور nslookup آدرس سرور DNS مورد استفاده را به 8.8.8.8   تغییر داده‌ایم و سپس اطلاعات مربوط به دامنه google.com   را جستجو کرده‌ایم. در نهایت با استفاده از دستور server   آدرس سرور مورد استفاده را بررسی کرده‌ایم:

تغییر سرور DNS در حالت تعاملی دستور nslookup

آرگومان option در دستور nslookup

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

مشخص کردن نوع رکورد DNS در دستور nslookup

در مثال زیر می‌بینید که رکوردهای NS مربوط به دامنه google.com   را در حالت غیرتعاملی بررسی کرده‌ایم.

بررسی رکوردهای NS به کمک دستور nslookup در حالت غیر تعاملی

همان‌طور که می‌بینید به کمک نشانه -type   می‌توانیم نوع رکورد DNS مورد جستجو را مشخص کنیم. در حالت پیش‌فرض در صورتی که به طور مشخص نوع رکورد را تعیین نکنیم دستور nslookup رکوردهای نوع A   و AAAA   را بررسی می‌کند و بر اساس آن‌ها آدرس IP مرتبط با دامنه را برمی‌گرداند. به کمک نشانه  -type   می‌توانیم نوع رکورد را از بین انواع رکوردهای DNS مشخص کنیم. این انواع عبارتند از: A  , AAAA  , MX  , PTR  , SOA   و TXT  . در مورد انواع رکوردهای DNS و کاربرد آن‌ها در ادامه به طور مختصر توضیح خواهیم داد.

در حالت تعاملی ابزار nslookup برای مشخص کردن نوع رکورد DNS از دستور زیر استفاده می‌کنیم:

> set type=value

پس از مشخص کردن نوع رکورد در حالت تعاملی ابزار nslookup، تمامی درخواست‌های جستجو نوع رکورد مشخص شده را بر می‌گردانند. در مثال زیر خواهید دید که پس از ورود به حالت تعاملی ابزار nslookup، ابتدا مقدار نوع رکورد مورد جستجو را به NS تغییر داده‌ایم و پس از آن رکورد‌های نوع NS را برای دامنه‌های google.com   و faradars.com   مورد بررسی قرار داده‌ایم. در نهایت مقدار نوع رکورد مورد جستجو را به A تغییر داده و رکورد‌های نوع A را برای دامنه‌ google.com   بررسی کرده‌ایم.

جستجوهای متعدد برای انواع رکوردهای DNS توسط ابزار nslookup در حالت تعاملی

همچنین به این موضوع درباره مثال قبل دقت کنید که استفاده از حالت تعاملی برای انجام پرس‌وجو‌های متعدد در مقایسه با حالت تعاملی چقدر می‌تواند ساده‌تر باشد. به عنوان یک تمرین می‌توانید جستجوی انجام شده در مثال بالا را در حالت غیرتعاملی طی ۳ مرتبه استفاده از دستور nslookup انجام دهید.

چاپ اطلاعات مربوط به پرس‌وجو

در صورتی که از نشانه -debug   در حالت غیرتعاملی دستور nslookup استفاده کنید اطلاعات بیشتری در مورد پرس‌وجوی انجام شده را در خروجی خواهید دید. در حالت تعاملی نیز با استفاده از دستور set debug   می‌توانید نمایش این اطلاعات را فعال کنید. از دستور set nodebug   برای غیر فعال کردن نمایش اطلاعات دیباگ استفاده کنید. در تصویر زیر مثالی از پرس‌وچوی اطلاعات مربوط به رکوردهای MX   دامنه faradars.com   را می‌بینید. در این جستجو از نشانه -debug   برای نمایش اطلاعات مربوط به پرس‌وجو استفاده شده است. به تفاوت میان پاسخ این پرس‌وجو با مثال‌های قبل دقت کنید:

نمایش اطلاعات دیباگ مربوط به جستجوی انجام شده توسط دستور nslookup

مشخص کردن زمان انتظار

اگر از نشانه -timeout=number   در قسمت option در حالت غیرتعاملی دستور nslookup استفاده کنید می‌توانید محدودیتی برای زمان انتظار پیش از نمایش پیام خطا تعریف کنید. برای استفاده از این نشانه باید در قسمت number یک عدد صحیح مشخص کنیم. به طور مثال اگر از نشانه -timeout=2   استفاده کنیم، ابزار nslookup پس از ارسال درخواست به مدت ۲ ثانیه برای دریافت پاسخ صبر می‌کند و پس از پایان این زمان چنانچه پاسخی دریافت نکرده بود پیام خطا نمایش می‌دهد. برای مشخص کردن زمان انتظار در حالت تعاملی ابزار nslookup از دستور زیر استفاده می‌کنیم:

set timeout=2

آشنایی با DNS و کاربرد آن

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

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

نوع رکوردکارکرد
A نگاشت یک نام دامنه روی یک آدرس IP نسخه ۴
AAAA نگاشت یک نام دامنه روی یک آدرس IP نسخه ۶
CNAME مرتبط کردن یک نام دامنه فرعی با نام دامنه اصلی (مانند www.example.com   برای example.com  )
MX مشخص کردن سرور تبادل ایمیل برای یک دامنه
NS مشخص کردن سرور نام معتبر برای یک دامنه
PTR نگاشت یک آدرس IP به یک نام دامنه (برای استفاده در جستجوی معکوس DNS)
SOA مشخص کردن اطلاعات معتبر درباره منطقه DNS شامل سرور نام اصلی، ایمیل مدیر دامنه، شماره سریال دامنه و اطلاعاتی درباره زمان به روز رسانی
SRV مشخص کردن موقعیت سرورها برای سرویس‌های از پیش تعیین شده
TXT ذخیره اطلاعات متنی درباره دامنه (مورد استفاده برای تایید مالکیت دامنه)

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

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

پس از این‌که مرورگر شما از یک سرور DNS اطلاعات مربوط به یک نام دامنه را درخواست می‌کند، سرور DNS یک درخواست برای سرور ریشه یا « root  » ارسال می‌کند تا سرور نام معتبر مربوط به دامنه رده بالا ( TLD Domain   مانند .com   ، .net   و …) مربوط به دامنه مورد نظر را پیدا کند. پس از دریافت پاسخ از سرور ریشه، سرور DNS یک درخواست به سرور TLD ارسال می‌کند و آدرس سرور نام معتبر مربوط به دامنه مورد نظر را از سرور TLD جویا می‌شود. پس از دریافت آدرس سرور نام معتبری که اطلاعات مربوط به دامنه مورد نظر ما را ذخیره کرده است، سرور DNS درخواستی برای سرور معتبر ارسال می‌کند و رکوردهای DNS را از آن دریافت می‌کند و این اطلاعات را برای شما ارسال می‌کند.

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

مثال‌هایی از کاربرد دستور nslookup

در ادامه مثال‌هایی را خواهیم دید از به کار بردن دستور nslookup جهت تشخیص ایرادهای مربوط به DNS یا بررسی رکوردهای DNS.

بررسی دسترسی‌پذیری وب‌سایت

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

nslookup yourdomain.tld

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

nslookup yourdomain.tld dns.server.ip.address

در جدول زیر آدرس تعدادی از سرورهای DNS عمومی پرکاربرد نوشته شده است. می‌توانید آدرس این سرورها را در دستور بالا به جای dns.server.ip.address وارد کنید.

نام سرویس‌دهندهآدرس IP
گوگل8.8.8.8
Cloudflare1.1.1.1
Quad99.9.9.9
OpenDNS208.67.222.222
AdGuard94.140.15.15

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

بررسی دسترسی‌پذیری سرور DNS

برای اطمینان از در دسترس بودن یک سرور DNS می‌توانید از ابزار nslookup برای ارسال درخواست به آن سرور استفاده کنید. در ادامه مثالی از خروجی دستور nslookup در صورت در دسترس نبودن سرور DNS را می‌بینیم. در صورتی که سرور DNS در دسترس باشد باید مانند مثال‌های قبل پاسخ معتبری برای درخواستمان دریافت کنیم.

خروجی دستور nslookup در صورت خارج از دسترس بودن سرور DNS

بررسی سرور نام دامنه

یکی از اشکالات رایج مربوط به DNS تنظیم اشتباه رکوردهای NS مربوط به دامنه است. اگر سایت‌تان قابل دسترسی نیست یکی از کارهایی که لازم است انجام دهید این است که از درستی تنظیمات DNS و رکورد‌های NS مربوط به دامنه‌ خود اطمینان حاصل کنید. برای بررسی رکوردهای NS از دستور nslookup به صورت زیر استفاده می‌کنیم:

nslookup -type=ns youdomain.tld

در ادامه مثالی از بررسی رکوردهای NS مربوط به دامنه faradars.com   را در حالت تعاملی ابزار nslookup می‌بینیم:
بررسی رکوردهای NS در حالت تعاملی دستور nslookup

برای این‌که وب‌سایت شما قابل دسترسی باشد باید رکوردهای NS به درستی به سرور نام شما اشاره کنند.

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

اگر سرویس ایمیل شما کار نمی‌کند یا ایمیل‌هایی که برای شما یا توسط شما ارسال می‌شوند به فرستنده بازگردانده می‌شوند یکی از ایرادات محتمل تنظیمات نادرست DNS است. برای این‌که مطمئن شوید تنظیمات DNS دامنه شما به درستی مقداردهی شده‌اند باید از دستور nslookup استفاده کنید.

بررسی رکوردهای mx با استفاده از دستور nslookup

رکوردهای MX، سرور ایمیلی که مسئول دریافت ایمیل‌های ارسال شده به یک نام دامنه است را مشخص می‌کنند. اگر این رکوردها مشخص نشده باشند یا به سرور معتبری اشاره نکنند ایمیل‌های ارسال شده به آن نام دامنه توسط گیرنده دریافت نمی‌شوند. برای بررسی رکوردهای MX از دستور nslookup در حالت غیرتعاملی به صورت زیر استفاده می‌کنیم:

nslookup -type=mx yourdomain.tld

در مثال زیر رکوردهای MX دامنه faradars.com   را در حالت تعاملی بررسی کرده‌ایم:
بررسی رکوردهای mx در حالت تعاملی دستور nslookup

موضوع دیگری که باید از آن اطمینان حاصل کرد این است که آدرسی که در رکورد MX ثبت شده است به یک سرور ایمیل مرتبط باشد. برای این کار باید رکوردهای A را بررسی کنیم. در مثال زیر می‌بینید که پس از به دست آوردن آدرس mail.faradars.com   که در رکورد MX ثبت شده بود، رکوردهای ‌A این دامنه را بررسی کرده‌ایم.

مراحل عیب‌یابی سرویس ایمیل به کمک دستور nslookup

جستجوی معکوس رکوردهای DNS با دستور nslookup

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

برای جستجوی معکوس رکوردهای DNS در حالت غیرتعاملی دستور nslookup کافیست از این دستور به صورت زیر استفاده کنید:

nslookup ip.address

این دستور درواقع شکل خلاصه شده برای بررسی رکوردهای نوع PTR است. شکل دیگر استفاده از دستور nslookup برای جستجوی معکوس در حالت غیرتعاملی نیازمند این است که چهار قسمت آدرس IP را به صورت معکوس نوشته و در ادامه عبارت .in-addr.arpa   را به آن اضافه کنید. به عنوان مثال فرض کنید بخواهیم جستجوی معکوس DNS را برای آدرس IP 216.239.38.120   انجام دهیم، در این صورت از دستور زیر استفاده می‌کنیم:

nslookup -type=ptr 120.38.239.216.in-addr.arpa

خروجی این دستور مشابه دستور nslookup 216.239.38.120   خواهد بود. برای تأیید این‌که آدرس IP سرور ایمیل شما با یک رکورد PTR مرتبط شده است لازم است آدرس IP که توسط بررسی رکوردهای A دامنه مربوط به سرور ایمیل در مرحله قبل به دست آورده‌اید را توسط دستور nslookup بررسی کنید. نتیجه این بررسی باید یک رکورد PTR را برگرداند. در مثال زیر می‌بینیم که تمام این مراحل را برای دامنه gmail.com   در حالت تعاملی دستور nslookup طی کرده‌ایم و جستجوی معکوس DNS تایید می‌کند که یک رکورد PTR برای سرور ایمیل گوگل ثبت شده است:

مراحل کامل عیب‌یابی سرویس ایمیل با استفاده از دستور nslookup

دریافت پاسخ معتبر با استفاده از دستور nslookup

بسیاری اوقات دستور nslookup در پاسخ به جستجوی انجام شده پاسخی نامعتبر برمی‌گرداند. این پاسخ‌ها با عنوان Non-authoritative answer  در خروجی نمایش داده می‌شوند. این اتفاق زمانی رخ می‌دهد که پاسخ‌ها، به جای سرور معتبری که رکوردهای DNS دامنه‌ مورد نظر شما در آن ذخیره شده‌اند از کش سرور DNS محلی فراخوانی شوند. در مثال زیر می‌بینید که پس از فراخوانی دستور nslookup برای بررسی دامنه faradars.com   پاسخ نامعتبر دریافت شده است:

دریافت پاسخ نامعتبر در دستور nslookup

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

nslookup -type=soa yourdomain.tld

در مثال زیر درحالت تعاملی دستور nslookup این اطلاعات را درمورد دامنه faradars.com   دریافت کرده‌ایم.

بررسی رکوردهای SOA به کمک دستور nslookup

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

پس از این‌که رکوردهای SOA را دریافت کردیم می‌توانیم در قسمت origin   آدرس سرور نام اصلی مربوط به دامنه را ببینیم. پس از آنکه آدرس سرور نام اصلی مربوط به دامنه را به دست آوردیم باید از این آدرس به عنوان سرور DNS استفاده کنیم تا اطلاعات معتبر مربوط به دامنه را جستجو کنیم. در مثال زیر می‌بینیم که با انتخاب سرور نام اصلی دامنه faradars.com   به عنوان سرور DNS مورد استفاده توسط دستور nslookup، اطلاعاتی که در مورد این دامنه جستجو می‌کنیم دیگر به عنوان اطلاعات نامعتبر مشخص نشده‌اند:

چگونگی دریافت پاسخ‌های معتبر توسط دستور nslookup

خلاصه مطلب و نحوه دسترسی به راهنمای دستور nslookup در لینوکس

همان‌طور که در این مطلب از مجله فرادرس دیدیم دستور nslookup برای بررسی رکوردهای DNS مربوط به یک نام دامنه مورد استفاده قرار می‌گیرد. مدیران شبکه و وب‌سایت‌ها به طور روزانه از این دستور برای بررسی و نظارت بر دسترسی پذیری سرویس‌ها یا عیب یابی و رفع اشکالات مرتبط با DNS استفاده می‌کنند. شکل کلی استفاده از دستور nslookup به صورت زیر است می‌توان از این دستور در دو حالت تعاملی و غیرتعاملی استفاده کرد.

nslookup [-option] [name | -] [server]

در قسمت option می‌توان به کمک نشانه‌هایی که توسط این دستور پشتیبانی می‌شوند جزئیات مربوط به جستجو در حالت غیرتعاملی را مشخص کرد. علاوه بر این دیدیم که می‌توانیم از چند نشانه مختلف به صورت همزمان استفاده کنیم. در قسمت name نیز نام دامنه‌ای که جستجو را درباره آن انجام می‌دهیم مشخص می‌کنیم. در جستجوی معکوس DNS در این قسمت به جای نام دامنه باید آدرس IP را مشخص کنیم. در نهایت در قسمت server آدرس IP یا نام دامنه سرور DNS که می‌خواهیم برای جستجو توسط دستور nslookup از آن استفاده کنیم را مشخص می‌کنیم.

چنانچه هیچ آدرسی در این قسمت مشخص نشود دستور nslookup از DNS پیش‌فرض که در تنظیمات محلی شبکه مشخص شده است استفاده خواهد کرد. در جدول زیر نشانه‌های پرکاربردی که دستور nslookup از آن‌ها پشتیبانی می‌کند به همراه توضیح مختصری درباره هرکدام از آن‌ها را می‌بینید.

نشانهتوضیحات
-debug نمایش اطلاعات دیباگ درباره درخواست و پاسخ ارسال شده
-port=value استفاده از عدد مشخص شده در قسمت value به جای پورت ۵۳ که پورت پیش‌فرض مربوط به جستجوی DNS است
-timeout=number زمان انتظار پیش از نمایش پیام خطا را مشخص می‌کند (بر حسب ثانیه)
-type=a رکوردهای نوع A مربوط به دامنه مورد جستجو را برمی‌گرداند (آدرس IPv4 مرتبط با نام دامنه)
-type=aaaa رکوردهای نوع AAAA مربوط به دامنه مورد جستجو را برمی‌گرداند (آدرس IPv6 مرتبط با نام دامنه)
-type=mx رکوردهای نوع MX مرتبط با دامنه مورد جستجو را برمیگرداند (آدرس سرور ایمیل مربوط به دامنه)
-type=ns رکوردهای نوع NS مرتبط با دامنه مورد جستجو را برمی‌گرداند. (آدرس سرور نام معتبر که اطلاعات DNS دامنه را ذخیره کرده است)
-type=cname رکوردهای نوع CNAMEمرتبط با دامنه مورد جستجو را برمیگرداند. آدرس اصلی برای دامنه مورد جستجو.
-type=ptr توسط رکوردهای نوع PTR ارتباط یک آدرس IP با یک نام دامنه را بررسی می‌کند.
-type=soa اطلاعات معتبر مربوط به یک DNS zone را برمیگرداند.
-type=txt اطلاعات متنی ذخیره شده درباره یک نام دامنه را برمیگرداند.

علاوه بر این برای به دست آوردن اطلاعات تکمیلی درباره دستور nslookup در لینوکس همیشه می‌توانید از دستور man nslookup   استفاده کنید. با وارد کردن این دستور راهنمای استفاده از ابزار nslookup در لینوکس را خواهید دید. در ویندوز نیز پس از این‌که وارد حالت تعاملی ابزار nslookup شدید کافیست یک کاراکتر ?   در خط فرمان تایپ کرده و کلید Enter   را فشار دهید تا راهنمای استفاده از این ابزار را مشاهده کنید.

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Linux Command LibraryPublic DNS Server
نظر شما چیست؟

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