dwww Home | Manual pages | Find package

DELV(1)                              BIND 9                             DELV(1)

NAME
       delv - DNS lookup and validation utility

SYNOPSIS
       delv  [@server] [ [-4] | [-6] ] [-a anchor-file] [-b address] [-c class]
       [-d level] [-i] [-m] [-p port#] [-q name] [-t  type]  [-x  addr]  [name]
       [type] [class] [queryopt...]

       delv [-h]

       delv [-v]

       delv [queryopt...] [query...]

DESCRIPTION
       delv is a tool for sending DNS queries and validating the results, using
       the   same   internal   resolver   and   validator  logic  as  named  <#
       std-iscman-named>.

       delv sends to a specified name server all queries needed  to  fetch  and
       validate the requested data; this includes the original requested query,
       subsequent  queries to follow CNAME or DNAME chains, queries for DNSKEY,
       and DS records to establish a chain of trust for DNSSEC  validation.  It
       does  not  perform iterative resolution, but simulates the behavior of a
       name server configured for DNSSEC validating and forwarding.

       By default, responses are validated using the built-in DNSSEC trust  an-
       chor  for the root zone ("."). Records returned by delv are either fully
       validated or were not signed. If validation fails, an explanation of the
       failure is included in the output; the validation process can be  traced
       in detail. Because delv does not rely on an external server to carry out
       validation, it can be used to check the validity of DNS responses in en-
       vironments where local name servers may not be trustworthy.

       Unless  it  is  told to query a specific name server, delv tries each of
       the servers listed in /etc/resolv.conf. If no  usable  server  addresses
       are  found, delv sends queries to the localhost addresses (127.0.0.1 for
       IPv4, ::1 for IPv6).

       When no command-line arguments or options are given, delv performs an NS
       query for "." (the root zone).

SIMPLE USAGE
       A typical invocation of delv looks like:

          delv @server name type

       where:

       server is the name or IP address of the name server to query.  This  can
              be  an IPv4 address in dotted-decimal notation or an IPv6 address
              in colon-delimited notation. When the supplied server argument is
              a hostname, delv resolves that name  before  querying  that  name
              server  (note, however, that this initial lookup is not validated
              by DNSSEC).

              If  no  server  argument  is  provided,  delv  consults  /etc/re-
              solv.conf;  if  an  address  is  found there, it queries the name
              server at that address. If either of the -4 or -6 options  is  in
              use,  then  only  addresses  for  the corresponding transport are
              tried. If no usable addresses are found, delv  sends  queries  to
              the localhost addresses (127.0.0.1 for IPv4, ::1 for IPv6).

       name   is the domain name to be looked up.

       type   indicates what type of query is required - ANY, A, MX, etc.  type
              can  be  any  valid  query type. If no type argument is supplied,
              delv performs a lookup for an A record.

OPTIONS
       -a anchor-file
              This option specifies a file from  which  to  read  an  alternate
              DNSSEC root zone trust anchor.

              By default, keys that do not match the root zone name (.) are ig-
              nored.  If  an alternate key name is desired, it can be specified
              using the +root option.

              Note: When reading trust anchors, delv treats trust-anchors, ini-
              tial-key, and static-key identically. That is, for a managed key,
              it is the  initial  key  that  is  trusted;  RFC  5011  <https://
              datatracker.ietf.org/doc/html/rfc5011.html> key management is not
              supported.  delv does not consult the managed-keys database main-
              tained by named <#std-iscman-named>. This means that if  the  de-
              fault  key built in to delv is revoked, delv must be updated to a
              newer version in order to continue validating.

       -b address
              This option sets the source IP address of the query  to  address.
              This  must be a valid address on one of the host's network inter-
              faces, or 0.0.0.0, or ::. An optional source port may  be  speci-
              fied by appending #<port>

       -c class
              This  option  sets  the  query class for the requested data. Cur-
              rently, only class "IN" is supported in delv and any other  value
              is ignored.

       -d level
              This option sets the systemwide debug level to level. The allowed
              range is from 0 to 99. The default is 0 (no debugging). Debugging
              traces  from  delv  become  more  verbose  as the debug level in-
              creases. See the +mtrace, +rtrace, and +vtrace options below  for
              additional debugging details.

       -h     This option displays the delv help usage output and exits.

       -i     This  option  sets  insecure mode, which disables internal DNSSEC
              validation. (Note, however, that this does not set the CD bit  on
              upstream  queries.  If  the  server  being  queried is performing
              DNSSEC validation, then it does not return invalid data; this can
              cause delv to time out. When it is necessary to  examine  invalid
              data    to   debug   a   DNSSEC   problem,   use   dig   +cd   <#
              cmdoption-dig-arg-cd>.)

       -m     This option enables memory usage debugging.

       -p port#
              This option specifies a destination port to use for queries,  in-
              stead  of  the  standard  DNS port number 53. This option is used
              with a name server that has been configured to listen for queries
              on a non-standard port number.

       -q name
              This option sets the query name to name. While the query name can
              be specified without using the -q option, it is sometimes  neces-
              sary  to  disambiguate  names from types or classes (for example,
              when looking up the name "ns", which could be  misinterpreted  as
              the type NS, or "ch", which could be misinterpreted as class CH).

       -t type
              This  option  sets the query type to type, which can be any valid
              query type supported in BIND 9 except  for  zone  transfer  types
              AXFR  and  IXFR.  As  with  -q,  this  is  useful  to distinguish
              query-name types or classes when they are ambiguous. It is  some-
              times necessary to disambiguate names from types.

              The  default  query type is "A", unless the -x option is supplied
              to indicate a reverse lookup, in which case it is "PTR".

       -v     This option prints the delv version and exits.

       -x addr
              This option performs a reverse lookup, mapping an  address  to  a
              name.  addr  is  an IPv4 address in dotted-decimal notation, or a
              colon-delimited IPv6 address. When -x is used, there is  no  need
              to  provide  the  name or type arguments; delv automatically per-
              forms a lookup for a name like 11.12.13.10.in-addr.arpa and  sets
              the  query type to PTR. IPv6 addresses are looked up using nibble
              format under the IP6.ARPA domain.

       -4     This option forces delv to only use IPv4.

       -6     This option forces delv to only use IPv6.

QUERY OPTIONS
       delv provides a number of query options which affect the way results are
       displayed, and in some cases the way lookups are performed.

       Each query option is identified by a keyword preceded  by  a  plus  sign
       (+).  Some keywords set or reset an option. These may be preceded by the
       string no to negate the meaning of that keyword. Other  keywords  assign
       values  to  options  like the timeout interval. They have the form +key-
       word=value. The query options are:

       +cdflag, +nocdflag
              This option controls whether to set the  CD  (checking  disabled)
              bit  in  queries  sent  by  delv.  This  may be useful when trou-
              bleshooting DNSSEC problems from behind a validating resolver.  A
              validating resolver blocks invalid responses, making it difficult
              to  retrieve  them  for  analysis. Setting the CD flag on queries
              causes the resolver to return invalid responses, which  delv  can
              then validate internally and report the errors in detail.

       +class, +noclass
              This option controls whether to display the CLASS when printing a
              record. The default is to display the CLASS.

       +hint=FILE, +nohint
              This  option  specifies a filename from which to load root hints;
              this will be used to find the root name servers when name  server
              mode  (delv  +ns)  is  in  use.  If  the option is not specified,
              built-in root hints will be used.

       +ns, +nons
              This option toggles name server mode. When this option is in use,
              the delv process instantiates a full recursive resolver, and uses
              that to look up the requested query name  and  type.  Turning  on
              this  option also activates +mtrace, +strace and +rtrace, so that
              every iterative query will be logged, including the full response
              messages from each authoritatve server.   These  logged  messages
              will  be  written  to stdout rather than stderr as usual, so that
              the full trace can be captured more easily.

              This is intended to be similar to the behavior of dig +trace, but
              because it uses the same code as named, it much  more  accurately
              replicates  the  behavior  of a recursive name server with a cold
              cache that is processing a recursive query.

       +qmin[=MODE], +noqmin
              When used with +ns, this option enables QNAME minimization  mode.
              Valid  options  of MODE are relaxed and strict. By default, QNAME
              minimization is disabled.  If +qmin  is  specified  but  MODE  is
              omitted, then relaxed mode will be used.

       +ttl, +nottl
              This  option  controls whether to display the TTL when printing a
              record. The default is to display the TTL.

       +rtrace, +nortrace
              This option toggles resolver fetch logging. This reports the name
              and type of each query sent by delv in the  process  of  carrying
              out the resolution and validation process, including the original
              query  and  all subsequent queries to follow CNAMEs and to estab-
              lish a chain of trust for DNSSEC validation.

              This is equivalent to setting the debug level to 1  in  the  "re-
              solver" logging category. Setting the systemwide debug level to 1
              using  the  -d option produces the same output, but affects other
              logging categories as well.

       +mtrace, +nomtrace
              This option toggles logging of messages received. This produces a
              detailed dump of the responses received by delv in the process of
              carrying out the resolution and validation process.

              This is equivalent to setting the  debug  level  to  10  for  the
              "packets"  module of the "resolver" logging category. Setting the
              systemwide debug level to 10 using the  -d  option  produces  the
              same output, but affects other logging categories as well.

       +strace, +nostrace
              This option toggles logging of messages sent. This produces a de-
              tailed  dump of the queries sent by delv in the process of carry-
              ing out the resolution and validation process.  Turning  on  this
              option also activates +mtrace.

              This  is  equivalent  to  setting  the  debug level to 11 for the
              "packets" module of the "resolver" logging category. Setting  the
              systemwide  debug  level  to  11 using the -d option produces the
              same output, but affects other logging categories as well.

       +vtrace, +novtrace
              This option toggles validation logging. This shows  the  internal
              process  of  the  validator as it determines whether an answer is
              validly signed, unsigned, or invalid.

              This is equivalent to setting the debug level to 3 for the  "val-
              idator" module of the "dnssec" logging category. Setting the sys-
              temwide  debug  level  to 3 using the -d option produces the same
              output, but affects other logging categories as well.

       +short, +noshort
              This option toggles between verbose and terse  answers.  The  de-
              fault is to print the answer in a verbose form.

       +comments, +nocomments
              This  option  toggles the display of comment lines in the output.
              The default is to print comments.

       +rrcomments, +norrcomments
              This option toggles the display of  per-record  comments  in  the
              output  (for example, human-readable key information about DNSKEY
              records). The default is to print per-record comments.

       +crypto, +nocrypto
              This option toggles the display of cryptographic fields in DNSSEC
              records. The contents of these fields are  unnecessary  to  debug
              most DNSSEC validation failures and removing them makes it easier
              to see the common failures. The default is to display the fields.
              When  omitted,  they  are replaced by the string [omitted] or, in
              the DNSKEY case, the key ID is displayed as the replacement, e.g.
              [ key id = value ].

       +restarts
              When name server mode (delv +ns) is in use, this option sets  the
              maximum number of CNAME queries to follow before terminating res-
              olution.  This prevents delv from hanging in the event of a CNAME
              loop.  The default is 11.

       +maxqueries
              This  option  specifies  the maximum number of queries to send to
              resolve a name before giving up. The default is 50.

       +maxtotalqueries
              This option specifies the maximum number of queries  to  send  to
              resolve a client request before giving up. The default is 200.

       +trust, +notrust
              This  option  controls  whether  to  display the trust level when
              printing a record.  The default is to display the trust level.

       +split[=W], +nosplit
              This option splits long hex- or base64-formatted  fields  in  re-
              source records into chunks of W characters (where W is rounded up
              to the nearest multiple of 4). +nosplit or +split=0 causes fields
              not to be split at all. The default is 56 characters, or 44 char-
              acters when multiline mode is active.

       +all, +noall
              This option sets or clears the display options +comments, +rrcom-
              ments, and +trust as a group.

       +multiline, +nomultiline
              This  option  prints long records (such as RRSIG, DNSKEY, and SOA
              records) in a verbose multi-line format with human-readable  com-
              ments.  The  default is to print each record on a single line, to
              facilitate machine parsing of the delv output.

       +dnssec, +nodnssec
              This option indicates whether to display  RRSIG  records  in  the
              delv  output.   The default is to do so. Note that (unlike in dig
              <#std-iscman-dig>) this  does  not  control  whether  to  request
              DNSSEC records or to validate them. DNSSEC records are always re-
              quested,  and  validation  always occurs unless suppressed by the
              use of -i or +noroot.

       +root[=ROOT], +noroot
              This option indicates whether to perform conventional DNSSEC val-
              idation, and if so, specifies the name of a trust anchor. The de-
              fault is to validate using a trust anchor of "." (the root zone),
              for which there is a built-in  key.  If  specifying  a  different
              trust  anchor,  then -a must be used to specify a file containing
              the key.

       +tcp, +notcp
              This option controls whether to use TCP when sending queries. The
              default is to use UDP unless a truncated response  has  been  re-
              ceived.

       +unknownformat, +nounknownformat
              This option prints all RDATA in unknown RR-type presentation for-
              mat   (RFC   3597  <https://datatracker.ietf.org/doc/html/rfc3597
              .html>).  The default is to print RDATA for known  types  in  the
              type's presentation format.

       +yaml, +noyaml
              This option prints response data in YAML format.

FILES
       /etc/resolv.conf

SEE ALSO
       dig(1)   <#std-iscman-dig>,   named(8)   <#std-iscman-named>,  RFC  4034
       <https://datatracker.ietf.org/doc/html/rfc4034.html>, RFC 4035 <https://
       datatracker.ietf.org/doc/html/rfc4035.html>,    RFC    4431    <https://
       datatracker.ietf.org/doc/html/rfc4431.html>,    RFC    5074    <https://
       datatracker.ietf.org/doc/html/rfc5074.html>,    RFC    5155    <https://
       datatracker.ietf.org/doc/html/rfc5155.html>.

Author
       Internet Systems Consortium

Copyright
       2026, Internet Systems Consortium

9.20.21-1~deb13u1-Debian           2026-03-13                           DELV(1)

Generated by dwww version 1.16 on Mon Mar 30 03:55:08 CEST 2026.