CHAPTER 9 ■ DNS DIAGNOSTICS AND TOOLS 
219
Table 9–4. dig Options 
Parameter Value 
Description 
@dns 
 
Defines the optional name or IP address (IPv4 or IPv6 format) of the name 
server to be used for the query. The default is defined in /etc/resolv.conf 
for Linux and BSD systems and Network Properties for BIND’s dig on 
Windows. If present, it must be preceded by @; for example, 
dig @192.168.2.53 www.example.com. 
domain 
 
Defines the name to be used in the query. Unlike nslookup, if this is an IP 
address, it must be preceded with the -x option (see arguments parameter 
entry). It can always be preceded with -q to disambiguate, though this is 
rarely necessary. 
q-type 
RR 
Query Type. Defines the type of record to return and may take any valid, 
case-insensitive RR type, including ANY, IXFR, and AXFR. If omitted, the value 
A is assumed. This parameter may appear following the domain name or 
may be optionally preceded with -t in the identified option format. The 
following two commands will obtain only the TXT RR at the specified host if 
present:  
dig www.example.com txt  
dig -t txt www.example.com 
To get a full listing of the domain records, use the AXFR option. The AXFR 
feature may be disallowed by the allow-transfer statement in named.conf, in 
which case the command will fail with a “Connection refused” message. 
When using the IXFR type, it takes the form IXFR=sn, where sn indicates 
display all changes since the serial number sn on the SOA RR. The value ANY 
will list all available records at domain; so to get a listing of the SOA, NS, and 
MX records, as well as any others at the domain apex, use  
dig @ns1.example.com example.com any 
domain NS RRs, which can then be used to issue the above query. 
q-class IN  
ANY  
HESIOD  
CHAOS 
Query Class. The default is IN. May be optionally preceded with -c in the 
identified option format. The value ANY is a valid option for both q-type and 
q-class; to ensure the correct value is used (to disambiguate, in 
the - jargon), always specify both q-type and q-class when using this value, 
as shown here (the lines beginning with // are comments and should not be 
entered): 
// this will get any record for class IN only  
dig example.com any  
// this will get any record for any class  
dig example.com any any 
Alternatively, you can use an identified option format with -c for q-class 
and -t for q- type. When the identified option format is used, the parameter 
order is not important, as shown here:  
dig -c any -t any example.com  
See the entry for argument for the identified option format. 
Add pdf pages to word document - insert pages into PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide C# Users to Insert (Empty) PDF Page or Pages from a Supported File Format
add pages to pdf online; add page number to pdf reader
Add pdf pages to word document - VB.NET PDF Page Insert Library: insert pages into PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use VB.NET APIs to Add a New Blank Page to PDF Document
add pages to pdf in preview; add page numbers to a pdf
CHAPTER 9 ■ DNS DIAGNOSTICS AND TOOLS 
220 
Parameter Value 
Description 
q-opt 
 
Query Options. The following query options are preceded with a plus (+) and
control how the resulting DNS query operates. Multiple values may appear
in a single command.  
bufsize=bytes Defines the number of bytes to be advertised in an EDNS0 OPT meta (or
pseudo) RR. May be set to any value in range 0 to 65535. Only used with the
dnssec option. The default is 4096. 
domain=name
Replaces the default domain name (found in resolv.conf). 
edns=version
Defines the EDNS version to be used in the outgoing query. Default is
edns=0. Using +noedns will reset any previously defined value to the default. 
ndots=num 
Defines the minimum number of dots that must appear in a domain name
before it is used as a qualified name. Domain names with a lower number of
dots will have any default domain name (from resolv.conf) added before
the query is issued. The default is 1. 
[no]aaonly 
Controls whether to use authoritative query only. The default is noaaonly. 
[no]aaflag 
Synonym for [no]aaonly. 
[no]additional Controls whether to print the ADDITIONAL SECTION. The default is additional. 
[no]adflag 
Controls setting the AD flag in the query. Setting this flag (adflag) will cause
the resolver to return an AD=1 flag if the zone was signed and is fully
validated. The default is noadflag. Not relevant if query sent to an
authoritative server. 
[no]all 
Sets or unsets all flags that control printed values, such as additional or
comments. The default is all. 
[no]answer 
Controls whether to the print ANSWER SECTION. The default is answer. 
[no]authority Controls whether to print the AUTHORITY SECTION. The default is authority. 
[no]besteffort Controls whether dig will attempt to print malformed responses. The default
is nobesteffort. 
[no]comments
Controls whether to print comments. The default is comments. 
[no]cdflag 
Sets the CD (Checking Disabled) bit, which inhibits a security-aware resolver
from performing DNSSEC validation on signed zones; it must be used with
the dnssec option. The default is nocdflag. 
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
to open & read documents even though they are using different types of word processors. C#.NET Project DLLs: Copy and Paste PDF Pages. Add necessary references:
adding a page to a pdf; adding page numbers pdf
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
pageIndexes.Add(3) ' The 4th page. ' Create the new document with 3 pages. Dim outputFilePath As String = Program.RootPath + "\\" Output.pdf" newDoc.Save
add a page to a pdf in reader; adding page numbers to pdf in reader
CHAPTER 9 ■ DNS DIAGNOSTICS AND TOOLS 
221
Parameter Value 
Description 
[no]cl 
Controls whether to print class information. The default is cl. 
[no]cmd 
Controls whether to echo valid dig command-line arguments. The default is 
cmd. 
 
