KDIG(1) Knot DNS KDIG(1)

kdig - ابزار پیشرفته پرس‌وجوی DNS

kdig [تنظیمات-عمومی] [پرس‌وجو [تنظیمات]]...

kdig -h

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

پرس‌وجو
name | -q name | -x address | -G tapfile
تنظیمات-عمومی, تنظیمات
[query_class] [query_type] [@server]... [گزینه‌ها]
نام دامنه‌ای است که باید جستجو شود.
نام دامنه یا یک نشانی IPv4 یا IPv6 از سرویس‌دهنده نام است که پرس‌وجو به آن ارسال می‌شود. یک پورت اضافی را می‌توان با استفاده از ساختار address:port (برای نشانی IPv6 به‌صورت [address]:port)، address@port یا address#port مشخص کرد. مقداری که با نویسه «/» آغاز شود، به‌عنوان یک مسیر مطلق سوکت یونیکس (UNIX socket) در نظر گرفته می‌شود. اگر هیچ سرویس‌دهنده‌ای مشخص نشود، از سرویس‌دهنده‌های موجود در /etc/resolv.conf استفاده می‌شود.

اگر هیچ آرگومانی ارائه نشود، kdig یک پرس‌وجوی NS برای ناحیه ریشه (root zone) ارسال می‌کند.

یک query_class می‌تواند نام کلاس DNS (مانند IN، CH) یا مشخصه کلاس عمومی CLASSXXXXX باشد که در آن XXXXX شماره کلاس ده‌دهی متناظر است. کلاس پیش‌فرض پرس‌وجو IN است.

یک query_type می‌تواند نوع رکورد منبع DNS (مانند A، AAAA، NS، SOA، DNSKEY، ANY و غیره) یا یکی از موارد زیر باشد:

مشخصه نوع پرس‌وجوی عمومی که در آن XXXXX شماره نوع ده‌دهی متناظر است.
درخواست انتقال کامل ناحیه (Full zone transfer).
درخواست انتقال افزایشی ناحیه (Incremental zone transfer) برای شماره سریال SOA مشخص‌شده (یعنی تمام به‌روزرسانی‌های ناحیه از نسخه مشخص‌شده بازگردانده می‌شوند).
پیام اعلان (Notify) با مشخص بودن راهنمای شماره سریال SOA.
پیام اعلان (Notify) بدون مشخص بودن راهنمای شماره سریال SOA.

نوع پیش‌فرض پرس‌وجو A است.

