STANNIX Solutions for the Real World


Manual: delv

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 vali‐
       dating 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 ex‐
       planation 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/re‐
       solv.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	dot‐
	      ted-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,	how‐
	      ever, 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 iden‐
	      tically. 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 <#std-iscman-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 #

       -c class
	      This  option  sets  the query class for the requested data. Currently, only class "IN" is sup‐
	      ported 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 de‐
	      tails.

       -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 perform‐
	      ing  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, 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	 ex‐
	      ample,  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 us‐
	      ing 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	key‐
       words  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  analy‐
	      sis.  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 instanti‐
	      ates 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 dis‐
	      play 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 re‐
	      sponses 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	com‐
	      ments.

       +rrcomments, +norrcomments
	      This option toggles the display of per-record comments in the output (for example, human-read‐
	      able 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 resolution.	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 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 sin‐
	      gle 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 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) <#std-iscman-dig>, named(8) <#std-iscman-named>, RFC  4034  , RFC 4035 , RFC 4431 ,  RFC 5074 , RFC 5155 .

Author
       Internet Systems Consortium

Copyright
       2026, Internet Systems Consortium

9.20.24-1ubuntu0.3-Ubuntu			 2026-06-08					     DELV(1)