1DELV(1)                             BIND 9                             DELV(1)
2
3
4

NAME

6       delv - DNS lookup and validation utility
7

SYNOPSIS

9       delv [@server] [ [-4] | [-6] ] [-a anchor-file] [-b address] [-c class]
10       [-d level] [-i] [-m] [-p port#] [-q name] [-t type]  [-x  addr]  [name]
11       [type] [class] [queryopt...]
12
13       delv [-h]
14
15       delv [-v]
16
17       delv [queryopt...] [query...]
18

DESCRIPTION

20       delv  is a tool for sending DNS queries and validating the results, us‐
21       ing the same internal resolver and validator logic as named.
22
23       delv sends to a specified name server all queries needed to  fetch  and
24       validate  the  requested  data;  this  includes  the original requested
25       query, subsequent queries to follow CNAME or DNAME chains, queries  for
26       DNSKEY, and DS records to establish a chain of trust for DNSSEC valida‐
27       tion. It does not perform iterative resolution, but simulates  the  be‐
28       havior  of  a name server configured for DNSSEC validating and forward‐
29       ing.
30
31       By default, responses are validated using the built-in DNSSEC trust an‐
32       chor for the root zone ("."). Records returned by delv are either fully
33       validated or were not signed. If validation fails,  an  explanation  of
34       the  failure  is  included in the output; the validation process can be
35       traced in detail. Because delv does not rely on an external  server  to
36       carry  out  validation, it can be used to check the validity of DNS re‐
37       sponses in environments where local name servers may not  be  trustwor‐
38       thy.
39
40       Unless  it  is told to query a specific name server, delv tries each of
41       the servers listed in /etc/resolv.conf. If no usable  server  addresses
42       are found, delv sends queries to the localhost addresses (127.0.0.1 for
43       IPv4, ::1 for IPv6).
44
45       When no command-line arguments or options are given, delv  performs  an
46       NS query for "." (the root zone).
47

SIMPLE USAGE

49       A typical invocation of delv looks like:
50
51          delv @server name type
52
53       where:
54
55       server is  the name or IP address of the name server to query. This can
56              be an IPv4 address in dotted-decimal notation or an IPv6 address
57              in  colon-delimited  notation. When the supplied server argument
58              is a hostname, delv resolves that name before querying that name
59              server (note, however, that this initial lookup is not validated
60              by DNSSEC).
61
62              If no  server  argument  is  provided,  delv  consults  /etc/re‐
63              solv.conf;  if  an  address  is found there, it queries the name
64              server at that address. If either of the -4 or -6 options is  in
65              use,  then  only  addresses  for the corresponding transport are
66              tried. If no usable addresses are found, delv sends  queries  to
67              the localhost addresses (127.0.0.1 for IPv4, ::1 for IPv6).
68
69       name   is the domain name to be looked up.
70
71       type   indicates  what  type  of  query  is required - ANY, A, MX, etc.
72              type can be any valid query type. If no type  argument  is  sup‐
73              plied, delv performs a lookup for an A record.
74

OPTIONS

76       -a anchor-file
77              This  option  specifies  a  file from which to read an alternate
78              DNSSEC root zone trust anchor.
79
80              By default, keys that do not match the root zone  name  (.)  are
81              ignored.  If  an alternate key name is desired, it can be speci‐
82              fied using the +root option.
83
84              Note: When reading trust  anchors,  delv  treats  trust-anchors,
85              initial-key,  and static-key identically. That is, for a managed
86              key, it is the initial key that is trusted; RFC 5011 key manage‐
87              ment  is  not  supported. delv does not consult the managed-keys
88              database maintained by named. This means that if the default key
89              built  in  to  delv  is revoked, delv must be updated to a newer
90              version in order to continue validating.
91
92       -b address
93              This option sets the source IP address of the query to  address.
94              This must be a valid address on one of the host's network inter‐
95              faces, or 0.0.0.0, or ::. An optional source port may be  speci‐
96              fied by appending #<port>
97
98       -c class
99              This  option  sets  the query class for the requested data. Cur‐
100              rently, only class "IN" is supported in delv and any other value
101              is ignored.
102
103       -d level
104              This  option  sets  the systemwide debug level to level. The al‐
105              lowed range is from 0 to 99. The default is  0  (no  debugging).
106              Debugging  traces  from  delv  become  more verbose as the debug
107              level increases. See the +mtrace, +rtrace, and  +vtrace  options
108              below for additional debugging details.
109
110       -h     This option displays the delv help usage output and exits.
111
112       -i     This  option  sets insecure mode, which disables internal DNSSEC
113              validation. (Note, however, that this does not set the CD bit on
114              upstream  queries.  If  the  server  being queried is performing
115              DNSSEC validation, then it does not return  invalid  data;  this
116              can  cause delv to time out. When it is necessary to examine in‐
117              valid data to debug a DNSSEC problem, use dig +cd.)
118
119       -m     This option enables memory usage debugging.
120
121       -p port#
122              This option specifies a destination port to use for queries, in‐
123              stead  of  the  standard DNS port number 53. This option is used
124              with a name server  that  has  been  configured  to  listen  for
125              queries on a non-standard port number.
126
127       -q name
128              This  option  sets  the query name to name. While the query name
129              can be specified without using the -q option,  it  is  sometimes
130              necessary to disambiguate names from types or classes (for exam‐
131              ple, when looking up the name "ns",  which  could  be  misinter‐
132              preted as the type NS, or "ch", which could be misinterpreted as
133              class CH).
134
135       -t type
136              This option sets the query type to type, which can be any  valid
137              query  type  supported  in BIND 9 except for zone transfer types
138              AXFR and IXFR.  As  with  -q,  this  is  useful  to  distinguish
139              query-name types or classes when they are ambiguous. It is some‐
140              times necessary to disambiguate names from types.
141
142              The default query type is "A", unless the -x option is  supplied
143              to indicate a reverse lookup, in which case it is "PTR".
144
145       -v     This option prints the delv version and exits.
146
147       -x addr
148              This  option  performs a reverse lookup, mapping an address to a
149              name. addr is an IPv4 address in dotted-decimal notation,  or  a
150              colon-delimited  IPv6 address. When -x is used, there is no need
151              to provide the name or type arguments; delv  automatically  per‐
152              forms a lookup for a name like 11.12.13.10.in-addr.arpa and sets
153              the query type to PTR. IPv6 addresses are looked up using nibble
154              format under the IP6.ARPA domain.
155
156       -4     This option forces delv to only use IPv4.
157
158       -6     This option forces delv to only use IPv6.
159

QUERY OPTIONS

161       delv  provides  a  number of query options which affect the way results
162       are displayed, and in some cases the way lookups are performed.
163
164       Each query option is identified by a keyword preceded by  a  plus  sign
165       (+). Some keywords set or reset an option. These may be preceded by the
166       string no to negate the meaning of that keyword. Other keywords  assign
167       values  to  options like the timeout interval. They have the form +key‐
168       word=value. The query options are:
169
170       +cdflag, +nocdflag
171              This option controls whether to set the CD  (checking  disabled)
172              bit  in  queries  sent  by  delv.  This may be useful when trou‐
173              bleshooting DNSSEC problems from behind a validating resolver. A
174              validating  resolver  blocks invalid responses, making it diffi‐
175              cult to retrieve them for  analysis.  Setting  the  CD  flag  on
176              queries  causes  the resolver to return invalid responses, which
177              delv can then validate internally and report the errors  in  de‐
178              tail.
179
180       +class, +noclass
181              This  option controls whether to display the CLASS when printing
182              a record. The default is to display the CLASS.
183
184       +hint=FILE, +nohint
185              This option specifies a filename from which to load root  hints;
186              this will be used to find the root name servers when name server
187              mode (delv +ns) is in use.  If  the  option  is  not  specified,
188              built-in root hints will be used.
189
190       +ns, +nons
191              This  option  toggles  name  server mode. When this option is in
192              use, the delv process instantiates a  full  recursive  resolver,
193              and  uses  that  to  look  up the requested query name and type.
194              Turning on this  option  also  activates  +mtrace,  +strace  and
195              +rtrace, so that every iterative query will be logged, including
196              the full response messages from each authoritatve server.  These
197              logged  messages will be written to stdout rather than stderr as
198              usual, so that the full trace can be captured more easily.
199
200              This is intended to be similar to the behavior  of  dig  +trace,
201              but  because  it uses the same code as named, it much more accu‐
202              rately replicates the behavior of a recursive name server with a
203              cold cache that is processing a recursive query.
204
205       +qmin[=MODE], +noqmin
206              When used with +ns, this option enables QNAME minimization mode.
207              Valid options of MODE are relaxed and strict. By default,  QNAME
208              minimization  is  disabled.   If  +qmin is specified but MODE is
209              omitted, then relaxed mode will be used.
210
211       +ttl, +nottl
212              This option controls whether to display the TTL when printing  a
213              record. The default is to display the TTL.
214
215       +rtrace, +nortrace
216              This  option  toggles  resolver  fetch logging. This reports the
217              name and type of each query sent by delv in the process of  car‐
218              rying  out  the resolution and validation process, including the
219              original query and all subsequent queries to follow  CNAMEs  and
220              to establish a chain of trust for DNSSEC validation.
221
222              This  is  equivalent to setting the debug level to 1 in the "re‐
223              solver" logging category. Setting the systemwide debug level  to
224              1  using  the  -d  option  produces the same output, but affects
225              other logging categories as well.
226
227       +mtrace, +nomtrace
228              This option toggles logging of messages received. This  produces
229              a detailed dump of the responses received by delv in the process
230              of carrying out the resolution and validation process.
231
232              This is equivalent to setting the debug  level  to  10  for  the
233              "packets" module of the "resolver" logging category. Setting the
234              systemwide debug level to 10 using the -d  option  produces  the
235              same output, but affects other logging categories as well.
236
237       +strace, +nostrace
238              This  option  toggles  logging of messages sent. This produces a
239              detailed dump of the queries sent by delv in the process of car‐
240              rying out the resolution and validation process. Turning on this
241              option also activates +mtrace.
242
243              This is equivalent to setting the debug  level  to  11  for  the
244              "packets" module of the "resolver" logging category. Setting the
245              systemwide debug level to 11 using the -d  option  produces  the
246              same output, but affects other logging categories as well.
247
248       +vtrace, +novtrace
249              This  option toggles validation logging. This shows the internal
250              process of the validator as it determines whether an  answer  is
251              validly signed, unsigned, or invalid.
252
253              This is equivalent to setting the debug level to 3 for the "val‐
254              idator" module of the "dnssec"  logging  category.  Setting  the
255              systemwide  debug  level  to  3 using the -d option produces the
256              same output, but affects other logging categories as well.
257
258       +short, +noshort
259              This option toggles between verbose and terse answers.  The  de‐
260              fault is to print the answer in a verbose form.
261
262       +comments, +nocomments
263              This  option toggles the display of comment lines in the output.
264              The default is to print comments.
265
266       +rrcomments, +norrcomments
267              This option toggles the display of per-record  comments  in  the
268              output (for example, human-readable key information about DNSKEY
269              records). The default is to print per-record comments.
270
271       +crypto, +nocrypto
272              This option toggles  the  display  of  cryptographic  fields  in
273              DNSSEC  records. The contents of these fields are unnecessary to
274              debug most DNSSEC validation failures and removing them makes it
275              easier to see the common failures. The default is to display the
276              fields. When omitted, they are replaced by the string  [omitted]
277              or,  in the DNSKEY case, the key ID is displayed as the replace‐
278              ment, e.g. [ key id = value ].
279
280       +trust, +notrust
281              This option controls whether to display  the  trust  level  when
282              printing a record.  The default is to display the trust level.
283
284       +split[=W], +nosplit
285              This  option  splits long hex- or base64-formatted fields in re‐
286              source records into chunks of W characters (where W  is  rounded
287              up  to  the  nearest multiple of 4). +nosplit or +split=0 causes
288              fields not to be split at all. The default is 56 characters,  or
289              44 characters when multiline mode is active.
290
291       +all, +noall
292              This  option  sets  or  clears  the  display  options +comments,
293              +rrcomments, and +trust as a group.
294
295       +multiline, +nomultiline
296              This option prints long records (such as RRSIG, DNSKEY, and  SOA
297              records) in a verbose multi-line format with human-readable com‐
298              ments. The default is to print each record on a single line,  to
299              facilitate machine parsing of the delv output.
300
301       +dnssec, +nodnssec
302              This  option  indicates  whether to display RRSIG records in the
303              delv output.  The default is to do so. Note that (unlike in dig)
304              this  does  not  control whether to request DNSSEC records or to
305              validate them. DNSSEC records are always requested, and  valida‐
306              tion  always  occurs  unless  suppressed  by  the  use  of -i or
307              +noroot.
308
309       +root[=ROOT], +noroot
310              This option indicates whether  to  perform  conventional  DNSSEC
311              validation, and if so, specifies the name of a trust anchor. The
312              default is to validate using a trust anchor  of  "."  (the  root
313              zone),  for  which there is a built-in key. If specifying a dif‐
314              ferent trust anchor, then -a must be used to specify a file con‐
315              taining the key.
316
317       +tcp, +notcp
318              This  option  controls  whether to use TCP when sending queries.
319              The default is to use UDP unless a truncated response  has  been
320              received.
321
322       +unknownformat, +nounknownformat
323              This  option  prints  all  RDATA in unknown RR-type presentation
324              format (RFC 3597).  The default is  to  print  RDATA  for  known
325              types in the type's presentation format.
326
327       +yaml, +noyaml
328              This option prints response data in YAML format.
329

FILES

331       /etc/resolv.conf
332

SEE ALSO

334       dig(1), named(8), RFC 4034, RFC 4035, RFC 4431, RFC 5074, RFC 5155.
335

AUTHOR

337       Internet Systems Consortium
338
340       2023, Internet Systems Consortium
341
342
343
344
3459.19.18                                                                DELV(1)
Impressum