-4
فقط از پروتکل IPv4 استفاده می‌کند.
-6
فقط از پروتکل IPv6 استفاده می‌کند.
نشانی IP مبدأ پرس‌وجو را روی address تنظیم می‌کند. نشانی باید یک نشانی معتبر برای رابط محلی یا :: یا 0.0.0.0 باشد. یک پورت اختیاری را می‌توان در همان قالب مقدار server مشخص کرد.
مشخص کردن صریح query_class. مقادیر ممکن را در بالا ببینید.
فعال‌سازی پیام‌های اشکال‌زدایی (Debug).
فعال‌سازی پیام‌های اشکال‌زدایی با جزئیات بیشتر (چاپ Subject Alternative Name).
چاپ راهنمای برنامه.
استفاده از کلید TSIG ذخیره‌شده در پرونده keyfile برای احراز هویت درخواست. پرونده باید حاوی کلید با همان قالبی باشد که توسط گزینه -y پذیرفته می‌شود.
تنظیم شماره پورت یا نام سرویس سرویس‌دهنده نام برای ارسال پرس‌وجو به آن. پورت پیش‌فرض 53 است.
تنظیم نام پرس‌وجو. یک حالت صریح برای تعیین name. اگر هیچ name ارائه نشود، بخش پرسش (question section) خالی تنظیم می‌شود.
مشخص کردن صریح query_type. مقادیر ممکن را در بالا ببینید.
چاپ نسخه برنامه. گزینه -VV باعث می‌شود برنامه خلاصه پیکربندی زمان کامپایل را چاپ کند.
ارسال یک پرس‌وجوی معکوس (PTR) برای نشانی IPv4 یا IPv6 address. نام، کلاس و نوع صحیح به‌طور خودکار تنظیم می‌شوند.
استفاده از کلید TSIG با نام name برای احراز هویت درخواست. بخش alg الگوریتم را مشخص می‌کند (پیش‌فرض hmac-sha256 است) و key راز مشترک کدگذاری‌شده با Base64 را مشخص می‌کند.
برون‌بری ردگیری dnstap پیام‌های پرس‌وجو و پاسخ دریافت شده به پرونده tapfile.
تولید خروجی پیام از پرونده dnstap ذخیره‌شده قبلی tapfile.
+[no]multiline
شکستن رکوردهای طولانی به چندین خط و بهبود خوانایی برای انسان.
+[no]short
فقط نمایش داده‌های رکورد.
+[no]generic
استفاده از قالب نمایش عمومی هنگام چاپ انواع و داده‌های رکوردهای منبع.
+[no]crypto
نمایش مقادیر کلیدها و امضاهای DNSSEC به‌صورت base64 به‌جای حذف آن‌ها. (*)
+[no]aaflag
تنظیم فلگ AA.
+[no]tcflag
تنظیم فلگ TC.
+[no]rdflag
تنظیم فلگ RD. (*)
+[no]recurse
همانند +[no]rdflag
+[no]raflag
تنظیم فلگ RA.
+[no]zflag
تنظیم بیت فلگ صفر.
+[no]adflag
تنظیم فلگ AD. (*)
+[no]cdflag
تنظیم فلگ CD.
+[no]doflag
تنظیم فلگ DO.
+[no]dnssec
همانند +[no]doflag
+[no]all
نمایش تمام بخش‌های بسته.
+[no]qr
نمایش بسته پرس‌وجو.
+[no]header
نمایش سرآیند بسته. (*)
+[no]comments
نمایش نام بخش‌های توضیح‌دار. (*)
+[no]opt
نمایش بخش شبه‌رکورد EDNS. (*)
+[no]opttext
تلاش برای نمایش گزینه‌های ناشناخته EDNS به‌صورت متن.
+[no]optpresent
نمایش EDNS در قالب نمایشی بر اساس مشخصات نسخه draft-peltan-edns-presentation-format-01 https://www.ietf.org/archive/id/draft-peltan-edns-presentation-format-01.html.
+[no]question
نمایش بخش پرسش (Question). (*)
+[no]answer
نمایش بخش پاسخ (Answer). (*)
+[no]authority
نمایش بخش مرجعیت (Authority). (*)
+[no]additional
نمایش بخش اضافی (Additional). (*)
+[no]tsig
نمایش بخش شبه‌رکورد TSIG. (*)
+[no]stats
نمایش آمارهای پایانی بسته. (*)
+[no]class
نمایش کلاس DNS. (*)
+[no]ttl
نمایش مقدار TTL. (*)
+[no]tcp
استفاده از پروتکل TCP (پیش‌فرض برای پرس‌وجوی استاندارد UDP و برای AXFR/IXFR پروتکل TCP است).
+[no]fastopen
استفاده از TCP Fast Open.
+[no]ignore
عدم استفاده خودکار از TCP در صورت دریافت پاسخ بریده‌شده (Truncated).
+[no]keepopen
باز نگه داشتن اتصال TCP برای پرس‌وجوی بعدی در صورت یکسان بودن پیکربندی اتصال. این مورد برای عملیات‌های +tcp، +tls، +https و +quic اعمال می‌شود. اتصال فقط در چارچوب یک فراخوانی kdig در نظر گرفته می‌شود.
+[no]tls
استفاده از TLS با نمایه حریم خصوصی فرصت‌طلبانه (RFC 7858 Section 4.1 https://datatracker.ietf.org/doc/html/rfc7858.html#section-4.1).
+[no]tls-ca[=FILE]
استفاده از TLS با اعتبارسنجی گواهی. گواهی‌های مرجع صدور گواهی (CA) از پرونده PEM مشخص‌شده بارگیری می‌شوند (در صورت عدم ارائه آرگومان، پیش‌فرض مخزن گواهی‌های سیستم است). می‌تواند چندین بار مشخص شود. اگر گزینه +tls-hostname ارائه نشود، از نام سرویس‌دهنده مقصد (در صورت تعیین) برای احراز هویت سخت‌گیرانه استفاده می‌شود.
+[no]tls-pin=BASE64
استفاده از TLS با نمایه حریم خصوصی کلید پین‌شده برون‌باند (RFC 7858 Section 4.2 https://datatracker.ietf.org/doc/html/rfc7858.html#section-4.2). مقدار PIN باید یک هش SHA-256 کدگذاری‌شده با Base64 از X.509 SubjectPublicKeyInfo باشد. می‌تواند چندین بار مشخص شود.
+[no]tls-hostname=STR
استفاده از TLS با بررسی نام هاست سرویس‌دهنده راه دور.
+[no]tls-sni=STR
استفاده از TLS با شناسه نام سرور (Server Name Indication).
+[no]tls-keyfile=FILE
استفاده از TLS با پرونده کلید کلاینت.
+[no]tls-certfile=FILE
استفاده از TLS با پرونده گواهی کلاینت.
+[no]tls-ocsp-stapling[=H]
استفاده از TLS با پاسخ منگنه‌شده معتبر OCSP برای گواهی سرور (%u یا تعیین ساعت). پاسخ‌های OCSP قدیمی‌تر از مدت مشخص‌شده نامعتبر تلقی می‌شوند.
+[no]https[=URL]
استفاده از HTTPS (DNS-over-HTTPS) در قالب سیمی (RFC 1035 Section 4.2.1 https://datatracker.ietf.org/doc/html/rfc1035.html#section-4.2.1). همچنین امکان تعیین URL=[authority][/path] که درخواست به آن ارسال خواهد شد وجود دارد. هرگونه طرح و نشانگر مرجعیت ابتدایی (مانند //) نادیده گرفته می‌شود. مرجعیت همچنین می‌تواند به‌عنوان server (با استفاده از پارامتر @) مشخص شود. اگر path مشخص شده و authority وجود نداشته باشد، از server به‌عنوان مرجعیت به همراه path مشخص‌شده استفاده می‌شود. کتابخانه libnghttp2 مورد نیاز است.
+[no]https-get
استفاده از HTTPS با متد HTTP/GET به‌جای متد پیش‌فرض HTTP/POST. کتابخانه libnghttp2 مورد نیاز است.
+[no]quic
استفاده از QUIC (DNS-over-QUIC).
+[no]nsid
درخواست شناسه سرویس‌دهنده نام (NSID).
+[no]zoneversion
درخواست نسخه ناحیه EDNS (EDNS zone version).
+[no]bufsize=B
تنظیم اندازه بافر EDNS به بایت (پیش‌فرض 1232 بایت است).
+[no]padding[=B]
استفاده از گزینه لایه پرکننده EDNS(0) برای پر کردن پرس‌وجوها، به‌صورت اختیاری تا اندازه‌ای مشخص. پیش‌فرض این است که هنگام استفاده از +tls پرس‌وجوها به میزان معقولی پر شوند، و وقتی پرس‌وجوها بدون TLS ارسال می‌شوند اصلاً پر نشوند. بدون آرگومان (یعنی صرفاً +padding) هر پرس‌وجو بدون در نظر گرفتن استفاده از TLS به میزان معقولی پر می‌شود. با +nopadding، هرگز پر نمی‌شود.
+[no]alignment[=B]
تراز کردن پرس‌وجو با پیام بلوک B-بایتی با استفاده از گزینه لایه پرکننده EDNS(0) (پیش‌فرض no است یا در صورت عدم تعیین آرگومان 128).
+[no]subnet=SUBN
تنظیم زیرشبکه کلاینت در EDNS(0) به‌صورت SUBN=addr/prefix.
+[no]edns[=N]
استفاده از نسخه EDNS (پیش‌فرض 0 است).
+[no]msgdelay=T
صبر کردن به تعداد میلی‌ثانیه مشخص پیش از دریافت هر پیام AXFR/IXFR.
+[no]timeout=T
تنظیم بازه زمانی انتظار برای پاسخ به ثانیه (پیش‌فرض 5 ثانیه است). این مهلت زمانی برای هر تلاش پرس‌وجو اعمال می‌شود. مقدار صفر یا notimeout به‌صورت نامحدود تفسیر می‌شود.
+[no]retry=N
تنظیم تعداد تکرار مجدد UDP (>=0) (پیش‌فرض 2 است). این مورد برای AXFR/IXFR اعمال نمی‌شود.
+[no]expire
تنظیم گزینه EXPIRE در EDNS.
+[no]cookie[=HEX]
پیوست کردن کوکی EDNS(0) به پرس‌وجو.
+[no]badcookie
تکرار پرس‌وجو با کوکی صحیح.
+[no]ednsopt[=CODE[:HEX]]
ارسال گزینه سفارشی EDNS. مقدار CODE کد گزینه EDNS به‌صورت ده‌دهی است و HEX یک رشته هگزادسیمال اختیاری برای مقدار گزینه EDNS است. این آرگومان می‌تواند چندین بار استفاده شود. گزینه +noednsopt تمام گزینه‌های EDNS مشخص‌شده با +ednsopt را پاک می‌کند.
+[no]proxy=SRC_ADDR[#SRC_PORT]-DST_ADDR[#DST_PORT]
افزودن سرآیند PROXYv2 با نشانی‌های مبدأ و مقصد مشخص‌شده به پرس‌وجو. پورت مبدأ پیش‌فرض 0 و پورت مقصد 53 است.
+[no]json
استفاده از JSON برای کدگذاری خروجی (RFC 8427).
+noidn
غیرفعال‌سازی تبدیل IDN به ASCII و برعکس. پشتیبانی از IDN به وجود libidn2 هنگام ساخت پروژه بستگی دارد! در صورت استفاده در تنظیمات-عمومی، تمام تبدیل‌های IDN غیرفعال می‌شوند. در صورت استفاده در تنظیمات هر پرس‌وجو، تبدیل از ASCII در خروجی برای آن پرس‌وجوی خاص غیرفعال می‌شود. توجه داشته باشید که تبدیل IDN بزرگی و کوچکی حروف نام دامنه را حفظ نمی‌کند.

به‌طور پیش‌فرض، فقط گزینه‌های مشخص‌شده با (*) فعال هستند.

گزینه‌های -k و -y نمی‌توانند به‌طور هم‌زمان استفاده شوند.

قالب پرونده کلید Dnssec-keygen پشتیبانی نمی‌شود. به‌جای آن از keymgr(8) استفاده کنید.

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

1.
دریافت رکوردهای A برای example.com:
$ kdig example.com A
2.
اجرای AXFR برای ناحیه example.com از سرویس‌دهنده 192.0.2.1:
$ kdig example.com -t AXFR @192.0.2.1
3.
دریافت رکوردهای A برای example.com از 192.0.2.1 و جستجوی معکوس برای نشانی 2001:DB8::1 از 192.0.2.2. هر دو با استفاده از پروتکل TCP:
$ kdig +tcp example.com -t A @192.0.2.1 -x 2001:DB8::1 @192.0.2.2
4.
دریافت رکورد SOA برای example.com، استفاده از TLS، استفاده از گواهی‌های سیستم، بررسی نام هاست مشخص‌شده، بررسی پین گواهی و چاپ اطلاعات اشکال‌زدایی بیشتر:
$ kdig -d @185.49.141.38 +tls-ca +tls-host=getdnsapi.net \
  +tls-pin=foxZRnIh9gZpWnl+zEiKa0EJ2rdCGroMWm02gaxSc9S= soa example.com
5.
نمونه‌های DNS بر بستر HTTPS (پیاده‌سازی‌های مختلف DoH):
$ kdig @1.1.1.1 +https example.com.
$ kdig @193.17.47.1 +https=/doh example.com.
$ kdig @8.8.4.4 +https +https-get example.com.
$ kdig @8.8.8.8 +https +tls-hostname=dns.google +fastopen example.com.
6.
اشتراک چند پرس‌وجو در یک اتصال DoT:
$ kdig @1.1.1.1 +tls +keepopen abc.example.com A mail.example.com AAAA
7.
پرس‌وجوی شناسه و نسخه سرویس‌دهنده نام مطابق با RFC 4892 https://datatracker.ietf.org/doc/html/rfc4892.html:
$ kdig @a.iana-servers.net. CH TXT id.server version.server

/etc/resolv.conf

khost(1), knsupdate(1), keymgr(8).

CZ.NIC, z.s.p.o. و مشارکت‌کنندگان https://www.knot-dns.cz

Copyright (C) CZ.NIC, z.s.p.o. and contributors

2026-06-12 3.5.5