Provided by: bind9-dnsutils_9.20.0-2ubuntu3_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

       2024, Internet Systems Consortium