Provided by: bind9-dnsutils_9.20.0-2ubuntu3.1_amd64 bug

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.

       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  anchor  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 environments 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/resolv.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 ignored. If an alternate key name is
              desired, it can be specified using the +root option.

              Note:  When  reading  trust  anchors,  delv  treats  trust-anchors,  initial-key,  and  static-key
              identically.  That  is,  for  a  managed  key, it is the initial key that is trusted; RFC 5011 key
              management is not supported. delv does not consult the managed-keys database maintained by  named.
              This  means  that  if the default 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 interfaces, or 0.0.0.0, or ::. An optional source port may be specified
              by appending #<port>

       -c class
              This option sets the query class for the requested data. Currently, 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
              increases. 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.)

       -m     This option enables memory usage debugging.

       -p port#
              This option specifies a destination port to use for queries, instead  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 necessary 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 sometimes 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  performs  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 +keyword=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 troubleshooting 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 establish a chain  of  trust  for  DNSSEC
              validation.

              This is equivalent to setting the debug level to 1 in the "resolver" 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 detailed dump of the queries sent by
              delv  in the process of carrying 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 "validator" module of the "dnssec"
              logging category. Setting the systemwide 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 default 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 ].

       +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  resource  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 characters when multiline  mode
              is active.

       +all, +noall
              This option sets or clears the display options +comments, +rrcomments, 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 comments. 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) this does not control  whether  to  request  DNSSEC  records  or  to
              validate them. DNSSEC records are always requested, and validation always occurs unless suppressed
              by the use of -i or +noroot.

       +root[=ROOT], +noroot
              This option indicates whether to perform conventional DNSSEC validation, and if so, specifies  the
              name  of  a  trust anchor. The default 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 received.

       +unknownformat, +nounknownformat
              This option prints all RDATA in unknown RR-type presentation format (RFC 3597).  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), named(8), RFC 4034, RFC 4035, RFC 4431, RFC 5074, RFC 5155.

AUTHOR

       Internet Systems Consortium

COPYRIGHT

       2025, Internet Systems Consortium