Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 vali-
     date the requested data; this includes the original requested query, subse-
     quent 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  vali-
     dated  or were not signed. If validation fails, an explanation of the fail-
     ure is included in the output; the validation process can be traced in  de-
     tail. Because delv does not rely on an external server to carry out valida-
     tion, 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 ad-
	    dress.  If	either	of the -4 or -6 options is in use, then only ad-
	    dresses for the corresponding transport are tried. If no usable  ad-
	    dresses  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  us-
	    ing 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 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 append-
	    ing #<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 vali-
	    dation.  (Note,  however,  that  this does not set the CD bit on up-
	    stream 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, 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-stan-
	    dard 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-de-
	    limited 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 re-
	    solver blocks invalid responses, making  it  difficult  to	retrieve
	    them  for  analysis.  Setting  the CD flag on queries causes the re-
	    solver to return invalid responses, which delv can then validate in-
	    ternally 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 writ-
	    ten 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 min-
	    imization 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  cate-
	    gories 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 "pack-
	    ets" module of the "resolver" logging  category.  Setting  the  sys-
	    temwide debug level to 10 using the -d option produces the same out-
	    put, 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	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  "pack-
	    ets"  module  of  the  "resolver" logging category. Setting the sys-
	    temwide debug level to 11 using the -d option produces the same out-
	    put, 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	"valida-
	    tor" 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 ].

     +restarts
	    When name server mode (delv +ns) is in use,  this  option  sets  the
	    maximum number of CNAME queries to follow before terminating resolu-
	    tion.  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 re-
	    solve a name before giving up. The default is 50.

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

     +trust, +notrust
	    This  option controls whether to display the trust level when print-
	    ing 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, +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  fa-
	    cilitate 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 valida-
	    tion, 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  an-
	    chor, 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   <https://datatracker.ietf.org/doc/html/rfc3597.html>).
	    The default is to print RDATA for known types in the type's  presen-
	    tation 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.26 			   2026-07-20				 DELV(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=delv&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help