DIG(1) BIND 9 DIG(1)

dig - ابزار کاوشگر و پرس‌وجوی ساختاریافته نام دامنه DNS

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...]

ابزار 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." استفاده نمایید.

یک فراخوانی متداول dig به صورت زیر است:

dig @server name type

که در آن:

نام یا آدرس IP کارساز نامی است که باید مورد پرس‌وجو قرار گیرد. این مقدار می‌تواند یک آدرس IPv4 با تفکیک نقطه (dotted-decimal) یا یک آدرس IPv6 با تفکیک دو‌نقطه (colon-delimited) باشد. هنگامی که آرگومان server یک نام میزبان باشد، dig پیش از پرس‌وجو از آن کارساز نام، ابتدا آن نام را تحلیل (resolve) می‌کند.

اگر هیچ آرگومان server ارائه نشود، dig به فایل /etc/resolv.conf مراجعه می‌کند؛ اگر آدرسی در آن یافت شود، از کارساز نام موجود در آن آدرس پرس‌وجو می‌نماید. اگر هر یک از گزینه‌های -4 یا -6 استفاده شده باشند، تنها آدرس‌های مربوط به همان پروتکل انتقال بررسی می‌شوند. اگر هیچ آدرس قابل استفاده‌ای یافت نشود، dig پرس‌وجو را به میزبان محلی ارسال می‌کند. پاسخ دریافتی از کارساز نامی که پاسخ می‌دهد نمایش داده خواهد شد.

نام رکورد منبعی (resource record) است که باید جستجو شود.
نوع پرس‌وجوی درخواستی را مشخص می‌کند - مانند ANY، A، MX، SIG و غیره. type می‌تواند هر نوع پرس‌وجوی معتبری باشد. اگر آرگومان type مشخص نشود، dig یک جستجو برای رکورد A انجام می‌دهد.

-4
این گزینه مشخص می‌کند که تنها باید از IPv4 استفاده شود.
-6
این گزینه مشخص می‌کند که تنها باید از IPv6 استفاده شود.
این گزینه آدرس IP مبدأ پرس‌وجو را تعیین می‌کند. مقدار address باید یک آدرس معتبر روی یکی از رابط‌های شبکه میزبان یا "0.0.0.0" یا "::" باشد. می‌توان با افزودن #port یک پورت اختیاری را نیز مشخص کرد.
این گزینه کلاس پرس‌وجو را تعیین می‌کند. کلاس پیش‌فرض class برابر با IN است؛ سایر کلاس‌ها شامل HS برای رکوردهای Hesiod یا CH برای رکوردهای Chaosnet هستند.
این گزینه حالت دسته‌ای (batch mode) را فعال می‌کند که در آن dig فهرستی از درخواست‌های جستجو را برای پردازش از file داده‌شده می‌خواند. هر خط در فایل باید به همان روشی تنظیم شود که یک پرس‌وجو در رابط خط فرمان به dig داده می‌شود.
خلاصه‌ای از راهنمای نحوه استفاده را چاپ می‌کند.
این گزینه به 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) انجام می‌شود.
این گزینه اشکال‌زدایی مصرف حافظه را فعال می‌کند.
این گزینه پرس‌وجو را به جای پورت پیش‌فرض ۵۳، به یک پورت غیراستاندارد در کارساز ارسال می‌کند. این گزینه برای آزمایش کارساز نامی که برای گوش دادن به پرس‌وجوها روی یک شماره پورت غیراستاندارد پیکربندی شده، به کار می‌رود.
این گزینه نام دامنه مورد پرس‌وجو را مشخص می‌کند. این گزینه برای متمایز کردن name از سایر آرگومان‌ها مفید است.
این گزینه مشخص می‌کند که گزینه‌های موجود در ${HOME}/.digrc نباید خوانده شوند. این گزینه برای اسکریپت‌هایی که به رفتاری قابل پیش‌بینی نیاز دارند مفید است.
این گزینه نوع رکورد منبع مورد پرس‌وجو را مشخص می‌کند که می‌تواند هر نوع پرس‌وجوی معتبری باشد. اگر نوع رکورد منبع در 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 شرح داده شده نمایش می‌یابد.

این گزینه مشخص می‌کند که زمان پرس‌وجو بر حسب میکروثانیه به جای میلی‌ثانیه چاپ شود.
این گزینه شماره نسخه را چاپ کرده و خارج می‌شود.
این گزینه جستجوهای معکوس ساده‌شده را برای نگاشت آدرس‌ها به نام‌ها تنظیم می‌کند. آرگومان addr یک آدرس IPv4 با تفکیک نقطه یا یک آدرس IPv6 با تفکیک دو‌نقطه است. هنگامی که از گزینه -x استفاده می‌شود، نیازی به ارائه آرگومان‌های name، class و type نیست. dig به طور خودکار جستجویی را برای نامی مانند 94.2.0.192.in-addr.arpa انجام می‌دهد و نوع و کلاس پرس‌وجو را به ترتیب روی PTR و IN تنظیم می‌کند. آدرس‌های IPv6 با استفاده از قالب نیم‌بایت (nibble format) تحت دامنه IP6.ARPA جستجو می‌شوند.
این گزینه پرس‌وجوها را با استفاده از TSIG و با کلید احراز هویت داده‌شده امضا می‌کند. شناسه keyname نام کلید و secret عبارت رمزی مشترک کدگذاری‌شده با Base64 است. شناسه hmac نام الگوریتم کلید است؛ گزینه‌های معتبر عبارتند از hmac-md5، hmac-sha1، hmac-sha224، hmac-sha256، hmac-sha384 یا hmac-sha512. اگر hmac مشخص نشود، مقدار پیش‌فرض hmac-md5 است؛ اگر MD5 غیرفعال شده باشد، پیش‌فرض hmac-sha256 خواهد بود.

نکته:

بهتر است فقط از گزینه -k به جای گزینه -y استفاده شود، زیرا با گزینه -y عبارت رمزی مشترک به صورت متن آشکار به عنوان یک آرگومان خط فرمان ارائه می‌شود. این موضوع ممکن است در خروجی ps1 یا در فایل تاریخچه (history) پوسته کاربر قابل مشاهده باشد.

ابزار 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 تنظیم [یا پاک] می‌کند. این پرچم به طور پیش‌فرض خاموش است.

پیاده‌سازی 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، پرس‌وجوی اولیه را چاپ نمی‌کند.

کدهای بازگشتی dig عبارتند از:

0
پاسخ DNS دریافت شد، از جمله وضعیت NXDOMAIN
1
خطای کاربرد و نحوه استفاده
8
عدم امکان باز کردن فایل دسته‌ای (batch file)
9
عدم دریافت پاسخ از کارساز
10
خطای داخلی

/etc/resolv.conf

${HOME}/.digrc

تنها نمایش آدرس(های) 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

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.

احتمالاً گزینه‌های پرس‌وجوی بیش از حد زیادی وجود دارد.

Internet Systems Consortium

2026, Internet Systems Consortium

2026-08-19 9.20.27