[no]defname 
Synonym for [no]search. 
 
[no]dnssec 
Controls whether to set the DNSSEC OK (DO) bit in the OPT pseudo header, 
thus requesting a security-aware resolver to provide security information. 
The default is nodnssec. 
[no]fail 
Controls whether dig will stop processing if it receives a SERVFAIL message to 
one of the default name servers listed in resolv.conf. The default is fail. 
 
[no]identify Only valid with short option and suppresses or prints the name server 
identity. The default for the short option is noidentify. 
 
[no]ignore 
Controls whether to ignore truncation errors rather than retry using TCP. 
The default is noignore; that is, TCP retry is used. 
 
[no]multiline Displays long RRs in standard parentheses format for multiple-line display. 
The default is nomultiline. 
[no]nsid 
Include an NSID request (OPCODE = 3; see Chapter 15) when sending a 
query. Useful if sending queries to an anycasted server. The default is nonsid. 
[no]nssearch If set, dig will attempt to obtain the SOA RRs for each authoritative name 
server for the domain name being queried. The default is nossearch. 
 
[no]question Controls whether to print QUESTION SECTION. The default is question. 
 
[no]qr 
Controls whether to print the outgoing query used to obtain the results. The 
default is noqr. 
 
[no]recurse 
Controls recursive query behavior. Recursion is automatically inhibited 
when nssearch and trace are invoked. The default is recurse. 
 
[no]search 
Controls whether to use any domain or searchlist parameters in 
resolv.conf. The default is nosearch. 
[no]short 
Controls whether to display only the answers to the query; for instance, in an 
A query, short will only display the IP address(es). The default is noshort. 
[no]showsearch Show intermediate results (search) or not (noshowsearch). The default is 
noshowsearch. Only applicable if +search option being used. 
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Add necessary references: RasterEdge.Imaging.Basic.dll. This is a VB .NET example for how to delete a range of pages from a PDF document.
add page number to pdf file; add page numbers to pdf in reader
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
options, including setting a single page, a series of pages, and random pages to be C#.NET Project DLLs for Deleting PDF Document Page. Add necessary references
adding page to pdf; add page numbers to pdf reader
CHAPTER 9  DNS DIAGNOSTICS AND TOOLS 
222 
Parameter Value 
Description 
[no]sigchase Controls whether signature chains (chains of trust) will be followed or not for 
signed zones. This option is not enabled by default and requires dig to be 
built with DDIG_SIGCHASE (standard on Ubuntu/Debian packages, 
optional with FreeBSD). The default is nosigchase. 
[no]stats 
Controls whether to display dig statistics. The default is stats. 
[no]tcp 
Controls whether to use TCP (tcp) or UDP (notcp) for queries. The default is 
notcp unless AXFR or IXFR is used. 
 
[no]topdown 
Controls whether signature validation is carried out top-down. Not enabled 
by default and requires dig to be built with DDIG_SIGCHASE (standard on 
Ubuntu/Debian packages, optional with FreeBSD). The default is notopdown. 
[no]trace 
Using the trace option causes dig to inhibit its default recursion and issue 
referrals until an authoritative name server for the domain name is reached. 
The default is notrace. 
 
[no]ttlid 
Controls whether to print TTL. The default is ttlid. 
 
[no]vc 
Synonym for [no]tcp. 
 
retry=num 
Controls the number of query retries to each server. The default is 2. 
 
time=seconds Controls the query timeout period in seconds. The default is 4 seconds. 
tries=number Controls the number of tries to each server. The default is 3. 
trusted-
key=key 
Defines the base64 material to be used as a trusted key when chasing 
signatures. Not enabled by default and requires dig to be built with 
DDIG_SIGCHASE (standard on Ubuntu/Debian packages, optional with 
FreeBSD). 
arguments 
 
The following arguments control how dig operates and are preceded with a 
minus (-). Multiple options may appear in a single command line. 
-4 
Use IPv4. Only valid for dual-stack (IPv4/IPv6) servers. 
-6 
Use IPv6. Only valid for dual-stack (IPv4/IPv6) servers. 
-b 
Defines the IP address to be used in the outgoing dig (query) message. Only 
required on a multihomed server. 
VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
All PDF pages can be converted to separate Word files within a short time in In order to convert PDF document to Word file using VB.NET Add necessary references
add pages to pdf document; adding page numbers to pdf
C# PDF insert image Library: insert images into PDF in C#.net, ASP
Create high resolution PDF file without image quality losing in ASP.NET application. Add multiple images to multipage PDF document in .NET WinForms.
add page number to pdf hyperlink; add page numbers to pdf document
CHAPTER 9 ■ DNS DIAGNOSTICS AND TOOLS 
223
Parameter Value 
Description 
-c 
Indicates that a q-class argument follows (this is the identified option 
format) and can be used as a convenience or to disambiguate from the same 
q-type options. 
-f filename 
Specifies a file containing batch commands. Any options specified on the 
command line will be in effect during the batch run; that is, they are global. 
Lines beginning with ; or # or \n in the batch file are ignored and may be 
used as comment or whitespace lines. Each line in the batch file will 
represent a single command-line query. 
 
-k dir:key 
Signs the message with TSIG using the key file in dir. 
-h 
Displays a short list of the dig options available and exits. 
-q 
Indicates that the domain argument follows (identified argument format) 
 
-p port 
Changes the port used for queries to port. The default is 53. 
 
-t 
Indicates a q-type (RR type) argument follows (this is the identified 
argument format). 
-v 
Displays the dig version number and exits. 
 
