2 - Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
3 - Copyright (C) 2000-2003 Internet Software Consortium.
5 - Permission to use, copy, modify, and distribute this software for any
6 - purpose with or without fee is hereby granted, provided that the above
7 - copyright notice and this permission notice appear in all copies.
9 - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
10 - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11 - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
12 - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13 - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
14 - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15 - PERFORMANCE OF THIS SOFTWARE.
17 <!-- $Id: dig.html,v 1.13.18.30 2008/10/14 01:30:11 tbox Exp $ -->
20 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
22 <meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
24 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
25 <a name="man.dig"></a><div class="titlepage"></div>
26 <div class="refnamediv">
28 <p>dig — DNS lookup utility</p>
30 <div class="refsynopsisdiv">
32 <div class="cmdsynopsis"><p><code class="command">dig</code> [@server] [<code class="option">-b <em class="replaceable"><code>address</code></em></code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-f <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-k <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-m</code>] [<code class="option">-p <em class="replaceable"><code>port#</code></em></code>] [<code class="option">-q <em class="replaceable"><code>name</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-x <em class="replaceable"><code>addr</code></em></code>] [<code class="option">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]name:key</code></em></code>] [<code class="option">-4</code>] [<code class="option">-6</code>] [name] [type] [class] [queryopt...]</p></div>
33 <div class="cmdsynopsis"><p><code class="command">dig</code> [<code class="option">-h</code>]</p></div>
34 <div class="cmdsynopsis"><p><code class="command">dig</code> [global-queryopt...] [query...]</p></div>
36 <div class="refsect1" lang="en">
37 <a name="id2543515"></a><h2>DESCRIPTION</h2>
38 <p><span><strong class="command">dig</strong></span>
39 (domain information groper) is a flexible tool
40 for interrogating DNS name servers. It performs DNS lookups and
41 displays the answers that are returned from the name server(s) that
42 were queried. Most DNS administrators use <span><strong class="command">dig</strong></span> to
43 troubleshoot DNS problems because of its flexibility, ease of use and
44 clarity of output. Other lookup tools tend to have less functionality
45 than <span><strong class="command">dig</strong></span>.
48 Although <span><strong class="command">dig</strong></span> is normally used with
50 arguments, it also has a batch mode of operation for reading lookup
51 requests from a file. A brief summary of its command-line arguments
52 and options is printed when the <code class="option">-h</code> option is given.
53 Unlike earlier versions, the BIND 9 implementation of
54 <span><strong class="command">dig</strong></span> allows multiple lookups to be issued
59 Unless it is told to query a specific name server,
60 <span><strong class="command">dig</strong></span> will try each of the servers listed
62 <code class="filename">/etc/resolv.conf</code>.
65 When no command line arguments or options are given,
66 <span><strong class="command">dig</strong></span> will perform an NS query for "." (the root).
69 It is possible to set per-user defaults for <span><strong class="command">dig</strong></span> via
70 <code class="filename">${HOME}/.digrc</code>. This file is read and
72 are applied before the command line arguments.
75 The IN and CH class names overlap with the IN and CH top level
76 domains names. Either use the <code class="option">-t</code> and
77 <code class="option">-c</code> options to specify the type and class,
78 use the <code class="option">-q</code> the specify the domain name, or
79 use "IN." and "CH." when looking up these top level domains.
82 <div class="refsect1" lang="en">
83 <a name="id2543589"></a><h2>SIMPLE USAGE</h2>
85 A typical invocation of <span><strong class="command">dig</strong></span> looks like:
87 <pre class="programlisting"> dig @server name type </pre>
92 <div class="variablelist"><dl>
93 <dt><span class="term"><code class="constant">server</code></span></dt>
95 is the name or IP address of the name server to query. This can
97 address in dotted-decimal notation or an IPv6
98 address in colon-delimited notation. When the supplied
99 <em class="parameter"><code>server</code></em> argument is a
101 <span><strong class="command">dig</strong></span> resolves that name before
103 server. If no <em class="parameter"><code>server</code></em>
104 argument is provided,
105 <span><strong class="command">dig</strong></span> consults <code class="filename">/etc/resolv.conf</code>
106 and queries the name servers listed there. The reply from the
108 server that responds is displayed.
110 <dt><span class="term"><code class="constant">name</code></span></dt>
112 is the name of the resource record that is to be looked up.
114 <dt><span class="term"><code class="constant">type</code></span></dt>
116 indicates what type of query is required —
117 ANY, A, MX, SIG, etc.
118 <em class="parameter"><code>type</code></em> can be any valid query
120 <em class="parameter"><code>type</code></em> argument is supplied,
121 <span><strong class="command">dig</strong></span> will perform a lookup for an
128 <div class="refsect1" lang="en">
129 <a name="id2543680"></a><h2>OPTIONS</h2>
131 The <code class="option">-b</code> option sets the source IP address of the query
132 to <em class="parameter"><code>address</code></em>. This must be a valid
134 one of the host's network interfaces or "0.0.0.0" or "::". An optional
136 may be specified by appending "#<port>"
139 The default query class (IN for internet) is overridden by the
140 <code class="option">-c</code> option. <em class="parameter"><code>class</code></em> is
142 class, such as HS for Hesiod records or CH for Chaosnet records.
145 The <code class="option">-f</code> option makes <span><strong class="command">dig </strong></span>
147 in batch mode by reading a list of lookup requests to process from the
148 file <em class="parameter"><code>filename</code></em>. The file contains a
150 queries, one per line. Each entry in the file should be organized in
151 the same way they would be presented as queries to
152 <span><strong class="command">dig</strong></span> using the command-line interface.
155 The <code class="option">-m</code> option enables memory usage debugging.
159 If a non-standard port number is to be queried, the
160 <code class="option">-p</code> option is used. <em class="parameter"><code>port#</code></em> is
161 the port number that <span><strong class="command">dig</strong></span> will send its
163 instead of the standard DNS port number 53. This option would be used
164 to test a name server that has been configured to listen for queries
165 on a non-standard port number.
168 The <code class="option">-4</code> option forces <span><strong class="command">dig</strong></span>
170 use IPv4 query transport. The <code class="option">-6</code> option forces
171 <span><strong class="command">dig</strong></span> to only use IPv6 query transport.
174 The <code class="option">-t</code> option sets the query type to
175 <em class="parameter"><code>type</code></em>. It can be any valid query type
177 supported in BIND 9. The default query type is "A", unless the
178 <code class="option">-x</code> option is supplied to indicate a reverse lookup.
179 A zone transfer can be requested by specifying a type of AXFR. When
180 an incremental zone transfer (IXFR) is required,
181 <em class="parameter"><code>type</code></em> is set to <code class="literal">ixfr=N</code>.
182 The incremental zone transfer will contain the changes made to the zone
183 since the serial number in the zone's SOA record was
184 <em class="parameter"><code>N</code></em>.
187 The <code class="option">-q</code> option sets the query name to
188 <em class="parameter"><code>name</code></em>. This useful do distinguish the
189 <em class="parameter"><code>name</code></em> from other arguments.
192 Reverse lookups — mapping addresses to names — are simplified by the
193 <code class="option">-x</code> option. <em class="parameter"><code>addr</code></em> is
195 address in dotted-decimal notation, or a colon-delimited IPv6 address.
196 When this option is used, there is no need to provide the
197 <em class="parameter"><code>name</code></em>, <em class="parameter"><code>class</code></em> and
198 <em class="parameter"><code>type</code></em> arguments. <span><strong class="command">dig</strong></span>
199 automatically performs a lookup for a name like
200 <code class="literal">11.12.13.10.in-addr.arpa</code> and sets the
202 class to PTR and IN respectively. By default, IPv6 addresses are
203 looked up using nibble format under the IP6.ARPA domain.
204 To use the older RFC1886 method using the IP6.INT domain
205 specify the <code class="option">-i</code> option. Bit string labels (RFC2874)
206 are now experimental and are not attempted.
209 To sign the DNS queries sent by <span><strong class="command">dig</strong></span> and
211 responses using transaction signatures (TSIG), specify a TSIG key file
212 using the <code class="option">-k</code> option. You can also specify the TSIG
213 key itself on the command line using the <code class="option">-y</code> option;
214 <em class="parameter"><code>hmac</code></em> is the type of the TSIG, default HMAC-MD5,
215 <em class="parameter"><code>name</code></em> is the name of the TSIG key and
216 <em class="parameter"><code>key</code></em> is the actual key. The key is a
218 encoded string, typically generated by
219 <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>.
221 Caution should be taken when using the <code class="option">-y</code> option on
222 multi-user systems as the key can be visible in the output from
223 <span class="citerefentry"><span class="refentrytitle">ps</span>(1)</span>
224 or in the shell's history file. When
225 using TSIG authentication with <span><strong class="command">dig</strong></span>, the name
226 server that is queried needs to know the key and algorithm that is
227 being used. In BIND, this is done by providing appropriate
228 <span><strong class="command">key</strong></span> and <span><strong class="command">server</strong></span> statements in
229 <code class="filename">named.conf</code>.
232 <div class="refsect1" lang="en">
233 <a name="id2544028"></a><h2>QUERY OPTIONS</h2>
234 <p><span><strong class="command">dig</strong></span>
235 provides a number of query options which affect
236 the way in which lookups are made and the results displayed. Some of
237 these set or reset flag bits in the query header, some determine which
238 sections of the answer get printed, and others determine the timeout
239 and retry strategies.
242 Each query option is identified by a keyword preceded by a plus sign
243 (<code class="literal">+</code>). Some keywords set or reset an
244 option. These may be preceded
245 by the string <code class="literal">no</code> to negate the meaning of
247 keywords assign values to options like the timeout interval. They
248 have the form <code class="option">+keyword=value</code>.
249 The query options are:
252 <div class="variablelist"><dl>
253 <dt><span class="term"><code class="option">+[no]tcp</code></span></dt>
255 Use [do not use] TCP when querying name servers. The default
256 behavior is to use UDP unless an AXFR or IXFR query is
258 which case a TCP connection is used.
260 <dt><span class="term"><code class="option">+[no]vc</code></span></dt>
262 Use [do not use] TCP when querying name servers. This alternate
263 syntax to <em class="parameter"><code>+[no]tcp</code></em> is
264 provided for backwards
265 compatibility. The "vc" stands for "virtual circuit".
267 <dt><span class="term"><code class="option">+[no]ignore</code></span></dt>
269 Ignore truncation in UDP responses instead of retrying with TCP.
271 default, TCP retries are performed.
273 <dt><span class="term"><code class="option">+domain=somename</code></span></dt>
275 Set the search list to contain the single domain
276 <em class="parameter"><code>somename</code></em>, as if specified in
278 <span><strong class="command">domain</strong></span> directive in
279 <code class="filename">/etc/resolv.conf</code>, and enable
281 processing as if the <em class="parameter"><code>+search</code></em>
284 <dt><span class="term"><code class="option">+[no]search</code></span></dt>
286 Use [do not use] the search list defined by the searchlist or
288 directive in <code class="filename">resolv.conf</code> (if
290 The search list is not used by default.
292 <dt><span class="term"><code class="option">+[no]showsearch</code></span></dt>
294 Perform [do not perform] a search showing intermediate
297 <dt><span class="term"><code class="option">+[no]defname</code></span></dt>
299 Deprecated, treated as a synonym for <em class="parameter"><code>+[no]search</code></em>
301 <dt><span class="term"><code class="option">+[no]aaonly</code></span></dt>
303 Sets the "aa" flag in the query.
305 <dt><span class="term"><code class="option">+[no]aaflag</code></span></dt>
307 A synonym for <em class="parameter"><code>+[no]aaonly</code></em>.
309 <dt><span class="term"><code class="option">+[no]adflag</code></span></dt>
311 Set [do not set] the AD (authentic data) bit in the query. The
313 currently has a standard meaning only in responses, not in
315 but the ability to set the bit in the query is provided for
318 <dt><span class="term"><code class="option">+[no]cdflag</code></span></dt>
320 Set [do not set] the CD (checking disabled) bit in the query.
322 requests the server to not perform DNSSEC validation of
325 <dt><span class="term"><code class="option">+[no]cl</code></span></dt>
327 Display [do not display] the CLASS when printing the record.
329 <dt><span class="term"><code class="option">+[no]ttlid</code></span></dt>
331 Display [do not display] the TTL when printing the record.
333 <dt><span class="term"><code class="option">+[no]recurse</code></span></dt>
335 Toggle the setting of the RD (recursion desired) bit in the
337 This bit is set by default, which means <span><strong class="command">dig</strong></span>
338 normally sends recursive queries. Recursion is automatically
340 when the <em class="parameter"><code>+nssearch</code></em> or
341 <em class="parameter"><code>+trace</code></em> query options are
344 <dt><span class="term"><code class="option">+[no]nssearch</code></span></dt>
346 When this option is set, <span><strong class="command">dig</strong></span>
348 authoritative name servers for the zone containing the name
350 looked up and display the SOA record that each name server has
354 <dt><span class="term"><code class="option">+[no]trace</code></span></dt>
356 Toggle tracing of the delegation path from the root name servers
358 the name being looked up. Tracing is disabled by default. When
359 tracing is enabled, <span><strong class="command">dig</strong></span> makes
361 resolve the name being looked up. It will follow referrals from
363 root servers, showing the answer from each server that was used
367 <dt><span class="term"><code class="option">+[no]cmd</code></span></dt>
369 Toggles the printing of the initial comment in the output
371 the version of <span><strong class="command">dig</strong></span> and the query
373 been applied. This comment is printed by default.
375 <dt><span class="term"><code class="option">+[no]short</code></span></dt>
377 Provide a terse answer. The default is to print the answer in a
380 <dt><span class="term"><code class="option">+[no]identify</code></span></dt>
382 Show [or do not show] the IP address and port number that
384 answer when the <em class="parameter"><code>+short</code></em> option
386 short form answers are requested, the default is not to show the
387 source address and port number of the server that provided the
390 <dt><span class="term"><code class="option">+[no]comments</code></span></dt>
392 Toggle the display of comment lines in the output. The default
396 <dt><span class="term"><code class="option">+[no]stats</code></span></dt>
398 This query option toggles the printing of statistics: when the
400 was made, the size of the reply and so on. The default
402 to print the query statistics.
404 <dt><span class="term"><code class="option">+[no]qr</code></span></dt>
406 Print [do not print] the query as it is sent.
407 By default, the query is not printed.
409 <dt><span class="term"><code class="option">+[no]question</code></span></dt>
411 Print [do not print] the question section of a query when an
413 returned. The default is to print the question section as a
416 <dt><span class="term"><code class="option">+[no]answer</code></span></dt>
418 Display [do not display] the answer section of a reply. The
422 <dt><span class="term"><code class="option">+[no]authority</code></span></dt>
424 Display [do not display] the authority section of a reply. The
425 default is to display it.
427 <dt><span class="term"><code class="option">+[no]additional</code></span></dt>
429 Display [do not display] the additional section of a reply.
430 The default is to display it.
432 <dt><span class="term"><code class="option">+[no]all</code></span></dt>
434 Set or clear all display flags.
436 <dt><span class="term"><code class="option">+time=T</code></span></dt>
439 Sets the timeout for a query to
440 <em class="parameter"><code>T</code></em> seconds. The default
441 timeout is 5 seconds.
442 An attempt to set <em class="parameter"><code>T</code></em> to less
444 in a query timeout of 1 second being applied.
446 <dt><span class="term"><code class="option">+tries=T</code></span></dt>
448 Sets the number of times to try UDP queries to server to
449 <em class="parameter"><code>T</code></em> instead of the default, 3.
451 <em class="parameter"><code>T</code></em> is less than or equal to
453 tries is silently rounded up to 1.
455 <dt><span class="term"><code class="option">+retry=T</code></span></dt>
457 Sets the number of times to retry UDP queries to server to
458 <em class="parameter"><code>T</code></em> instead of the default, 2.
460 <em class="parameter"><code>+tries</code></em>, this does not include
464 <dt><span class="term"><code class="option">+ndots=D</code></span></dt>
466 Set the number of dots that have to appear in
467 <em class="parameter"><code>name</code></em> to <em class="parameter"><code>D</code></em> for it to be
468 considered absolute. The default value is that defined using
470 ndots statement in <code class="filename">/etc/resolv.conf</code>, or 1 if no
471 ndots statement is present. Names with fewer dots are
473 relative names and will be searched for in the domains listed in
475 <code class="option">search</code> or <code class="option">domain</code> directive in
476 <code class="filename">/etc/resolv.conf</code>.
478 <dt><span class="term"><code class="option">+bufsize=B</code></span></dt>
480 Set the UDP message buffer size advertised using EDNS0 to
481 <em class="parameter"><code>B</code></em> bytes. The maximum and minimum sizes
482 of this buffer are 65535 and 0 respectively. Values outside
483 this range are rounded up or down appropriately.
484 Values other than zero will cause a EDNS query to be sent.
486 <dt><span class="term"><code class="option">+edns=#</code></span></dt>
488 Specify the EDNS version to query with. Valid values
489 are 0 to 255. Setting the EDNS version will cause a
490 EDNS query to be sent. <code class="option">+noedns</code> clears the
491 remembered EDNS version.
493 <dt><span class="term"><code class="option">+[no]multiline</code></span></dt>
495 Print records like the SOA records in a verbose multi-line
496 format with human-readable comments. The default is to print
497 each record on a single line, to facilitate machine parsing
498 of the <span><strong class="command">dig</strong></span> output.
500 <dt><span class="term"><code class="option">+[no]fail</code></span></dt>
502 Do not try the next server if you receive a SERVFAIL. The
504 to not try the next server which is the reverse of normal stub
508 <dt><span class="term"><code class="option">+[no]besteffort</code></span></dt>
510 Attempt to display the contents of messages which are malformed.
511 The default is to not display malformed answers.
513 <dt><span class="term"><code class="option">+[no]dnssec</code></span></dt>
515 Requests DNSSEC records be sent by setting the DNSSEC OK bit
517 in the OPT record in the additional section of the query.
519 <dt><span class="term"><code class="option">+[no]sigchase</code></span></dt>
521 Chase DNSSEC signature chains. Requires dig be compiled with
524 <dt><span class="term"><code class="option">+trusted-key=####</code></span></dt>
527 Specifies a file containing trusted keys to be used with
528 <code class="option">+sigchase</code>. Each DNSKEY record must be
532 If not specified <span><strong class="command">dig</strong></span> will look for
533 <code class="filename">/etc/trusted-key.key</code> then
534 <code class="filename">trusted-key.key</code> in the current directory.
537 Requires dig be compiled with -DDIG_SIGCHASE.
540 <dt><span class="term"><code class="option">+[no]topdown</code></span></dt>
542 When chasing DNSSEC signature chains perform a top-down
544 Requires dig be compiled with -DDIG_SIGCHASE.
551 <div class="refsect1" lang="en">
552 <a name="id2545149"></a><h2>MULTIPLE QUERIES</h2>
554 The BIND 9 implementation of <span><strong class="command">dig </strong></span>
556 specifying multiple queries on the command line (in addition to
557 supporting the <code class="option">-f</code> batch file option). Each of those
558 queries can be supplied with its own set of flags, options and query
562 In this case, each <em class="parameter"><code>query</code></em> argument
564 individual query in the command-line syntax described above. Each
565 consists of any of the standard options and flags, the name to be
566 looked up, an optional query type and class and any query options that
567 should be applied to that query.
570 A global set of query options, which should be applied to all queries,
571 can also be supplied. These global query options must precede the
572 first tuple of name, class, type, options, flags, and query options
573 supplied on the command line. Any global query options (except
574 the <code class="option">+[no]cmd</code> option) can be
575 overridden by a query-specific set of query options. For example:
577 <pre class="programlisting">
578 dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
581 shows how <span><strong class="command">dig</strong></span> could be used from the
583 to make three lookups: an ANY query for <code class="literal">www.isc.org</code>, a
584 reverse lookup of 127.0.0.1 and a query for the NS records of
585 <code class="literal">isc.org</code>.
587 A global query option of <em class="parameter"><code>+qr</code></em> is
589 that <span><strong class="command">dig</strong></span> shows the initial query it made
591 lookup. The final query has a local query option of
592 <em class="parameter"><code>+noqr</code></em> which means that <span><strong class="command">dig</strong></span>
593 will not print the initial query when it looks up the NS records for
594 <code class="literal">isc.org</code>.
597 <div class="refsect1" lang="en">
598 <a name="id2545211"></a><h2>IDN SUPPORT</h2>
600 If <span><strong class="command">dig</strong></span> has been built with IDN (internationalized
601 domain name) support, it can accept and display non-ASCII domain names.
602 <span><strong class="command">dig</strong></span> appropriately converts character encoding of
603 domain name before sending a request to DNS server or displaying a
604 reply from the server.
605 If you'd like to turn off the IDN support for some reason, defines
606 the <code class="envar">IDN_DISABLE</code> environment variable.
607 The IDN support is disabled if the variable is set when
608 <span><strong class="command">dig</strong></span> runs.
611 <div class="refsect1" lang="en">
612 <a name="id2545234"></a><h2>FILES</h2>
613 <p><code class="filename">/etc/resolv.conf</code>
615 <p><code class="filename">${HOME}/.digrc</code>
618 <div class="refsect1" lang="en">
619 <a name="id2545251"></a><h2>SEE ALSO</h2>
620 <p><span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>,
621 <span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
622 <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
623 <em class="citetitle">RFC1035</em>.
626 <div class="refsect1" lang="en">
627 <a name="id2545356"></a><h2>BUGS</h2>
629 There are probably too many query options.