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,  us-
       ing 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 valida-
       tion. It	does not perform iterative resolution, but simulates  the  be-
       havior  of  a name server configured for	DNSSEC validating and forward-
       ing.

       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 re-
       sponses in environments where local name	servers	may not	 be  trustwor-
       thy.

       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  sup-
	      plied, 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	speci-
	      fied 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 manage-
	      ment 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	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 al-
	      lowed 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  in-
	      valid 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, 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
	      necessary	to disambiguate	names from types or classes (for exam-
	      ple,  when  looking  up  the name	"ns", which could be misinter-
	      preted 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	diffi-
	      cult  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 de-
	      tail.

       +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 accu-
	      rately 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  car-
	      rying  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 "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
	      detailed dump of the queries sent	by delv	in the process of car-
	      rying 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
	      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  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  replace-
	      ment, 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  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 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 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)
	      this does	not control whether to request DNSSEC  records	or  to
	      validate	them. DNSSEC records are always	requested, and valida-
	      tion 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 dif-
	      ferent trust anchor, then	-a must	be used	to specify a file con-
	      taining 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

9.20.9				  2025-05-08			       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+14.3.quarterly>

home | help