-x 
Specifies that inverse notation is being used as shown here: 
// this will fail NXDOMAIN (not found) 
dig 192.168.2.53  
// instead use  
dig -x 192.168.2.53  
// OR if you are a masochist!  
dig 53.2.168.192.in-addr.arpa ptr 
-y key 
Allows the user to enter the base64 shared secret to be used in a TSIG 
transaction. This both a long process and extremely dangerous. Use only if 
desperate and the -k option is not viable. 
dig Examples 
The following examples are designed to illustrate techniques and should not be taken literally; rather, 
use them as a starting point for experimentation and exploration on a domain of your choice. 
dig Host Query 
Here is a simple host lookup that defaults to an A RR: 
# dig www.example.com 
VB.NET PDF insert image library: insert images into PDF in vb.net
VB.NET PDF - Add Image to PDF Page in VB.NET. Guide VB.NET Programmers How to Add Images in PDF Document Using XDoc.PDF SDK for VB.NET.
adding pages to a pdf; add a blank page to a pdf
C# PDF Password Library: add, remove, edit PDF file password in C#
in C#.NET framework. Support to add password to PDF document online or in C#.NET WinForms for PDF file protection. Able to create a
adding page numbers in pdf; add page numbers pdf
CHAPTER 9  DNS DIAGNOSTICS AND TOOLS 
224 
order is important): 
# dig www.example.com a 
This is the same command but with the identified option format, so order isn’t important: 
# dig -t a www.example.com 
# dig -t a www.example.com +short 
As noted previously, type always defaults to type A. Using type ANY will always obtain more 
interesting results by providing all RR types with any given name; for example, it will get TXT, DKIM or 
address RR type. Finally, with the increasing use of DNSSEC, it’s also a trivial way to show if the zone is 
signed or not.  
The following shows a real example (however, the names have been changed, as usual, to 
www.example.com to protect the innocent) of the results (ANSWER SECTION only) when used without and 
with ANY: 
# dig www.example.com  
;; ANSWER SECTION: 
www.example.com.       84778 IN  A     192.168.129.35 
# dig www.example.com any 
;; ANSWER SECTION: 
example.com. j3LjAMHXos1lWTL1xyivarEeqexhb5y4bySWDuV1h8PvBElyeI9zrgfb 
zpYtt2EHUKGydoJOl5veowkML1AXvbHRxIox18snuT/n9OMCPxLIWENR 
12pnLNQ9Jr2zDZGy93V3ydLpXsqjdLfyTxUiLm6iLq6V6MvwDrGTqsSl KPU= 
www.example.com.       84799 IN  A     192.168.129.35 
# dig @192.168.2.224 www.example.com a 
To force use of the named server at ns1.example.com for the query, use the following: 
# dig @ns1.example.com www.example.com a 
The next command is a reverse-map query that returns a PTR RR: 
# dig -x 192.168.2.224 
dig Domain Query 
Here is a quick domain lookup that returns all RRs without labels, the domain apex or root, and typically 
gets SOA, NS, MX, and others. If a nonauthoritative server is used, it returns only the NS RRs: 
# dig @ns1.example.com example.com any 
This is the same query using the identified option format, so order isn’t important: 
# dig @ns1.example.com -t any example.com 
CHAPTER 9 ■ DNS DIAGNOSTICS AND TOOLS 
225
# dig @192.168.2.224 example.com any 
This forces use of the name server at ns1.example.net for the query: 
dig @ns1.example.net example.com a 
dig Multiple Queries 
dig will accept multiple queries per command line—as long as each query is clearly identified (or 
disambiguated). This multiple domain lookup returns nonlabel RRs (at domain apex) for both domains: 
# dig example.com any example.net any 
The following multiple domain lookup returns A RRs for the first domain and domain apex RRs for 
the second domain: 
# dig www.example.com example.net any 
This multiple domain lookup returns apex RRs for the first domain and an A RR for the second: 
# dig example.com any example.net 
If a command line starts with one format, it must be consistent. This fails on the second query: 
# dig example.com -t any example.net any 
But this format works for both: 
# dig example.com -t any example.net -t any 
And this really does work—though how useful it would be is questionable! 
# dig example.com any example.net any example.org any 
This works, too: 
# dig www.example.com www.example.net fred.example.net 
dig Output 
The following shows the output from a simple dig command to the sample example.com zone using one 
of the authoritative name servers for the zone. Chapter 11 shows the output from a dig command issued 
to a DNSSEC signed zone, and Chapter 15 contains the output from a dig command to the root-servers. 
# dig @ns1.example.com www.example.com 
; <<>> DiG 9.3.0 <<>> @ns1.example.com www.example.com 
;; global options:  printcmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 826 
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 2, ADDITIONAL: 2 
;; QUESTION SECTION: 
;www.example.com.  IN  A 
;; ANSWER SECTION: 
www.example.com.  86400  IN  A  10.1.2.1 
CHAPTER 9  DNS DIAGNOSTICS AND TOOLS 
226 
www.example.com.  86400  IN  A  192.168.254.3 
www.example.com.  86400  IN  A  172.16.2.1 
www.example.com.  86400  IN  A  192.168.2.5 
;; AUTHORITY SECTION: 
example.com.  86400  IN  NS  ns1.example.com. 
example.com.  86400  IN  NS  ns2.example.com. 
;; ADDITIONAL SECTION: 
ns1.example.com.  86400  IN  A  192.168.2.6 
ns2.example.com.  86400  IN  A  192.168.23.23 
;; Query time: 31 msec 
;; SERVER: 192.168.2.3#53(ns1.example.com) 
;; WHEN: Tue May 31 20:16:25 2005 
;; MSG SIZE  rcvd: 165 
The output from a dig command is a formatted version of the binary, or wire format, message 
response to the query formed from the dig command parameters (unless the +short option is used). The 
detailed layout of the message is described in Chapter 15. The preceding response reflects a typical 
positive response to a dig command and includes the following items: 
• The >>HEADER<< is an interpreted version of the message header. The flags and 
values of the status fields are defined in the next section, “dig Response Values.” 
• The QUESTION SECTION reflects the original query that is being answered; in this 
case, it’s a query for the A RR of www.example.com. 
• The ANSWER SECTION provides the four A RRs for www.example.com that fully answer 
the question in this case. If the ANSWER SECTION is present but contains no entries, 
then the query was not successful; the status field in the HEADER typically provides 
the reason unless the response was a referral, in which case the status field will be 
NOERR (see Chapter 15 for a referral dig response). 
• The AUTHORITY SECTION provides the NS RRs of the servers that are authoritative 
for the domain example.com. 
• The ADDITIONAL SECTION provides information that may be useful to the server; in 
this case, it is the A RRs of the name servers. 
dig Response Values 
This section describes the various fields that are present in the >>HEADER<< output to a dig command. 
DNS Flags 
The values of the flags in the dig command >>HEADER<< are an interpretation of various bits set in the 
message header, which are described in Chapter 15, Table 15–2. 
CHAPTER 9 ■ DNS DIAGNOSTICS AND TOOLS 
227
qr: Query Response. This flag is set in the preceding dig response. It simply 
means that this is a response to a query and will always be set in a dig response. 
aa: Authoritative Answer. This flag is set in the preceding dig response. It means 
that either the response came from an authoritative name server for the 
domain, which is true for the preceding case, or this was the first time the data 
was read from an authoritative name server into a caching name server. In the 
latter case, if the dig command is immediately reissued, the aa bit will not be set 
because it will have been read from the cache, in which case the aa bit is never 
set. 
rd: Recursion Desired. This flag is set in the preceding dig response. This flag is 
copied from the query request (the dig command) and means that the 
incoming query (the dig message) requested recursive support. 
ra: Recursion Available. This flag is set in the preceding dig response. This flag 
means that the responding name server (ns1.example.com) supports recursive 
queries. 
ad: Authenticated Data. This flag is not set in the preceding dig response. This 
flag is only valid with DNSSEC (the +dnssec option was set in the dig command) 
and indicates the target name server is security aware (the dnssec-enable yes; 
statement is present in the named.conf file), the query response came from a 
signed zone, and the data was fully authenticated. 
cd: Checking Disabled. This flag is not set in the preceding dig response. This 
flag is only valid with DNSSEC and indicates that the issuing query wishes to 
bypass any DNSSEC validation sequence performed by the name server when 
dig 
command if the +cdflag option is used. 
do: DNSSEC OK. This flag is not set in the preceding dig response. This flag is 
only valid with DNSSEC and is set in the extended OPT PSEUDOSECTION that is 
always present in DNSSEC transactions (see Chapter 11). It will only be set in a 
dig response if the +dnssec option is used and the target name server is security 
aware (a dnssec-enable yes; statement is present in its named.conf). 
DNS Status 
The values of the status field in a dig response are an interpretation of the RCODE field of the message 
header and are described in Chapter 15, but reproduced here for convenience: 
NOERR: No error condition. 
FORMERR: Format error—the name server was unable to interpret the query. 
SERVFAIL: Server failure—the name server was unable to process this query due 
to either a problem with the name server or a requested feature that can’t be 
satisfied due to configuration problems. 
NXDOMAIN: Name error—meaningful only for responses from an authoritative 
name server, this code signifies that the domain name referenced in the query 
does not exist. 
CHAPTER 9  DNS DIAGNOSTICS AND TOOLS 
228 
NOTIMP: Not implemented (versions of BIND prior to 9.3 would respond with 
NOTIMPL)—the name server does not support the requested operation. 
REFUSED: The name server refuses to perform the specified operation for policy 
reasons. For example, a name server may not wish to provide the information 
to the particular requester or a name server may not wish to perform a 
particular operation such as a zone transfer (AXFR). 
YXDomain: Name exists when it should not (RFC 2136). 
YXRRSet: RRset exists when it should not (RFC 2136). 
NXRRSet: RRset that should exist does not (RFC 2136). 
NotAuth: Server not authoritative for zone (RFC 2136). 
NotZone: Name not contained in zone (RFC 2136). 
BIND named-compilezone Utility 
The named-compilezone utility translates a normal text zone file into a raw (binary) format that may be 
loaded by BIND using the named.conf masterfile-format statement (see Chapter 12). When a number of 
text zones are being loaded, BIND’s startup time can be considerable. Having zone files in raw format 
can save significant time during the load or reload cycle. Dynamic DNS (DDNS) will work with either text 
or raw zone files. BIND typically performs significant checks when text zones are loaded but is unable to 
perform such checks when raw format is used. In order to compensate, the utility named-compilezone 
performs the normal load checks (and others) when the raw file is created. Thus, any raw file may be 
assumed to have undergone at least the same checks—and typically more—as a normal text file when 
loaded by BIND. The arguments used by named-compilezone are the same as those used for named-
checkzone, with the single exception of the utility name and are therefore documented (with both named-
checkzone and named-compilezone usage examples) under the “BIND named-checkzone/named-
compilezone Utility” section later in the chapter. 
BIND named-checkconf Utility 
The named-checkconf utility verifies the syntax of the named.conf file that controls BIND’s operation. 
Whenever changes are made to the named.conf file, this utility should be run before restarting BIND. If 
you don’t do this and you do have a problem, your name server will be offline while you scramble 
around making changes under pressure. If the named.conf file has no errors, the utility provides silent 
confirmation—it outputs nothing. No news in this case is indeed good news. 
named-checkconf Syntax 
named-checkconf [-h] [-j] [-p] [-t directory] [-v] [-z] [filename] 
named-checkconf Options 
Table 9–5 describes the options available with the named-checkconf command. 
Documents you may be interested
Documents you may be interested