دستور 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 خروجی چاپ نمیکند و وارد حالت تعاملی خواهد شد:
- در صورتی که هیچ کدام از سه آرگومان مقداری نداشته باشند. یعنی در ترمینال لینوکس یا خط فرمان ویندوز صرفا عبارت nslookup را تایپ کرده و کلید Enter را فشار دهید.
- در صورتی که به جای آرگومان اول تنها یک کاراکتر - وارد شود و آرگومان دوم آدرس 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 صرف نظر شده است:
در مثال فوق میبینیم که آدرس IP مرتبط با نام دامنه google.com در خروجی نمایش داده شده است و برای به دست آوردن این اطلاعات دستور nslookup از سرور محلی استفاده کرده است.
برای اینکه همین اطلاعات را در حالت تعاملی ابزار nslookup به دست آورید لازم است ابتدا در محیط ترمینال دستور nslookup را وارد کرده و سپس در ابزار nslookup نام دامنه را وارد کرده و کلید Enter را بفشارید. در تصویر زیر مثالی از حالت تعاملی ابزار nslookup را میبینید:
آرگومان Server در دستور nslookup
این آرگومان سرور DNS مورد استفاده توسط ابزار nslookup برای جستجوی اطلاعات دامنهها را مشخص میکند. برای مقداردهی به این آرگومان در حالت غیرتعاملی دستور nslookup کافیست پس از وارد کردن نام دامنه در قسمت name آدرس IP یا نام دامنهی سرور DNS را وارد کنید. در مثال زیر دستور nslookup مانند مثال قبل برای یافتن آدرس IP مرتبط با دامنه google.com مورد استفاده قرار گرفته است با این تفاوت که در این مثال آدرس IP 8.8.8.8 به عنوان سرور DNS استفاده شده است. به تفاوت دستور و پاسخ نمایش داده شده در این مثال و مثال قبل دقت کنید:
برای مشخص کردن سرور 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 آدرس سرور مورد استفاده را بررسی کردهایم:
آرگومان option در دستور nslookup
به وسیله آرگومان option میتوانیم اطلاعاتی که میخواهیم درمورد یک دامنه مورد بررسی قرار دهیم، و پارامترهای جستجو را مشخص کنیم. در ادامه به نشانههای پرکاربردی که در این آرگومان میتوانیم از آنها استفاده کنیم اشاره خواهیم کرد.
مشخص کردن نوع رکورد DNS در دستور nslookup
در مثال زیر میبینید که رکوردهای NS مربوط به دامنه google.com را در حالت غیرتعاملی بررسی کردهایم.
همانطور که میبینید به کمک نشانه -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 بررسی کردهایم.
همچنین به این موضوع درباره مثال قبل دقت کنید که استفاده از حالت تعاملی برای انجام پرسوجوهای متعدد در مقایسه با حالت تعاملی چقدر میتواند سادهتر باشد. به عنوان یک تمرین میتوانید جستجوی انجام شده در مثال بالا را در حالت غیرتعاملی طی ۳ مرتبه استفاده از دستور nslookup انجام دهید.
چاپ اطلاعات مربوط به پرسوجو
در صورتی که از نشانه-debug در حالت غیرتعاملی دستور nslookup استفاده کنید اطلاعات بیشتری در مورد پرسوجوی انجام شده را در خروجی خواهید دید. در حالت تعاملی نیز با استفاده از دستور set debug میتوانید نمایش این اطلاعات را فعال کنید. از دستور set nodebug برای غیر فعال کردن نمایش اطلاعات دیباگ استفاده کنید. در تصویر زیر مثالی از پرسوچوی اطلاعات مربوط به رکوردهای MX دامنه faradars.com را میبینید. در این جستجو از نشانه -debug برای نمایش اطلاعات مربوط به پرسوجو استفاده شده است. به تفاوت میان پاسخ این پرسوجو با مثالهای قبل دقت کنید:
مشخص کردن زمان انتظار
اگر از نشانه -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 |
Cloudflare | 1.1.1.1 |
Quad9 | 9.9.9.9 |
OpenDNS | 208.67.222.222 |
AdGuard | 94.140.15.15 |
چنانچه گزارشهایی که از کاربرانتان دریافت میکنید گویای این موضوع است که کاربران یک سرویسدهنده اینترنت خاص امکان دسترسی به سایت شما را ندارند یکی از کارهایی که باید انجام دهید این است که دسترسی به سایت خود را از طریق سرورهای DNS آن سرویسدهنده خاص بررسی کنید. برای به دست آوردن آدرس سرور DNS شرکتهای سرویسدهنده اینترنت میتوانید با پشتیبانی آنها تماس بگیرید.
بررسی دسترسیپذیری سرور DNS
برای اطمینان از در دسترس بودن یک سرور DNS میتوانید از ابزار nslookup برای ارسال درخواست به آن سرور استفاده کنید. در ادامه مثالی از خروجی دستور nslookup در صورت در دسترس نبودن سرور DNS را میبینیم. در صورتی که سرور DNS در دسترس باشد باید مانند مثالهای قبل پاسخ معتبری برای درخواستمان دریافت کنیم.
بررسی سرور نام دامنه
یکی از اشکالات رایج مربوط به DNS تنظیم اشتباه رکوردهای NS مربوط به دامنه است. اگر سایتتان قابل دسترسی نیست یکی از کارهایی که لازم است انجام دهید این است که از درستی تنظیمات DNS و رکوردهای NS مربوط به دامنه خود اطمینان حاصل کنید. برای بررسی رکوردهای NS از دستور nslookup به صورت زیر استفاده میکنیم:
nslookup -type=ns youdomain.tld
در ادامه مثالی از بررسی رکوردهای NS مربوط به دامنه faradars.com را در حالت تعاملی ابزار nslookup میبینیم:
برای اینکه وبسایت شما قابل دسترسی باشد باید رکوردهای NS به درستی به سرور نام شما اشاره کنند.
عیب یابی سرویس ایمیل با استفاده از دستور nslookup
اگر سرویس ایمیل شما کار نمیکند یا ایمیلهایی که برای شما یا توسط شما ارسال میشوند به فرستنده بازگردانده میشوند یکی از ایرادات محتمل تنظیمات نادرست DNS است. برای اینکه مطمئن شوید تنظیمات DNS دامنه شما به درستی مقداردهی شدهاند باید از دستور nslookup استفاده کنید.
بررسی رکوردهای mx با استفاده از دستور nslookup
رکوردهای MX، سرور ایمیلی که مسئول دریافت ایمیلهای ارسال شده به یک نام دامنه است را مشخص میکنند. اگر این رکوردها مشخص نشده باشند یا به سرور معتبری اشاره نکنند ایمیلهای ارسال شده به آن نام دامنه توسط گیرنده دریافت نمیشوند. برای بررسی رکوردهای MX از دستور nslookup در حالت غیرتعاملی به صورت زیر استفاده میکنیم:
nslookup -type=mx yourdomain.tld
در مثال زیر رکوردهای MX دامنه faradars.com را در حالت تعاملی بررسی کردهایم:
موضوع دیگری که باید از آن اطمینان حاصل کرد این است که آدرسی که در رکورد MX ثبت شده است به یک سرور ایمیل مرتبط باشد. برای این کار باید رکوردهای A را بررسی کنیم. در مثال زیر میبینید که پس از به دست آوردن آدرس mail.faradars.com که در رکورد MX ثبت شده بود، رکوردهای A این دامنه را بررسی کردهایم.
جستجوی معکوس رکوردهای 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 در پاسخ به جستجوی انجام شده پاسخی نامعتبر برمیگرداند. این پاسخها با عنوان Non-authoritative answer در خروجی نمایش داده میشوند. این اتفاق زمانی رخ میدهد که پاسخها، به جای سرور معتبری که رکوردهای DNS دامنه مورد نظر شما در آن ذخیره شدهاند از کش سرور DNS محلی فراخوانی شوند. در مثال زیر میبینید که پس از فراخوانی دستور nslookup برای بررسی دامنه faradars.com پاسخ نامعتبر دریافت شده است:
اگرچه پاسخهای نامعتبر بسیاری از اوقات میتوانند راهگشا باشند اما ممکن است حاوی اطلاعات صحیح و به روز نباشند. به همین دلیل اگر از دستور nslookup به منظور عیب یابی تنظیمات DNS استفاده میکنید لازم است مطمئن شوید که اطلاعاتی که به دست میآورید معتبر هستند. برای دریافت اطلاعات معتبر در رابطه با یک دامنه توسط دستور nslookup ابتدا به صورت زیر رکوردهای SOA مربوط به نام دامنه را دریافت کنید:
nslookup -type=soa yourdomain.tld
در مثال زیر درحالت تعاملی دستور nslookup این اطلاعات را درمورد دامنه faradars.com دریافت کردهایم.
اگر به تصویر بالا دقت کنید میبینید که اطلاعات دریافت شده درباره دامنه faradars.com در این مرحله نامعتبر هستند اما چون ما تنها به آدرس سرور نام اصلی مربوط به این دامنه نیاز داریم این موضوع مشکلی برای ما ایجاد نخواهد کرد.
پس از اینکه رکوردهای SOA را دریافت کردیم میتوانیم در قسمت origin آدرس سرور نام اصلی مربوط به دامنه را ببینیم. پس از آنکه آدرس سرور نام اصلی مربوط به دامنه را به دست آوردیم باید از این آدرس به عنوان سرور DNS استفاده کنیم تا اطلاعات معتبر مربوط به دامنه را جستجو کنیم. در مثال زیر میبینیم که با انتخاب سرور نام اصلی دامنه faradars.com به عنوان سرور DNS مورد استفاده توسط دستور 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 را فشار دهید تا راهنمای استفاده از این ابزار را مشاهده کنید.