SDIG(1)
π¦ SDIG(1) β PowerDNS Authoritative Server π¦
okay bestie, so this is sdig, from the PowerDNS Authoritative Server era, and honestly? it's giving "dig but make it yours". let's get into it π
β¨ NAME β¨
sdig β perform a DNS query and show the results π
β¨ SYNOPSIS β¨
sdig IP-ADDRESS-OR-DOH-URL PORT QNAME QTYPE [OPTION]
β¨ DESCRIPTION β¨
so sdig sends a DNS query to IP-ADDRESS-OR-DOH-URL on port PORT, and then shows you the answer in a formatted way. cute, right? π
if the address starts with an h, it's assumed to be a DoH endpoint, and PORT just gets ignored entirely (not me, not my port πΈ). if qname and qtype are both - and tcp is used, multiple lines get read from stdin, where each line contains a qname and a type. and if the address is stdin, a DNS packet is read from stdin instead of from the network, and PORT is ignored β yes, again, PORT said "not today" π.
all input is literal and case-sensitive, periodt. no vibes-based parsing here, fr fr.
one thing, and this is important bestie: queries need the recurse option to expect a resource record reply if the query target is not known to be the authoritative server for that record. like, if you don't know them like that, ask nicely. π
β¨ OPTIONS β¨
these options can be added to the commandline in any order. go off, honestly. π
class CLASSNUMβ send the query in the numbered class (like3for CHAOS) instead of the default1(for IN). switching classes, main character behavior πdnssecβ set the DO bit to request DNSSEC information. get that dnssec tea ββ¨ednssubnet SUBNETβ sendSUBNETin the edns-client-subnet option. if this option is not set, no edns-client-subnet option is set in the query. if you don't set it, it simply doesn't happen β that's the whole thing π«Άhidesoadetailsβ don't show the SOA serial in the response. privacy era π₯hidttlβ replace TTLs with[ttl]in the response. ttl? never heard of her πproxy TCP? SRC DSTβ wrap query in PROXYv2 protocol with these parameters. the first parameter accepts0for UDP and1for TCP. the second and third take IP addresses and port. very "we come as a package deal" of it πrecurseβ set the RD bit in the question. asking them to go find it for you, lowkey iconicshowflagsβ show the NSEC3 flags in the response (they are hidden by default). unmasking the truth πdumpluarawβ display record contents in a form suitable for dnsdist'sSpoofRawAction. raw and unfiltered, just like the group chat πtcpβ use TCP instead of UDP to send the query. reliable queen behavior πdotβ use DoT instead of UDP to send a query. impliestcp. yes it comes with a plus-one π§insecureβ when using DoT, do not validate the server certificate. bestie this is literally the "trust me bro" flag, be careful ππ₯fastOpenβ when using TCP or, DoT, enable TCP Fast Open. zoom zoom β‘subjectName nameβ when using DoT, verify the server certificate is issued forname. the openssl provider will accept an empty name and still make sure the certificate is issued by a trusted CA, gnutls will 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. π so yeah, "might not validate at all" β read that twice, bestie, that's a real caveat, not a vibe.caStore fileβ when using DoT, read the trusted CA certificates fromfile. default is to use the system provided CA store. πtlsProvider nameβ when using DoT, use TLS providername. currently supported (if compiled in):opensslandgnutls. default isopensslif available. pick your fighter πΈopcode OPNUMβ use opcodeOPNUMinstead of0(Query). for example,sdig 192.0.2.1 53 example.com SOA opcode 4sends a NOTIFY. look at us doing NOTIFY things β¨cookie COOKIEβ ifCOOKIEis-send a random client cookie. otherwise, send the given cookie, which should be a hex string received from a server earlier. leftover cookies but make it DNS πͺtraceid TraceIDβ include aTraceIDand an emptySpanIDvalue into the EDNS data. ifTraceIDis-, a randomTraceIDis generated; otherwise, it is a hex string. tracking the lore π
β¨ 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
β¨ AUTHOR β¨
PowerDNS.COM BV π
β¨ COPYRIGHT β¨
PowerDNS.COM BV π
and that's the whole page, bestie! π this one's dated Aug 05, 2026, it's the SDIG(1) page, and it comes to you straight from the PowerDNS Authoritative Server and PowerDNS.COM BV β love that for them, slay, bye π β¨
π¦ where this page comes from
- alpine 3.24: pdns-doc 5.0.7-r0 Β· GPL-2.0-only WITH OpenSSL-Exception
- epel 10: pdns-tools 5.0.7-1.el10_3 Β· GPL-2.0-only
- epel 9: pdns-tools 5.0.7-1.el9 Β· GPL-2.0-only
- fedora 43: pdns-tools 5.0.7-1.fc43 Β· GPL-2.0-only
- fedora 44: pdns-tools 5.0.7-1.fc44 Β· GPL-2.0-only
- ubuntu stonking: pdns-tools 5.1.4-1 Β· GPL-2.0-only WITH OpenSSL Exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms