Hootan Alghaspour
Hootan Alghaspour
خواندن ۳ دقیقه·۳ سال پیش

راهنمای سریع استفاده از dig

برای پرس و جوی DNS یکی از متداولترین و پرکاربردترین ابزارها dig است. dig یکی از ابزارهای BIND بوده و بنابراین روی *نیکسی ها متداول تر است هر چند برای ویندوز هم نسخه نصبی دارد اما روی ویندوز معمولاً از nslookup استفاده می شود.

قبل از هر چیز روی CentOS/RHEL/Fedoraها bind-utils و روی Debian/Ubuntuها dnsutils باید نصب باشد.

#yum install bind-utils #apt-get install dnsutils

کوئری DNS پیش فرض :

#dig google.com

برای اینکه وقتی dig خالی می زنید بصورت پیش فرض چه پارامترهایی استفاده شود می توانید فایل digrc./~ را بسازید و پارامتر های مدنظر را در آن اضافه کنید. تعدادی پرکاربردترین این ها در ادامه ذکر خواهند شد.

[root@centos ~]# echo ANY > ~/.digrc [root@centos ~]# cat .digrc ANY

به تصویر دقت بفرمایید :

تعریف رکوردهای مدنظر برای پرس و جو و فرمت پاسخ

استفاده از پارامتر ANY که دربالا مثال زده شد باعث برگشت تمام رکوردهای DNS دامنه مدنظر مثل A, AAAA, TXT, MX, NS و ... می شود. کامل ترین پاسخ dig درباره یک دامنه با این پارامتر بدست می آید.

همینطور می توانیم بجای ANY ، نوع رکورد DNS که پرس و جو می کنیم را هم مشخص کنیم :

#dig google.com ANY #dig google.com MX

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

دقت بفرمایید برای گرفتن رکورد PTR باید از سوییچ x- استفاده بفرمایید.

یکی از دلایل استفاده از dig در اسکریپت نویسی ها این است که dig قابلیت تعیین خروجی خوبی دارد، مثلاً یک پارامتر short+ دارد که فقط مقدار رکورد (مثلاً IP نهایی) را برمیگرداند تا براحتی بتوان از خروجی آن استفاده کرد. در تصویر دقت بفرمایید می توان از چند پارامتر برای کنترل خروجی های استفاده کرد.

همانطور که short+ دارد ، noshort+ هم دارد که به معنای غیر کوتاه است. اکثر پارامترها چنین شرایطی را دارند. تعداد این پارامترها و گزینه ها زیاد و متنوع هستند، لیست همه را می توانید با dig -h بگیرید که تصویر خروجی آن را اینجا گذاشته ام.

یکی از روش های کنترل خروجی dig این است که ابتدا از پارارمتر noall+ برای خالی کردن خروجی ها استفاده کرد و سپس پارامترهای مدنظر را تعریف کرد. برای مواردی مثل short+ البته کاربرد ندارد.

برخی دیگر از پرکاربردترین استفاده های dig نیز در ذیل لیست شده اند :

پرس و جو از DNS Server تعیین شده :

برای تعریف اینکه پرس و جو از چه DNS Serverی انجام شود (مثل server در nslookup) از DNSSERVER@ استفاده می شود.

#dig @8.8.8.8 google.com

تعیین پورت DNS Server هدف :

برای تعریف پورت از p- استفاده می کنیم.

#dig -p 53 google.com

استفاده از بستر IPv4 یا IPv6:

بصورت پیش فرض جستجوهای dig در بستر IPv4 انجام می شود، برای مشخص کردن استفاده از بستر IPv4 از 4- و برای IPv6 از 6- استفاده می کنیم.

دقت بفرمایید برای گرفتن آدرس های IPv6 از همان رکورد AAAA استفاده می شود و این سوییچ برای تعریف استفاده از IPv4 یا IPv6 است.

(گرفتن رکورد IPv4 در بستر IPv6)

#dig -6 @2001:4860:4860::8888 google.com A

(گرفتن رکورد IPv6 در بستر IPv4)

#dig -4 @8.8.8.8 google.com AAAA

گرفتن DNS Path جستجو (Trace DNS Path) :

پیمودن فرآیند و مسیر پاسخ به جستجوی DNS از Root Server ها تا سرور نهایی استفاده متداول ندارد و معمولاً در مسائل زیرساخت و/یا جمع آوری اطلاعات و/یا آموزشی استفاده می شود.

برای اینکار پارامتر trace+ را استفاده می کنیم.

#dig facebook.com +trace


در ضمن گوگل هم یک dig آنلاین دارد که از طریق وب می توانید استفاده بفرمایید :

https://toolbox.googleapps.com/apps/dig/

دقت بفرمایید با توجه به زیرساخت های ابری و CDNها و WAFها و ... مقدار بازگشتی پرس و جوی DNS ممکن است برای وب سایت های بزرگ بسته به زمان و مکان انجام پرس و جو متفاوت باشد.


linuxbinddnsلینوکسdig
هوتن القاس پور
شاید از این پست‌ها خوشتان بیاید