sdig¶
Synopsis¶
sdig <IP-ADDRESS-OR-DOH-URL> <PORT> <QNAME> <QTYPE> [OPTION]…
Description¶
sdig sends a DNS query to IP-ADDRESS-OR-DOH-URL on port PORT and displays the answer in a formatted way.
If the address starts with an h, it is assumed to be a DoH endpoint, and PORT is ignored.
If qname and qtype are both - and tcp is used, multiple lines are read from stdin, where each line contains a qname and a type.
If the address is stdin, a DNS packet is read from stdin instead of from the network, and PORT is ignored.
All input is literal and case-sensitive.
Queries need option recurse to expect a resource record reply if the query target is not known to be the authoritative server for that record.
Options¶
These options can be added to the commandline in any order.
- class <CLASSNUM>¶
Send the query in the numbered class (like 3 for CHAOS) instead of the default 1 (for IN).
- dnssec¶
Set the DO bit to request DNSSEC information.
- ednssubnet <SUBNET>¶
Send SUBNET in the edns-client-subnet option. If this option is not set, no edns-client-subnet option is set in the query.
- hidesoadetails¶
Don’t show the SOA serial in the response.
- hidettl¶
Replace TTLs with
[ttl]in the response.
- proxy <TCP_OR_UDP> <SRC> <DST>¶
Wrap query in PROXYv2 protocol with these parameters. The first parameter accepts 0 for UDP and 1 for TCP. The second and third take IP addresses and port.
- recurse¶
Set the RD bit in the question.
- showflags¶
Show the NSEC3 flags in the response (they are hidden by default).
- dumpluaraw¶
Display record contents in a form suitable for dnsdist’s
SpoofRawAction.
- tcp¶
Use TCP instead of UDP to send the query.
- dot¶
use DoT instead of UDP to send a query. Implies tcp.
- insecure¶
when using DoT, do not validate the server certificate.
- fastOpen¶
when using TCP or, DoT, enable TCP Fast Open
- subjectName <NAME>¶
when using DoT, verify the server certificate is issued for NAME. The
opensslprovider will accept an empty name and still make sure the certificate is issued by a trusted CA,gnutlswill only do the validation if a name is given. Default is the empty name. Also, note that older provide libraries might not validate at all.
- caStore <FILE>¶
when using DoT, read the trusted CA certificates from FILE. Default is to use the system provided CA store.
- tlsProvider <NAME>¶
when using DoT, use TLS provider NAME. Currently supported (if compiled in):
opensslandgnutls. Default isopensslif available.
- opcode <OPNUM>¶
Use opcode OPNUM instead of 0 (Query). For example,
sdig 192.0.2.1 53 example.com SOA opcode 4sends aNOTIFY.
- cookie <COOKIE>¶
if COOKIE is
-send a random client cookie. Otherwise, send the given cookie, which should be a hex string received from a server earlier.
- traceid <TRACEID>¶
include a TraceID and an empty SpanID value into the EDNS data. If TRACEID is
-, a random TraceID is generated; otherwise, it is a hex string.
Examples¶
Simple queries to local resolvers:
sdig 127.0.0.1 53 example.com AAAA recurse
sdig ::1 53 example.com A recurse
Query to a DNS-over-HTTPS server requesting dnssec and recursion:
sdig https://dns.example.net/dns-query 443 example.com A dnssec recurse