2 - Copyright (C) 2004-2010, 2013 Internet Systems Consortium, Inc. ("ISC")
3 - Copyright (C) 2000-2003 Internet Software Consortium.
5 - Permission to use, copy, modify, and/or 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.
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="id2543527"></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 in
61 <code class="filename">/etc/resolv.conf</code>. If no usable server addreses
62 are found, <span><strong class="command">dig</strong></span> will send the query to the local
66 When no command line arguments or options are given,
67 <span><strong class="command">dig</strong></span> will perform an NS query for "." (the root).
70 It is possible to set per-user defaults for <span><strong class="command">dig</strong></span> via
71 <code class="filename">${HOME}/.digrc</code>. This file is read and
73 are applied before the command line arguments.
76 The IN and CH class names overlap with the IN and CH top level
77 domains names. Either use the <code class="option">-t</code> and
78 <code class="option">-c</code> options to specify the type and class,
79 use the <code class="option">-q</code> the specify the domain name, or
80 use "IN." and "CH." when looking up these top level domains.
83 <div class="refsect1" lang="en">
84 <a name="id2543606"></a><h2>SIMPLE USAGE</h2>
86 A typical invocation of <span><strong class="command">dig</strong></span> looks like:
88 <pre class="programlisting"> dig @server name type </pre>
93 <div class="variablelist"><dl>
94 <dt><span class="term"><code class="constant">server</code></span></dt>
97 is the name or IP address of the name server to query. This
98 can be an IPv4 address in dotted-decimal notation or an IPv6
99 address in colon-delimited notation. When the supplied
100 <em class="parameter"><code>server</code></em> argument is a hostname,
101 <span><strong class="command">dig</strong></span> resolves that name before querying
105 If no <em class="parameter"><code>server</code></em> argument is
106 provided, <span><strong class="command">dig</strong></span> consults
107 <code class="filename">/etc/resolv.conf</code>; if an
108 address is found there, it queries the name server at
109 that address. If either of the <code class="option">-4</code> or
110 <code class="option">-6</code> options are in use, then
111 only addresses for the corresponding transport
112 will be tried. If no usable addresses are found,
113 <span><strong class="command">dig</strong></span> will send the query to the
114 local host. The reply from the name server that
115 responds is displayed.
118 <dt><span class="term"><code class="constant">name</code></span></dt>
120 is the name of the resource record that is to be looked up.
122 <dt><span class="term"><code class="constant">type</code></span></dt>
124 indicates what type of query is required —
125 ANY, A, MX, SIG, etc.
126 <em class="parameter"><code>type</code></em> can be any valid query
128 <em class="parameter"><code>type</code></em> argument is supplied,
129 <span><strong class="command">dig</strong></span> will perform a lookup for an
136 <div class="refsect1" lang="en">
137 <a name="id2543709"></a><h2>OPTIONS</h2>
139 The <code class="option">-b</code> option sets the source IP address of the query
140 to <em class="parameter"><code>address</code></em>. This must be a valid
142 one of the host's network interfaces or "0.0.0.0" or "::". An optional
144 may be specified by appending "#<port>"
147 The default query class (IN for internet) is overridden by the
148 <code class="option">-c</code> option. <em class="parameter"><code>class</code></em> is
150 class, such as HS for Hesiod records or CH for Chaosnet records.
153 The <code class="option">-f</code> option makes <span><strong class="command">dig </strong></span>
155 in batch mode by reading a list of lookup requests to process from the
156 file <em class="parameter"><code>filename</code></em>. The file contains a
158 queries, one per line. Each entry in the file should be organized in
159 the same way they would be presented as queries to
160 <span><strong class="command">dig</strong></span> using the command-line interface.
163 The <code class="option">-m</code> option enables memory usage debugging.
167 If a non-standard port number is to be queried, the
168 <code class="option">-p</code> option is used. <em class="parameter"><code>port#</code></em> is
169 the port number that <span><strong class="command">dig</strong></span> will send its
171 instead of the standard DNS port number 53. This option would be used
172 to test a name server that has been configured to listen for queries
173 on a non-standard port number.
176 The <code class="option">-4</code> option forces <span><strong class="command">dig</strong></span>
178 use IPv4 query transport. The <code class="option">-6</code> option forces
179 <span><strong class="command">dig</strong></span> to only use IPv6 query transport.
182 The <code class="option">-t</code> option sets the query type to
183 <em class="parameter"><code>type</code></em>. It can be any valid query type
185 supported in BIND 9. The default query type is "A", unless the
186 <code class="option">-x</code> option is supplied to indicate a reverse lookup.
187 A zone transfer can be requested by specifying a type of AXFR. When
188 an incremental zone transfer (IXFR) is required,
189 <em class="parameter"><code>type</code></em> is set to <code class="literal">ixfr=N</code>.
190 The incremental zone transfer will contain the changes made to the zone
191 since the serial number in the zone's SOA record was
192 <em class="parameter"><code>N</code></em>.
195 The <code class="option">-q</code> option sets the query name to
196 <em class="parameter"><code>name</code></em>. This useful do distinguish the
197 <em class="parameter"><code>name</code></em> from other arguments.
200 Reverse lookups — mapping addresses to names — are simplified by the
201 <code class="option">-x</code> option. <em class="parameter"><code>addr</code></em> is
203 address in dotted-decimal notation, or a colon-delimited IPv6 address.
204 When this option is used, there is no need to provide the
205 <em class="parameter"><code>name</code></em>, <em class="parameter"><code>class</code></em> and
206 <em class="parameter"><code>type</code></em> arguments. <span><strong class="command">dig</strong></span>
207 automatically performs a lookup for a name like
208 <code class="literal">11.12.13.10.in-addr.arpa</code> and sets the
210 class to PTR and IN respectively. By default, IPv6 addresses are
211 looked up using nibble format under the IP6.ARPA domain.
212 To use the older RFC1886 method using the IP6.INT domain
213 specify the <code class="option">-i</code> option. Bit string labels (RFC2874)
214 are now experimental and are not attempted.
217 To sign the DNS queries sent by <span><strong class="command">dig</strong></span> and
219 responses using transaction signatures (TSIG), specify a TSIG key file
220 using the <code class="option">-k</code> option. You can also specify the TSIG
221 key itself on the command line using the <code class="option">-y</code> option;
222 <em class="parameter"><code>hmac</code></em> is the type of the TSIG, default HMAC-MD5,
223 <em class="parameter"><code>name</code></em> is the name of the TSIG key and
224 <em class="parameter"><code>key</code></em> is the actual key. The key is a
226 encoded string, typically generated by
227 <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>.
229 Caution should be taken when using the <code class="option">-y</code> option on
230 multi-user systems as the key can be visible in the output from
231 <span class="citerefentry"><span class="refentrytitle">ps</span>(1)</span>
232 or in the shell's history file. When
233 using TSIG authentication with <span><strong class="command">dig</strong></span>, the name
234 server that is queried needs to know the key and algorithm that is
235 being used. In BIND, this is done by providing appropriate
236 <span><strong class="command">key</strong></span> and <span><strong class="command">server</strong></span> statements in
237 <code class="filename">named.conf</code>.
240 <div class="refsect1" lang="en">
241 <a name="id2544058"></a><h2>QUERY OPTIONS</h2>
242 <p><span><strong class="command">dig</strong></span>
243 provides a number of query options which affect
244 the way in which lookups are made and the results displayed. Some of
245 these set or reset flag bits in the query header, some determine which
246 sections of the answer get printed, and others determine the timeout
247 and retry strategies.
250 Each query option is identified by a keyword preceded by a plus sign
251 (<code class="literal">+</code>). Some keywords set or reset an
252 option. These may be preceded
253 by the string <code class="literal">no</code> to negate the meaning of
255 keywords assign values to options like the timeout interval. They
256 have the form <code class="option">+keyword=value</code>.
257 The query options are:
260 <div class="variablelist"><dl>
261 <dt><span class="term"><code class="option">+[no]tcp</code></span></dt>
263 Use [do not use] TCP when querying name servers. The default
264 behavior is to use UDP unless an AXFR or IXFR query is
266 which case a TCP connection is used.
268 <dt><span class="term"><code class="option">+[no]vc</code></span></dt>
270 Use [do not use] TCP when querying name servers. This alternate
271 syntax to <em class="parameter"><code>+[no]tcp</code></em> is
272 provided for backwards
273 compatibility. The "vc" stands for "virtual circuit".
275 <dt><span class="term"><code class="option">+[no]ignore</code></span></dt>
277 Ignore truncation in UDP responses instead of retrying with TCP.
279 default, TCP retries are performed.
281 <dt><span class="term"><code class="option">+domain=somename</code></span></dt>
283 Set the search list to contain the single domain
284 <em class="parameter"><code>somename</code></em>, as if specified in
286 <span><strong class="command">domain</strong></span> directive in
287 <code class="filename">/etc/resolv.conf</code>, and enable
289 processing as if the <em class="parameter"><code>+search</code></em>
292 <dt><span class="term"><code class="option">+[no]search</code></span></dt>
294 Use [do not use] the search list defined by the searchlist or
296 directive in <code class="filename">resolv.conf</code> (if
298 The search list is not used by default.
300 <dt><span class="term"><code class="option">+[no]showsearch</code></span></dt>
302 Perform [do not perform] a search showing intermediate
305 <dt><span class="term"><code class="option">+[no]defname</code></span></dt>
307 Deprecated, treated as a synonym for <em class="parameter"><code>+[no]search</code></em>
309 <dt><span class="term"><code class="option">+[no]aaonly</code></span></dt>
311 Sets the "aa" flag in the query.
313 <dt><span class="term"><code class="option">+[no]aaflag</code></span></dt>
315 A synonym for <em class="parameter"><code>+[no]aaonly</code></em>.
317 <dt><span class="term"><code class="option">+[no]adflag</code></span></dt>
319 Set [do not set] the AD (authentic data) bit in the
320 query. This requests the server to return whether
321 all of the answer and authority sections have all
322 been validated as secure according to the security
323 policy of the server. AD=1 indicates that all records
324 have been validated as secure and the answer is not
325 from a OPT-OUT range. AD=0 indicate that some part
326 of the answer was insecure or not validated.
328 <dt><span class="term"><code class="option">+[no]cdflag</code></span></dt>
330 Set [do not set] the CD (checking disabled) bit in the query.
332 requests the server to not perform DNSSEC validation of
335 <dt><span class="term"><code class="option">+[no]cl</code></span></dt>
337 Display [do not display] the CLASS when printing the record.
339 <dt><span class="term"><code class="option">+[no]ttlid</code></span></dt>
341 Display [do not display] the TTL when printing the record.
343 <dt><span class="term"><code class="option">+[no]recurse</code></span></dt>
345 Toggle the setting of the RD (recursion desired) bit in the
347 This bit is set by default, which means <span><strong class="command">dig</strong></span>
348 normally sends recursive queries. Recursion is automatically
350 when the <em class="parameter"><code>+nssearch</code></em> or
351 <em class="parameter"><code>+trace</code></em> query options are
354 <dt><span class="term"><code class="option">+[no]nssearch</code></span></dt>
356 When this option is set, <span><strong class="command">dig</strong></span>
358 authoritative name servers for the zone containing the name
360 looked up and display the SOA record that each name server has
364 <dt><span class="term"><code class="option">+[no]trace</code></span></dt>
366 Toggle tracing of the delegation path from the root name servers
368 the name being looked up. Tracing is disabled by default. When
369 tracing is enabled, <span><strong class="command">dig</strong></span> makes
371 resolve the name being looked up. It will follow referrals from
373 root servers, showing the answer from each server that was used
377 <dt><span class="term"><code class="option">+[no]cmd</code></span></dt>
379 Toggles the printing of the initial comment in the output
381 the version of <span><strong class="command">dig</strong></span> and the query
383 been applied. This comment is printed by default.
385 <dt><span class="term"><code class="option">+[no]short</code></span></dt>
387 Provide a terse answer. The default is to print the answer in a
390 <dt><span class="term"><code class="option">+[no]identify</code></span></dt>
392 Show [or do not show] the IP address and port number that
394 answer when the <em class="parameter"><code>+short</code></em> option
396 short form answers are requested, the default is not to show the
397 source address and port number of the server that provided the
400 <dt><span class="term"><code class="option">+[no]comments</code></span></dt>
402 Toggle the display of comment lines in the output. The default
406 <dt><span class="term"><code class="option">+[no]stats</code></span></dt>
408 This query option toggles the printing of statistics: when the
410 was made, the size of the reply and so on. The default
412 to print the query statistics.
414 <dt><span class="term"><code class="option">+[no]qr</code></span></dt>
416 Print [do not print] the query as it is sent.
417 By default, the query is not printed.
419 <dt><span class="term"><code class="option">+[no]question</code></span></dt>
421 Print [do not print] the question section of a query when an
423 returned. The default is to print the question section as a
426 <dt><span class="term"><code class="option">+[no]answer</code></span></dt>
428 Display [do not display] the answer section of a reply. The
432 <dt><span class="term"><code class="option">+[no]authority</code></span></dt>
434 Display [do not display] the authority section of a reply. The
435 default is to display it.
437 <dt><span class="term"><code class="option">+[no]additional</code></span></dt>
439 Display [do not display] the additional section of a reply.
440 The default is to display it.
442 <dt><span class="term"><code class="option">+[no]all</code></span></dt>
444 Set or clear all display flags.
446 <dt><span class="term"><code class="option">+time=T</code></span></dt>
449 Sets the timeout for a query to
450 <em class="parameter"><code>T</code></em> seconds. The default
451 timeout is 5 seconds.
452 An attempt to set <em class="parameter"><code>T</code></em> to less
454 in a query timeout of 1 second being applied.
456 <dt><span class="term"><code class="option">+tries=T</code></span></dt>
458 Sets the number of times to try UDP queries to server to
459 <em class="parameter"><code>T</code></em> instead of the default, 3.
461 <em class="parameter"><code>T</code></em> is less than or equal to
463 tries is silently rounded up to 1.
465 <dt><span class="term"><code class="option">+retry=T</code></span></dt>
467 Sets the number of times to retry UDP queries to server to
468 <em class="parameter"><code>T</code></em> instead of the default, 2.
470 <em class="parameter"><code>+tries</code></em>, this does not include
474 <dt><span class="term"><code class="option">+ndots=D</code></span></dt>
476 Set the number of dots that have to appear in
477 <em class="parameter"><code>name</code></em> to <em class="parameter"><code>D</code></em> for it to be
478 considered absolute. The default value is that defined using
480 ndots statement in <code class="filename">/etc/resolv.conf</code>, or 1 if no
481 ndots statement is present. Names with fewer dots are
483 relative names and will be searched for in the domains listed in
485 <code class="option">search</code> or <code class="option">domain</code> directive in
486 <code class="filename">/etc/resolv.conf</code>.
488 <dt><span class="term"><code class="option">+bufsize=B</code></span></dt>
490 Set the UDP message buffer size advertised using EDNS0 to
491 <em class="parameter"><code>B</code></em> bytes. The maximum and minimum sizes
492 of this buffer are 65535 and 0 respectively. Values outside
493 this range are rounded up or down appropriately.
494 Values other than zero will cause a EDNS query to be sent.
496 <dt><span class="term"><code class="option">+edns=#</code></span></dt>
498 Specify the EDNS version to query with. Valid values
499 are 0 to 255. Setting the EDNS version will cause a
500 EDNS query to be sent. <code class="option">+noedns</code> clears the
501 remembered EDNS version.
503 <dt><span class="term"><code class="option">+[no]multiline</code></span></dt>
505 Print records like the SOA records in a verbose multi-line
506 format with human-readable comments. The default is to print
507 each record on a single line, to facilitate machine parsing
508 of the <span><strong class="command">dig</strong></span> output.
510 <dt><span class="term"><code class="option">+[no]onesoa</code></span></dt>
512 Print only one (starting) SOA record when performing
513 an AXFR. The default is to print both the starting and
516 <dt><span class="term"><code class="option">+[no]fail</code></span></dt>
518 Do not try the next server if you receive a SERVFAIL. The
520 to not try the next server which is the reverse of normal stub
524 <dt><span class="term"><code class="option">+[no]besteffort</code></span></dt>
526 Attempt to display the contents of messages which are malformed.
527 The default is to not display malformed answers.
529 <dt><span class="term"><code class="option">+[no]dnssec</code></span></dt>
531 Requests DNSSEC records be sent by setting the DNSSEC OK bit
533 in the OPT record in the additional section of the query.
535 <dt><span class="term"><code class="option">+[no]sigchase</code></span></dt>
537 Chase DNSSEC signature chains. Requires dig be compiled with
540 <dt><span class="term"><code class="option">+trusted-key=####</code></span></dt>
543 Specifies a file containing trusted keys to be used with
544 <code class="option">+sigchase</code>. Each DNSKEY record must be
548 If not specified, <span><strong class="command">dig</strong></span> will look for
549 <code class="filename">/etc/trusted-key.key</code> then
550 <code class="filename">trusted-key.key</code> in the current directory.
553 Requires dig be compiled with -DDIG_SIGCHASE.
556 <dt><span class="term"><code class="option">+[no]topdown</code></span></dt>
558 When chasing DNSSEC signature chains perform a top-down
560 Requires dig be compiled with -DDIG_SIGCHASE.
562 <dt><span class="term"><code class="option">+[no]nsid</code></span></dt>
564 Include an EDNS name server ID request when sending a query.
571 <div class="refsect1" lang="en">
572 <a name="id2545207"></a><h2>MULTIPLE QUERIES</h2>
574 The BIND 9 implementation of <span><strong class="command">dig </strong></span>
576 specifying multiple queries on the command line (in addition to
577 supporting the <code class="option">-f</code> batch file option). Each of those
578 queries can be supplied with its own set of flags, options and query
582 In this case, each <em class="parameter"><code>query</code></em> argument
584 individual query in the command-line syntax described above. Each
585 consists of any of the standard options and flags, the name to be
586 looked up, an optional query type and class and any query options that
587 should be applied to that query.
590 A global set of query options, which should be applied to all queries,
591 can also be supplied. These global query options must precede the
592 first tuple of name, class, type, options, flags, and query options
593 supplied on the command line. Any global query options (except
594 the <code class="option">+[no]cmd</code> option) can be
595 overridden by a query-specific set of query options. For example:
597 <pre class="programlisting">
598 dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
601 shows how <span><strong class="command">dig</strong></span> could be used from the
603 to make three lookups: an ANY query for <code class="literal">www.isc.org</code>, a
604 reverse lookup of 127.0.0.1 and a query for the NS records of
605 <code class="literal">isc.org</code>.
607 A global query option of <em class="parameter"><code>+qr</code></em> is
609 that <span><strong class="command">dig</strong></span> shows the initial query it made
611 lookup. The final query has a local query option of
612 <em class="parameter"><code>+noqr</code></em> which means that <span><strong class="command">dig</strong></span>
613 will not print the initial query when it looks up the NS records for
614 <code class="literal">isc.org</code>.
617 <div class="refsect1" lang="en">
618 <a name="id2545337"></a><h2>IDN SUPPORT</h2>
620 If <span><strong class="command">dig</strong></span> has been built with IDN (internationalized
621 domain name) support, it can accept and display non-ASCII domain names.
622 <span><strong class="command">dig</strong></span> appropriately converts character encoding of
623 domain name before sending a request to DNS server or displaying a
624 reply from the server.
625 If you'd like to turn off the IDN support for some reason, defines
626 the <code class="envar">IDN_DISABLE</code> environment variable.
627 The IDN support is disabled if the variable is set when
628 <span><strong class="command">dig</strong></span> runs.
631 <div class="refsect1" lang="en">
632 <a name="id2545360"></a><h2>FILES</h2>
633 <p><code class="filename">/etc/resolv.conf</code>
635 <p><code class="filename">${HOME}/.digrc</code>
638 <div class="refsect1" lang="en">
639 <a name="id2545377"></a><h2>SEE ALSO</h2>
640 <p><span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>,
641 <span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
642 <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
643 <em class="citetitle">RFC1035</em>.
646 <div class="refsect1" lang="en">
647 <a name="id2545414"></a><h2>BUGS</h2>
649 There are probably too many query options.