| DIG(1) | BIND 9 | DIG(1) |
نام (NAME)
dig - ابزار کاوشگر و پرسوجوی ساختاریافته نام دامنه DNS
خلاصه دستور (SYNOPSIS)
dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-m] [-p port#] [-q name] [-t type] [-v] [-x addr] [-y [hmac:]name:key] [ [-4] | [-6] ] [name] [type] [class] [queryopt...]
dig [-h]
dig [global-queryopt...] [query...]
توضیحات (DESCRIPTION)
ابزار dig یک ابزار منعطف برای استعلام و پرسوجو از کارسازهای نام DNS است. این ابزار جستجوهای DNS را انجام داده و پاسخهای دریافتی از کارساز یا کارسازهای نام مورد پرسوجو را نمایش میدهد. بیشتر مدیران DNS به دلیل انعطافپذیری، سهولت در استفاده و وضوح خروجی، از dig برای عیبیابی و رفع مشکلات DNS استفاده میکنند. سایر ابزارهای جستجو معمولاً قابلیتهای کمتری نسبت به dig دارند.
اگرچه dig معمولاً با آرگومانهای خط فرمان استفاده میشود، اما یک حالت دستهای (batch mode) نیز برای خواندن درخواستهای جستجو از یک فایل دارد. با مشخص کردن گزینه -h خلاصهای کوتاه از آرگومانها و گزینههای خط فرمان آن چاپ میشود. پیادهسازی dig در BIND 9 امکان ارسال چندین پرسوجو از طریق خط فرمان را فراهم میکند.
مگر در مواردی که پرسوجو از یک کارساز نام مشخص خواسته شده باشد، dig هر یک از کارسازهای فهرستشده در /etc/resolv.conf را امتحان میکند. اگر هیچ آدرس کارساز قابل استفادهای یافت نشود، dig پرسوجو را به میزبان محلی (localhost) ارسال میکند.
هنگامی که هیچ آرگومان یا گزینهای در خط فرمان مشخص نشده باشد، dig یک پرسوجوی NS برای "." (ریشه یا root) انجام میدهد.
امکان تنظیم پیشفرضهای اختصاصی هر کاربر برای dig از طریق فایل ${HOME}/.digrc وجود دارد. این فایل خوانده شده و تمام گزینههای موجود در آن پیش از اعمال آرگومانهای خط فرمان اعمال میشوند. گزینه -r این ویژگی را غیرفعال میکند که برای اسکریپتهایی با رفتار قابل پیشبینی مفید است.
نامهای کلاس IN و CH با دامنههای سطحبالای (TLD) IN و CH همپوشانی دارند. در هنگام جستجوی این دامنههای سطحبالا، یا از گزینههای -t و -c برای تعیین نوع و کلاس استفاده کنید، یا از گزینه -q برای مشخص کردن نام دامنه بهره ببرید، یا از "IN." و "CH." استفاده نمایید.
کاربرد ساده (SIMPLE USAGE)
یک فراخوانی متداول dig به صورت زیر است:
dig @server name type
که در آن:
- server
- نام یا آدرس
IP کارساز
نامی است که
باید مورد
پرسوجو
قرار گیرد.
این مقدار
میتواند
یک آدرس IPv4 با
تفکیک نقطه
(dotted-decimal) یا یک
آدرس IPv6 با
تفکیک
دونقطه (colon-delimited)
باشد.
هنگامی که
آرگومان server
یک نام
میزبان
باشد، dig
پیش از
پرسوجو از
آن کارساز
نام، ابتدا
آن نام را
تحلیل (resolve)
میکند.
اگر هیچ آرگومان server ارائه نشود، dig به فایل /etc/resolv.conf مراجعه میکند؛ اگر آدرسی در آن یافت شود، از کارساز نام موجود در آن آدرس پرسوجو مینماید. اگر هر یک از گزینههای -4 یا -6 استفاده شده باشند، تنها آدرسهای مربوط به همان پروتکل انتقال بررسی میشوند. اگر هیچ آدرس قابل استفادهای یافت نشود، dig پرسوجو را به میزبان محلی ارسال میکند. پاسخ دریافتی از کارساز نامی که پاسخ میدهد نمایش داده خواهد شد.
- name
- نام رکورد منبعی (resource record) است که باید جستجو شود.
- type
- نوع پرسوجوی درخواستی را مشخص میکند - مانند ANY، A، MX، SIG و غیره. type میتواند هر نوع پرسوجوی معتبری باشد. اگر آرگومان type مشخص نشود، dig یک جستجو برای رکورد A انجام میدهد.
گزینهها (OPTIONS)
- -4
- این گزینه مشخص میکند که تنها باید از IPv4 استفاده شود.
- -6
- این گزینه مشخص میکند که تنها باید از IPv6 استفاده شود.
- -b address[#port]
- این گزینه آدرس IP مبدأ پرسوجو را تعیین میکند. مقدار address باید یک آدرس معتبر روی یکی از رابطهای شبکه میزبان یا "0.0.0.0" یا "::" باشد. میتوان با افزودن #port یک پورت اختیاری را نیز مشخص کرد.
- -c class
- این گزینه کلاس پرسوجو را تعیین میکند. کلاس پیشفرض class برابر با IN است؛ سایر کلاسها شامل HS برای رکوردهای Hesiod یا CH برای رکوردهای Chaosnet هستند.
- -f file
- این گزینه حالت دستهای (batch mode) را فعال میکند که در آن dig فهرستی از درخواستهای جستجو را برای پردازش از file دادهشده میخواند. هر خط در فایل باید به همان روشی تنظیم شود که یک پرسوجو در رابط خط فرمان به dig داده میشود.
- -h
- خلاصهای از راهنمای نحوه استفاده را چاپ میکند.
- -k keyfile
- این گزینه به dig دستور میدهد تا پرسوجوها را با استفاده از TSIG یا SIG(0) و با کلیدی که از فایل دادهشده خوانده میشود، امضا کند. فایلهای کلید را میتوان با استفاده از tsig-keygen <#std-iscman-tsig-keygen> ایجاد کرد. هنگام استفاده از احراز هویت TSIG با dig، کارساز نام مورد پرسوجو باید از کلید و الگوریتم مورد استفاده آگاه باشد. در BIND، این کار با قرار دادن دستورالعملهای مناسب key و server در named.conf <#std-iscman-named.conf> برای TSIG و با جستجوی رکورد KEY در دادههای منطقه برای SIG(0) انجام میشود.
- -m
- این گزینه اشکالزدایی مصرف حافظه را فعال میکند.
- -p port
- این گزینه پرسوجو را به جای پورت پیشفرض ۵۳، به یک پورت غیراستاندارد در کارساز ارسال میکند. این گزینه برای آزمایش کارساز نامی که برای گوش دادن به پرسوجوها روی یک شماره پورت غیراستاندارد پیکربندی شده، به کار میرود.
- -q name
- این گزینه نام دامنه مورد پرسوجو را مشخص میکند. این گزینه برای متمایز کردن name از سایر آرگومانها مفید است.
- -r
- این گزینه مشخص میکند که گزینههای موجود در ${HOME}/.digrc نباید خوانده شوند. این گزینه برای اسکریپتهایی که به رفتاری قابل پیشبینی نیاز دارند مفید است.
- -t type
- این گزینه
نوع رکورد
منبع مورد
پرسوجو را
مشخص
میکند که
میتواند
هر نوع
پرسوجوی
معتبری
باشد. اگر
نوع رکورد
منبع در BIND 9
پشتیبانی
شود،
میتوان آن
را با نماد
اختصاری
نوع (مانند
NS یا AAAA) مشخص
کرد. نوع
پرسوجوی
پیشفرض A
است، مگر
اینکه
گزینه -x
برای مشخص
کردن
جستجوی
معکوس داده
شده باشد.
یک انتقال
منطقه (zone transfer) را
میتوان با
تعیین نوع AXFR
درخواست
کرد. هنگامی
که یک
انتقال
افزایشی
منطقه (IXFR)
مورد نیاز
است، type را
روی ixfr=N قرار
دهید.
انتقال
افزایشی
منطقه شامل
تمام
تغییراتی
است که از
زمانی که
شماره
سریال در
رکورد SOA
منطقه
برابر با N
بوده، روی
منطقه
اعمال شده
است.
تمام انواع رکوردهای منبع را میتوان به صورت TYPEnn بیان کرد که در آن nn شماره نوع است. اگر نوع رکورد منبع در BIND 9 پشتیبانی نشود، نتیجه طبق آنچه در RFC 3597 https://datatracker.ietf.org/doc/html/rfc3597.html شرح داده شده نمایش مییابد.
- -u
- این گزینه مشخص میکند که زمان پرسوجو بر حسب میکروثانیه به جای میلیثانیه چاپ شود.
- -v
- این گزینه شماره نسخه را چاپ کرده و خارج میشود.
- -x addr
- این گزینه جستجوهای معکوس سادهشده را برای نگاشت آدرسها به نامها تنظیم میکند. آرگومان addr یک آدرس IPv4 با تفکیک نقطه یا یک آدرس IPv6 با تفکیک دونقطه است. هنگامی که از گزینه -x استفاده میشود، نیازی به ارائه آرگومانهای name، class و type نیست. dig به طور خودکار جستجویی را برای نامی مانند 94.2.0.192.in-addr.arpa انجام میدهد و نوع و کلاس پرسوجو را به ترتیب روی PTR و IN تنظیم میکند. آدرسهای IPv6 با استفاده از قالب نیمبایت (nibble format) تحت دامنه IP6.ARPA جستجو میشوند.
- -y [hmac:]keyname:secret
- این گزینه پرسوجوها را با استفاده از TSIG و با کلید احراز هویت دادهشده امضا میکند. شناسه keyname نام کلید و secret عبارت رمزی مشترک کدگذاریشده با Base64 است. شناسه hmac نام الگوریتم کلید است؛ گزینههای معتبر عبارتند از hmac-md5، hmac-sha1، hmac-sha224، hmac-sha256، hmac-sha384 یا hmac-sha512. اگر hmac مشخص نشود، مقدار پیشفرض hmac-md5 است؛ اگر MD5 غیرفعال شده باشد، پیشفرض hmac-sha256 خواهد بود.
نکته:
فلگهای پرسوجو (QUERY OPTIONS)
ابزار dig تعدادی فلگ و گزینه پرسوجو ارائه میدهد که بر نحوه انجام جستجوها و نمایش نتایج تأثیر میگذارند. برخی از این موارد بیتهای فلگ را در هدر پرسوجو تنظیم یا پاک میکنند، برخی تعیین میکنند کدام بخشهای پاسخ چاپ شوند و برخی دیگر راهبردهای مهلت زمانی (timeout) و تلاش مجدد (retry) را مشخص مینمایند.
هر گزینه پرسوجو با یک کلیدواژه مشخص میشود که پیش از آن یک علامت مثبت (+) قرار دارد. برخی کلیدواژهها گزینهای را تنظیم یا بازنشانی میکنند؛ میتوان پیش از این کلیدواژهها رشته no را برای نفی مفهوم آن کلیدواژه قرار داد. سایر کلیدواژهها مقادیری را به گزینهها اختصاص میدهند، مانند بازه مهلت زمانی. این کلیدواژهها به صورت +keyword=value هستند. کلیدواژهها را میتوان خلاصه کرد، به شرطی که کوتهنوشت مبهم نباشد؛ برای نمونه، +cd معادل +cdflag است. گزینههای پرسوجو به ترتیب حساس هستند. گزینههای پرسوجو عبارتند از:
- +aaflag, +noaaflag
- این گزینه مترادفی برای +aaonly، +noaaonly است.
- +aaonly, +noaaonly
- این گزینه فلگ aa را در پرسوجو تنظیم میکند.
- +additional, +noadditional
- این گزینه بخش اطلاعات تکمیلی (additional section) یک پاسخ را نمایش میدهد [یا نمایش نمیدهد]. حالت پیشفرض، نمایش آن است.
- +adflag, +noadflag
- این گزینه بیت AD (دادههای معتبر یا authentic data) را در پرسوجو تنظیم [یا پاک] میکند. این گزینه از کارساز درخواست میکند گزارش دهد آیا تمام بخشهای پاسخ و مرجعیت (authority) بر اساس خطمشی امنیتی کارساز به عنوان امن اعتبارسنجی شدهاند یا خیر. مقدار AD=1 نشان میدهد که تمام رکوردها به عنوان امن اعتبارسنجی شدهاند و پاسخ از یک محدوده OPT-OUT نیست. مقدار AD=0 نشان میدهد که بخشی از پاسخ ناامن بوده یا اعتبارسنجی نشده است. این بیت به طور پیشفرض تنظیم شده است.
- +all, +noall
- این گزینه تمام فلگهای نمایش را تنظیم یا پاک میکند.
- +answer, +noanswer
- این گزینه بخش پاسخ (answer section) یک پاسخ را نمایش میدهد [یا نمایش نمیدهد]. پیشفرض نمایش آن است.
- +authority, +noauthority
- این گزینه بخش مرجعیت (authority section) یک پاسخ را نمایش میدهد [یا نمایش نمیدهد]. پیشفرض نمایش آن است.
- +badcookie, +nobadcookie
- این گزینه در صورت دریافت پاسخ BADCOOKIE، جستجو را با یک کوکی جدید کارساز تکرار میکند.
- +besteffort, +nobesteffort
- این گزینه تلاش میکند تا محتوای پیامهای دارای قالببندی نادرست (malformed) را نمایش دهد. پیشفرض این است که پاسخهای نادرست نمایش داده نشوند.
- +bufsize[=B]
- این گزینه اندازه بافر پیام UDP اعلامشده با استفاده از EDNS0 را به B بایت تنظیم میکند. حداکثر و حداقل اندازه این بافر به ترتیب ۶۵۵۳۵ و ۰ است. گزینه +bufsize اندازه بافر پیشفرض را بازیابی میکند.
- +cd, +cdflag, +nocdflag
- این گزینه بیت CD (غیرفعالسازی بررسی یا checking disabled) را در پرسوجو تنظیم [یا پاک] میکند. این گزینه از کارساز درخواست میکند که اعتبارسنجی DNSSEC را برای پاسخها انجام ندهد.
- +class, +noclass
- این گزینه هنگام چاپ رکورد، CLASS را نمایش میدهد [یا نمایش نمیدهد].
- +cmd, +nocmd
- این گزینه چاپ توضیح اولیه در خروجی را تغییر میدهد که نسخه dig و گزینههای پرسوجوی اعمالشده را مشخص میکند. این گزینه همیشه تأثیر سراسری دارد؛ نمیتوان آن را به طور سراسری تنظیم کرد و سپس برای هر پرسوجوی مجزا بازنویسی نمود. پیشفرض چاپ این توضیح است.
- +coflag, +co, +nocoflag, +noco
- این گزینه بیت EDNS مربوط به CO (پذیرش انکار فشرده وجود یا Compact denial of existence Ok) را در پرسوجو تنظیم [یا پاک] میکند. در صورت تنظیم، به کارسازها اعلام میکند که پاسخهای انکار فشرده وجود (Compact Denial of Existence) هنگام پاسخ به پرسوجوها قابل قبول هستند. مقدار پیشفرض +nocoflag است.
- +comments, +nocomments
- این گزینه
نمایش برخی
از خطوط
توضیحات را
در خروجی
روشن یا
خاموش
میکند که
حاوی
اطلاعاتی
درباره هدر
بسته،
شبهبخش OPT و
نامهای
بخشهای
پاسخ هستند.
پیشفرض،
چاپ این
توضیحات
است.
سایر انواع توضیحات در خروجی تحت تأثیر این گزینه قرار نمیگیرند، اما با استفاده از سایر سوییچهای خط فرمان قابل کنترل هستند. این موارد شامل +cmd، +question، +stats و +rrcomments میشوند.
- +cookie=####, +nocookie
- این گزینه
یک گزینه EDNS COOKIE
را به همراه
یک مقدار
اختیاری
ارسال
میکند [یا
ارسال
نمیکند].
ارسال مجدد
یک COOKIE از یک
پاسخ قبلی
به کارساز
اجازه
میدهد
کلاینت
قبلی را
شناسایی
کند.
پیشفرض +cookie
است.
همچنین هنگام تنظیم +trace، گزینه +cookie نیز برای شبیهسازی بهتر پرسوجوهای پیشفرض از یک کارساز نام تنظیم میشود.
- +crypto, +nocrypto
- این گزینه نمایش فیلدهای رمزنگاری را در رکوردهای DNSSEC روشن یا خاموش میکند. محتوای این فیلدها برای عیبیابی بیشتر خطاهای اعتبارسنجی DNSSEC غیرضروری است و حذف آنها مشاهده خطاهای متداول را آسانتر میکند. پیشفرض نمایش فیلدها است. هنگامی که حذف میشوند، با رشته [omitted] جایگزین میگردند یا در مورد DNSKEY، شناسه کلید به عنوان جایگزین نمایش داده میشود؛ مانند [ key id = value ].
- +defname, +nodefname
- این گزینه منسوخشده به عنوان مترادفی برای +search، +nosearch در نظر گرفته میشود.
- +dns64prefix, +nodns64prefix
- رکورد AAAA دامنهی IPV4ONLY.ARPA را جستجو کرده و هرگونه پیشوند DNS64 یافتشده را چاپ میکند.
- +dnssec, +do, +nodnssec, +nodo
- این گزینه با تنظیم بیت DNSSEC OK (DO) در رکورد OPT در بخش اطلاعات تکمیلی (additional section) پرسوجو، ارسال رکوردهای DNSSEC را درخواست میکند.
- +domain=somename
- این گزینه فهرست جستجو را طوری تنظیم میکند که تنها شامل دامنه somename باشد، مشابه آنچه در دستورالعمل domain در /etc/resolv.conf مشخص میشود، و پردازش فهرست جستجو را مانند زمانی که گزینه +search داده شده فعال مینماید.
- +edns[=#], +noedns
- این گزینه نسخه EDNS را برای پرسوجو مشخص میکند. مقادیر معتبر بین ۰ تا ۲۵۵ هستند. تنظیم نسخه EDNS باعث ارسال یک پرسوجوی EDNS میشود. گزینه +noedns نسخه EDNS ذخیرهشده را پاک میکند. EDNS به طور پیشفرض روی ۰ تنظیم شده است.
- +ednsflags[=#], +noednsflags
- این گزینه بیتهای پرچمهای باید-صفر EDNS (بیتهای Z) را روی مقدار مشخصشده تنظیم میکند. مقادیر دهدهی، هگزادسیمال و هشتهشتی پذیرفته میشوند. تنظیم یک پرچم نامگذاریشده (مانند DO یا CO) بدون خطا نادیده گرفته میشود. به طور پیشفرض، هیچ بیت Z تنظیم نشده است.
- +ednsnegotiation, +noednsnegotiation
- این گزینه مذاکره نسخه EDNS را فعال/غیرفعال میکند. به طور پیشفرض، مذاکره نسخه EDNS فعال است.
- +ednsopt[=code[:value]], +noednsopt
- این گزینه شناسه گزینه EDNS را با کد code و بار داده اختیاری value به صورت یک رشته هگزادسیمال مشخص میکند. مقدار code میتواند نام یک گزینه EDNS (برای نمونه، NSID یا ECS) یا یک مقدار عددی دلخواه باشد. گزینه +noednsopt گزینههای EDNS ارسالی را پاک میکند.
- +expire, +noexpire
- این گزینه یک گزینه EDNS Expire ارسال میکند.
- +fail, +nofail
- این گزینه مشخص میکند که در صورت دریافت SERVFAIL، دستور named <#std-iscman-named> باید کارساز بعدی را امتحان کند [یا امتحان نکند]. پیشفرض امتحان نکردن کارساز بعدی است که برعکس رفتار معمول تحلیلگر ساده (stub resolver) است.
- +fuzztime[=value], +nofuzztime
- این گزینه امکان تعیین زمان امضا را هنگام تولید پیامهای امضاشده فراهم میکند. اگر مقداری مشخص شود، تعداد ثانیههای سپریشده از 00:00:00 اول ژانویه 1970 UTC بدون احتساب ثانیههای کبیسه است. اگر مقداری مشخص نشود، از 1646972129 (جمعه 11 مارس 2022 ساعت 04:15:29 UTC) استفاده میشود. پیشفرض +nofuzztime است و زمان فعلی استفاده میشود.
- +header-only, +noheader-only
- این گزینه یک پرسوجو با هدر DNS بدون بخش پرسش (question section) ارسال میکند. پیشفرض افزودن بخش پرسش است. نوع و نام پرسوجو در صورت تنظیم این گزینه نادیده گرفته میشوند.
- +https[=value], +nohttps
- این گزینه
مشخص
میکند که
آیا هنگام
پرسوجو از
کارسازهای
نام از DNS روی
HTTPS (DoH) استفاده
شود یا خیر.
هنگامی که
این گزینه
استفاده
میشود،
شماره پورت
به طور
پیشفرض
روی 443 قرار
میگیرد.
هنگام
ارسال
پرسوجو از
حالت
درخواست HTTP POST
استفاده
میشود.
اگر value مشخص شده باشد، به عنوان نقطه پایانی HTTP در URI پرسوجو استفاده خواهد شد؛ مقدار پیشفرض /dns-query است. بنابراین برای نمونه، دستور dig @example.com +https از URI با نشانی https://example.com/dns-query استفاده خواهد کرد.
- +https-get[=value], +nohttps-get
- مشابه +https است، با این تفاوت که هنگام ارسال پرسوجو از حالت درخواست HTTP GET استفاده میشود.
- +https-post[=value], +nohttps-post
- مشابه +https است.
- +http-plain[=value], +nohttp-plain
- مشابه +https است، با این تفاوت که پرسوجوهای HTTP از طریق یک کانال رمزگذارینشده ارسال میشوند. هنگامی که این گزینه استفاده میشود، شماره پورت به طور پیشفرض ۸۰ است و حالت درخواست HTTP برابر با POST خواهد بود.
- +http-plain-get[=value], +nohttp-plain-get
- مشابه +http-plain است، با این تفاوت که حالت درخواست HTTP برابر با GET است.
- +http-plain-post[=value], +nohttp-plain-post
- مشابه +http-plain است.
- +identify, +noidentify
- این گزینه هنگامی که گزینه +short فعال باشد، آدرس IP و شماره پورتی را که پاسخ را ارائه کرده است نمایش میدهد [یا نمایش نمیدهد]. در صورت درخواست پاسخهای فرم کوتاه، پیشفرض نمایش ندادن آدرس مبدأ و شماره پورت کارساز ارائهدهنده پاسخ است.
- +idn, +noidn
- پردازش IDN را
فعال یا
غیرفعال
میکند. به
طور
پیشفرض IDN
برای
نامهای
پرسوجوی
ورودی و
برای نمایش
در زمانی که
خروجی یک
ترمینال
باشد، فعال
است.
همچنین میتوانید پردازش IDN در dig را با تنظیم متغیر محیطی IDN_DISABLE غیرفعال کنید.
- +ignore, +noignore
- این گزینه برش یا کوتاهشدگی (truncation) در پاسخهای UDP را نادیده میگیرد [یا نادیده نمیگیرد] به جای اینکه مجدداً با TCP تلاش کند. به طور پیشفرض تلاشهای مجدد با TCP انجام میشوند.
- +keepalive, +nokeepalive
- این گزینه یک گزینه EDNS Keepalive ارسال میکند [یا ارسال نمیکند].
- +keepopen, +nokeepopen
- این گزینه سوکت TCP را بین پرسوجوها باز نگه میدارد [یا باز نگه نمیدارد] و به جای ایجاد یک سوکت TCP جدید برای هر جستجو، از آن استفاده مجدد میکند. پیشفرض +nokeepopen است.
- +multiline, +nomultiline
- این گزینه رکوردها، مانند رکوردهای SOA را در یک قالب چندخطی با جزئیات و همراه با توضیحات خوانا برای انسان چاپ میکند [یا چاپ نمیکند]. پیشفرض این است که هر رکورد در یک خط چاپ شود تا تجزیه خروجی dig توسط ماشین تسهیل گردد.
- +ndots=D
- این گزینه تعداد نقطههایی (D) را تعیین میکند که باید در name وجود داشته باشند تا به عنوان نام مطلق در نظر گرفته شود. مقدار پیشفرض آن مقداری است که با استفاده از دستورالعمل ndots در /etc/resolv.conf تعریف شده است، یا در صورت نبود عبارت ndots برابر با 1 خواهد بود. نامهایی با تعداد نقطه کمتر به عنوان نامهای نسبی تفسیر میشوند و در صورت تنظیم بودن +search، در دامنههای فهرستشده در دستورالعملهای search یا domain در /etc/resolv.conf جستجو میشوند.
- +nsid, +nonsid
- در صورت فعال بودن، این گزینه هنگام ارسال یک پرسوجو، درخواست شناسه کارساز نام EDNS (NSID) را نیز شامل میشود.
- +nssearch, +nonssearch
- هنگامی که این گزینه تنظیم شود، dig تلاش میکند کارسازهای نام معتبر برای منطقهای که شامل نام در حال جستجو است را پیدا کند و رکورد SOA مربوط به هر کارساز نام برای آن منطقه را نمایش دهد. آدرس کارسازهایی که پاسخ ندادهاند نیز چاپ میشود.
- +onesoa, +noonesoa
- در صورت فعال بودن، این گزینه هنگام اجرای AXFR تنها یک رکورد SOA (ابتدایی) را چاپ میکند. حالت پیشفرض، چاپ هر دو رکورد SOA ابتدایی و انتهایی است.
- +opcode=value, +noopcode
- در صورت فعال بودن، این گزینه کد عملیات (opcode) پیام DNS را روی مقدار مشخصشده تنظیم (یا بازیابی) میکند. مقدار پیشفرض QUERY (0) است.
- +padding=value
- این گزینه اندازه بسته پرسوجو را با استفاده از گزینه EDNS Padding به بلوکهایی با اندازه value بایت افزایش میدهد. برای نمونه، +padding=32 باعث میشود یک پرسوجوی ۴۸ بایتی با پر کردن بایتها به ۶۴ بایت تبدیل شود. اندازه بلوک پیشفرض ۰ است که پر کردن (padding) را غیرفعال میکند؛ حداکثر مقدار ۵۱۲ است. معمولاً انتظار میرود مقادیر توانهایی از دو مانند ۱۲۸ باشند؛ با این حال، این امر اجباری نیست. پاسخها به پرسوجوهای پرشده نیز ممکن است پر شوند، اما تنها در صورتی که پرسوجو از TCP یا DNS COOKIE استفاده کند.
- +proxy[=src_addr[#src_port]-dst_addr[#dst_port]], +noproxy
- هنگامی که
این گزینه
تنظیم شود،
dig هدرهای PROXYv2
را به
پرسوجوها
اضافه
میکند.
هنگامی که
آدرسهای
مبدأ و مقصد
مشخص شوند،
هدرها شامل
آنها بوده
و از دستور
PROXY استفاده
میکنند.
این موضوع
برای گره
راه دور به
این معناست
که
پرسوجوها
از طرف گره
دیگری
ارسال
شدهاند و
هدر PROXYv2 نقاط
پایانی
اتصال اصلی
را منعکس
میکند.
پورت مبدأ
پیشفرض 0 و
پورت مقصد
پیشفرض 53
است.
برای پروتکلهای رمزگذاریشده DNS، به منظور جلوگیری از نشت تصادفی اطلاعات، رمزگذاری روی هدرهای PROXYv2 اعمال میشود: هدرها دقیقاً پس از تکمیل فرآیند دستتکانی (handshake) ارسال میشوند.
برای پروتکلهای ساده (رمزگذارینشده) DNS، هیچ رمزگذاری روی هدرهای PROXYv2 اعمال نمیشود.
اگر آدرسها حذف شوند، هدرهای PROXYv2 که از مجموعه دستورات LOCAL استفاده میکنند اضافه میشوند. برای گره راه دور، این بدان معناست که پرسوجوها مستقیماً و بدون بازپخش (relay) ارسال شدهاند، بنابراین باید از آدرسهای واقعی نقاط پایانی اتصال استفاده شود.
- +proxy-plain[=src_addr[#src_port]-dst_addr[#dst_port], +noproxy-plain
- مشابه +[no]proxy
است، اما به
dig دستور
میدهد تا
هدرهای PROXYv2 را
پیش از
هرگونه
رمزگذاری و
پیش از
ارسال
هرگونه
پیام
دستتکانی
ارسال کند.
این باعث
میشود dig
دقیقاً طبق
مشخصات
پروتکل PROXY
رفتار کند،
اما همه
نرمافزارها
چنین
رفتاری را
انتظار
ندارند.
لطفاً به مستندات نرمافزار مراجعه کنید تا بدانید آیا به این گزینه نیاز دارید یا خیر (برای نمونه، dnsdist انتظار دارد در صورت استفاده از رمزگذاری، هدرهای PROXYv2 رمزگذاریشده از طریق TLS ارسال شوند، در حالی که HAProxy و بسیاری از بستههای نرمافزاری دیگر انتظار هدرهای ساده را دارند).
برای پروتکلهای انتقال ساده DNS، این گزینه عملاً یک نام مستعار برای +[no]proxy شرح داده شده در بالا است.
- +qid=value
- این گزینه شناسه پرسوجو (query ID) را برای استفاده هنگام ارسال پرسوجوها مشخص میکند.
- +qr, +noqr
- این گزینه نمایش پیام پرسوجو را هنگام ارسال روشن یا خاموش میکند. به طور پیشفرض، پرسوجو چاپ نمیشود.
- +question, +noquestion
- این گزینه نمایش بخش پرسش (question section) یک پرسوجو را هنگام بازگشت پاسخ تغییر میدهد. پیشفرض، چاپ بخش پرسش به صورت توضیح است.
- +raflag, +noraflag
- این گزینه بیت RA (امکان بازگشت یا Recursion Available) را در پرسوجو تنظیم [یا پاک] میکند. پیشفرض +noraflag است. این بیت توسط کارساز برای QUERY نادیده گرفته میشود.
- +rdflag, +nordflag
- این گزینه مترادفی برای +recurse، +norecurse است.
- +recurse, +norecurse
- این گزینه تنظیم بیت RD (درخواست بازگشت یا recursion desired) را در پرسوجو تغییر میدهد. این بیت به طور پیشفرض تنظیم شده است، به این معنی که dig معمولاً پرسوجوهای بازگشتی ارسال میکند. هنگامی که از گزینه پرسوجوی +nssearch یا +trace استفاده میشود، بازگشت به طور خودکار غیرفعال میگردد.
- +retry=T
- این گزینه تعداد دفعات تلاش مجدد پرسوجوهای UDP و TCP به کارساز را به جای مقدار پیشفرض ۲، به T تنظیم میکند. بر خلاف +tries، این مقدار شامل پرسوجوی اولیه نمیشود.
- +rrcomments, +norrcomments
- این گزینه نمایش توضیحات مربوط به هر رکورد را در خروجی روشن یا خاموش میکند (برای نمونه، اطلاعات کلید خوانا برای انسان درباره رکوردهای DNSKEY). پیشفرض این است که توضیحات رکورد چاپ نشوند مگر اینکه حالت چندخطی (multiline) فعال باشد.
- +search, +nosearch
- این گزینه
از فهرست
جستجوی
تعریفشده
توسط
دستورالعمل
searchlist یا domain در resolv.conf
(در صورت
وجود)
استفاده
میکند [یا
استفاده
نمیکند].
فهرست
جستجو به
طور
پیشفرض
استفاده
نمیشود.
مقدار ndots از resolv.conf (پیشفرض 1)، که ممکن است توسط +ndots بازنویسی شود، تعیین میکند که آیا نام به عنوان یک نام نسبی در نظر گرفته شود و در نتیجه آیا جستجو انجام شود یا خیر.
- +short, +noshort
- این گزینه تعیین میکند که آیا پاسخی کوتاه و موجز ارائه شود یا خیر. پیشفرض، چاپ پاسخ با جزئیات کامل است. این گزینه همواره دارای اثر سراسری است؛ نمیتوان آن را به طور سراسری تنظیم کرد و سپس برای هر پرسوجوی مجزا بازنویسی نمود.
- +showbadcookie, +noshowbadcookie
- این گزینه تعیین میکند که آیا پیش از تلاش مجدد برای درخواست، پیام حاوی کد پاسخ BADCOOKIE نمایش داده شود یا خیر. پیشفرض نمایش ندادن پیامها است.
- +showbadvers, +noshowbadvers
- این گزینه تعیین میکند که آیا پیش از تلاش مجدد برای درخواست، پیام حاوی کد پاسخ BADVERS نمایش داده شود یا خیر. پیشفرض نمایش ندادن پیامها است.
- +showsearch, +noshowsearch
- این گزینه جستجویی را با نمایش نتایج میانی انجام میدهد [یا انجام نمیدهد].
- +split=W
- این گزینه فیلدهای طولانی با قالب هگزادسیمال یا Base64 در رکوردهای منبع را به بخشهایی با W کاراکتر (که در آن W به نزدیکترین مضرب ۴ به سمت بالا گرد میشود) تقسیم میکند. گزینه +nosplit یا +split=0 باعث میشود فیلدها اصلاً تقسیم نشوند. پیشفرض ۵۶ کاراکتر است، یا در صورت فعال بودن حالت چندخطی، ۴۴ کاراکتر خواهد بود.
- +stats, +nostats
- این گزینه چاپ آمارها را فعال یا غیرفعال میکند: زمان انجام پرسوجو، اندازه پاسخ و غیره. رفتار پیشفرض چاپ آمار پرسوجو به صورت توضیح پس از هر جستجو است.
- +subnet=addr[/prefix-length], +nosubnet
- این گزینه
یک گزینه EDNS
CLIENT-SUBNET را با
آدرس IP یا
پیشوند
شبکه
مشخصشده
ارسال
میکند [یا
ارسال
نمیکند].
دستور dig +subnet=0.0.0.0/0 یا به طور خلاصه dig +subnet=0 یک گزینه EDNS CLIENT-SUBNET با آدرس خالی و طول پیشوند مبدأ صفر ارسال میکند که به تحلیلگر اعلام مینماید اطلاعات آدرس کلاینت نباید هنگام تحلیل این پرسوجو استفاده شود.
- +tcflag, +notcflag
- این گزینه بیت TC (کوتاهشدگی یا TrunCation) را در پرسوجو تنظیم [یا پاک] میکند. پیشفرض +notcflag است. این بیت توسط کارساز برای QUERY نادیده گرفته میشود.
- +tcp, +notcp
- این گزینه مشخص میکند که آیا هنگام پرسوجو از کارسازهای نام از TCP استفاده شود یا خیر. رفتار پیشفرض استفاده از UDP است مگر اینکه پرسوجویی از نوع any یا ixfr=N درخواست شده باشد که در این حالت پیشفرض TCP است. پرسوجوهای AXFR همیشه از TCP استفاده میکنند. برای جلوگیری از تلاش مجدد روی TCP هنگامی که TC=1 از یک پرسوجوی UDP بازگردانده میشود، از +ignore استفاده کنید.
- +timeout=T
- این گزینه مهلت زمانی یک پرسوجو را به T ثانیه تنظیم میکند. مهلت زمانی پیشفرض ۵ ثانیه است. تلاش برای تنظیم T به کمتر از ۱، بدون اخطار روی ۱ تنظیم میشود.
- +tls, +notls
- این گزینه مشخص میکند که آیا هنگام پرسوجو از کارسازهای نام از DNS روی TLS (DoT) استفاده شود یا خیر. هنگامی که این گزینه استفاده میشود، شماره پورت به طور پیشفرض روی ۸۵۳ قرار میگیرد.
- +tls-ca[=file-name], +notls-ca
- این گزینه اعتبارسنجی گواهی TLS کارساز راه دور را برای پروتکلهای انتقال DNS مبتنی بر TLS فعال میکند. گواهیهای مراجع صدور گواهی (CA) از فایل PEM مشخصشده (file-name) بارگیری میشوند. اگر فایل مشخص نشود، از گواهیهای پیشفرض در مخزن گواهیهای سراسری استفاده میشود.
- +tls-certfile=file-name, +tls-keyfile=file-name, +notls-certfile, +notls-keyfile
- این گزینهها وضعیت احراز هویت کلاینت مبتنی بر گواهی را برای پروتکلهای انتقال DNS متکی بر TLS تنظیم میکنند. انتظار میرود فایل زنجیره گواهی و فایل کلید خصوصی هر دو با قالب PEM باشند. هر دو گزینه باید به طور همزمان مشخص شوند.
- +tls-hostname=hostname, +notls-hostname
- این گزینه باعث میشود dig هنگام اعتبارسنجی گواهی TLS کارساز راه دور از نام میزبان ارائهشده استفاده کند. در غیر این صورت، از نام کارساز DNS استفاده میشود. اگر +tls-ca مشخص نشده باشد، این گزینه تأثیری ندارد.
- +trace, +notrace
- این گزینه
ردیابی
مسیر تفویض
اختیار (delegation path)
را از
کارسازهای
نام ریشه
برای نام
مورد جستجو
روشن یا
خاموش
میکند.
ردیابی به
طور
پیشفرض
غیرفعال
است. هنگامی
که ردیابی
فعال باشد،
dig برای
تحلیل نام
مورد جستجو
پرسوجوهای
تکرارشونده
(iterative) انجام
میدهد. این
ابزار
ارجاعات
کارسازهای
ریشه را
دنبال کرده
و پاسخ هر
کارسازی را
که برای
تحلیل
جستجو
استفاده
شده نمایش
میدهد.
اگر @server نیز مشخص شده باشد، تنها بر پرسوجوی اولیه برای کارسازهای نام منطقه ریشه تأثیر میگذارد.
هنگام تنظیم +trace، گزینه +dnssec نیز برای شبیهسازی بهتر پرسوجوهای پیشفرض از یک کارساز نام تنظیم میشود.
توجه داشته باشید که گزینه delv +ns نیز میتواند برای ردیابی تحلیل یک نام از ریشه استفاده شود (delv(1) <#std-iscman-delv> را ببینید).
- +tries=T
- این گزینه تعداد دفعات تلاش برای پرسوجوهای UDP و TCP به کارساز را به جای مقدار پیشفرض ۳، به T تنظیم میکند. اگر T کمتر یا مساوی صفر باشد، تعداد تلاشها بدون اخطار به ۱ گرد میشود.
- +ttlid, +nottlid
- این گزینه TTL را هنگام چاپ رکورد نمایش میدهد [یا نمایش نمیدهد].
- +ttlunits, +nottlunits
- این گزینه مقدار TTL را در واحدهای زمانی خوانا و کاربرپسند شامل s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز) و w (هفته) نمایش میدهد [یا نمایش نمیدهد]. این گزینه مستلزم +ttlid است.
- +unknownformat, +nounknownformat
- این گزینه تمام RDATAها را در قالب نمایش نوع ناشناخته RR (RFC 3597 https://datatracker.ietf.org/doc/html/rfc3597.html) چاپ میکند. پیشفرض، چاپ RDATA برای انواع شناختهشده در قالب نمایش همان نوع است.
- +vc, +novc
- این گزینه هنگام پرسوجو از کارسازهای نام از TCP استفاده میکند [یا استفاده نمیکند]. این نحو جایگزین برای +tcp به منظور سازگاری با نسخههای پیشین ارائه شده است. vc مخفف "virtual circuit" (مدار مجازی) است.
- +yaml, +noyaml
- در صورت فعال بودن، این گزینه پاسخها را (و در صورت استفاده از +qr، پرسوجوهای ارسالی را نیز) در قالب دقیق و تفصیلی YAML چاپ میکند.
- +zflag, +nozflag
- این گزینه آخرین بیت پرچم تخصیصنیافته هدر DNS را در یک پرسوجوی DNS تنظیم [یا پاک] میکند. این پرچم به طور پیشفرض خاموش است.
چندین پرسوجو (MULTIPLE QUERIES)
پیادهسازی dig در BIND 9 از تعیین چندین پرسوجو در خط فرمان پشتیبانی میکند (علاوه بر پشتیبانی از گزینه فایل دستهای -f). هر یک از این پرسوجوها میتوانند با مجموعه پرچمها، گزینهها و فلگهای پرسوجوی مخصوص به خود ارائه شوند.
در این حالت، هر آرگومان query نمایانگر یک پرسوجوی جداگانه در نحو خط فرمان شرحدادهشده در بالا است. هر کدام شامل هر یک از گزینهها و پرچمهای استاندارد، نام مورد نظر برای جستجو، یک نوع و کلاس پرسوجوی اختیاری و هرگونه گزینه پرسوجویی است که باید روی آن پرسوجو اعمال شود.
همچنین میتوان یک مجموعه سراسری از گزینههای پرسوجو را که باید روی تمام پرسوجوها اعمال شوند مشخص کرد. این گزینههای سراسری پرسوجو باید پیش از اولین چندتایی (tuple) از نام، کلاس، نوع، گزینهها، پرچمها و گزینههای پرسوجوی ارائهشده در خط فرمان قرار گیرند. هر گزینه سراسری پرسوجو (به جز گزینههای +cmd و +short) میتواند توسط یک مجموعه گزینه پرسوجوی مختص به آن پرسوجو بازنویسی شود. برای نمونه:
dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
نشان میدهد که چگونه میتوان از dig در خط فرمان برای انجام سه جستجو استفاده کرد: یک پرسوجوی ANY برای www.isc.org، یک جستجوی معکوس برای 127.0.0.1، و یک پرسوجو برای رکوردهای NS دامنه isc.org. یک گزینه سراسری پرسوجوی +qr اعمال شده است، به طوری که dig پرسوجوی اولیهای را که برای هر جستجو انجام داده نمایش میدهد. پرسوجوی نهایی دارای گزینه محلی پرسوجوی +noqr است، بدین معنا که dig هنگام جستجوی رکوردهای NS برای isc.org، پرسوجوی اولیه را چاپ نمیکند.
کدهای بازگشتی (RETURN CODES)
کدهای بازگشتی dig عبارتند از:
- 0
- پاسخ DNS دریافت شد، از جمله وضعیت NXDOMAIN
- 1
- خطای کاربرد و نحوه استفاده
- 8
- عدم امکان باز کردن فایل دستهای (batch file)
- 9
- عدم دریافت پاسخ از کارساز
- 10
- خطای داخلی
فایلها (FILES)
/etc/resolv.conf
${HOME}/.digrc
مثالها (EXAMPLES)
تنها نمایش آدرس(های) IP برای example.com:
dig +short example.com
پرسوجو از کارساز نام f.gtld-servers.net برای example.com:
dig @f.gtld-servers.net example.com
جستجوی رکورد TXT برای example.com:
dig txt example.com
جستجوی نام میزبان برای یک IP با DNS معکوس:
dig -x 192.0.2.1
نمایش خروجی بسیار کوتاهتر تنها با نام، نوع رکورد، TTL و مقدار برای هر پاسخ:
dig +noall +answer example.com
همچنین ببینید (SEE ALSO)
delv(1) <#std-iscman-delv>, host(1) <#std-iscman-host>, named(8) <#std-iscman-named>, dnssec-keygen(8) <#std-iscman-dnssec-keygen>, RFC 1035 https://datatracker.ietf.org/doc/html/rfc1035.html.
اشکالات (BUGS)
احتمالاً گزینههای پرسوجوی بیش از حد زیادی وجود دارد.
نویسندگان (AUTHORS)
Internet Systems Consortium
کپیرایت (COPYRIGHT)
2026, Internet Systems Consortium
| 2026-08-19 | 9.20.27 |