DIG(1) BSD Reference Manual DIG(1) NNAAMMEE dig - send domain name query packets to name servers SSYYNNOOPPSSIISS ddiigg [_@_s_e_r_v_e_r] _d_o_m_a_i_n [_<_q_u_e_r_y_-_t_y_p_e_>] [_<_q_u_e_r_y_-_c_l_a_s_s_>] [_+_<_q_u_e_r_y_-_o_p_t_i_o_n_>] [_-_<_d_i_g_-_o_p_t_i_o_n_>] [_%_c_o_m_m_e_n_t] DDEESSCCRRIIPPTTIIOONN _D_i_g (domain information groper) is a flexible command line tool which can be used to gather information from the Domain Name System servers. _D_i_g has two modes: simple interactive mode which makes a single query, and batch which executes a query for each in a list of several query lines. All query options are accessible from the command line. The usual simple use of _d_i_g will take the form: dig @server domain query-type query-class where: _s_e_r_v_e_r may be either a domain name or a dot-notation Internet address. If this optional field is omit ted, _d_i_g will attempt to use the default name server for your machine. NNoottee:: If a domain name is specified, this will be resolved using the domain name system resolver (i.e., BIND). If your system does not support DNS, you may _h_a_v_e to specify a dot-notation address. Alternatively, if there is a server at your dis posal somewhere, all that is required is that /etc/resolv.conf be present and indicate where the default name servers reside, so that _s_e_r_v_e_r itself can be resolved. See _r_e_s_o_l_v_e_r(5) for infor mation on /etc/resolv.conf. (WARNING: Changing /etc/resolv.conf will affect the standard resolver library and potentially several programs which use it.) As an option, the user may set the environment variable LOCALRES to name a file which is to be used instead of /etc/resolv.conf (LOCALRES is spe cific to the _d_i_g resolver and not referenced by the standard resolver). If the LOCALRES variable is not set or the file is not readable then /etc/resolv.conf will be used. _d_o_m_a_i_n is the domain name for which you are requesting information. See OPTIONS [-x] for convenient way to specify inverse address query. 4.4BSD August 30, 1990 1 DIG(1) BSD Reference Manual DIG(1) _q_u_e_r_y_-_t_y_p_e is the type of information (DNS query type) that you are requesting. If omitted, the default is "a" (T_A = address). The following types are recog nized: a T_A network address any T_ANY all/any information about specified domain mx T_MX mail exchanger for the domain ns T_NS name servers soa T_SOA zone of authority record hinfo T_HINFO host information axfr T_AXFR zone transfer (must ask an authoritative server) txt T_TXT arbitrary number of strings (See RFC 1035 for the complete list.) _q_u_e_r_y_-_c_l_a_s_s is the network class requested in the query. If omitted, the default is "in" (C_IN = Internet). The following classes are recognized: in C_IN Internet class domain any C_ANY all/any class information (See RFC 1035 for the complete list.) NNoottee:: "Any" can be used to specify a class and/or a type of query. _D_i_g will parse the first occurrence of "any" to mean query-type = T_ANY. To specify query-class = C_ANY you must either specify "any" twice, or set query-class using "-c" option (see below). OOTTHHEERR OOPPTTIIOONNSS %ignored-comment "%" is used to included an argument that is simply not parsed. This may be useful if running _d_i_g in batch mode. Instead of resolving every @server- domain-name in a list of queries, you can avoid the overhead of doing so, and still have the domain name on the command line as a reference. Example: dig @128.9.0.32 %venera.isi.edu mx isi.edu -<dig option> "-" is used to specify an option which effects the operation of _d_i_g. The following options are 4.4BSD August 30, 1990 2 DIG(1) BSD Reference Manual DIG(1) currently available (although not guaranteed to be useful): -x _d_o_t_-_n_o_t_a_t_i_o_n_-_a_d_d_r_e_s_s Convenient form to specify inverse address mapping. Instead of "dig 32.0.9.128.in- addr.arpa" one can simply "dig -x 128.9.0.32". -f _f_i_l_e File for _d_i_g batch mode. The file contains a list of query specifications (_d_i_g command lines) which are to be executed succes sively. Lines beginning with ';', '#', or '\n' are ignored. Other options may still appear on command line, and will be in effect for each batch query. -T _t_i_m_e Time in seconds between start of successive queries when running in batch mode. Can be used to keep two or more batch _d_i_g commands running roughly in sync. Default is zero. -p _p_o_r_t Port number. Query a name server listening to a non-standard port number. Default is 53. -P[_p_i_n_g_-_s_t_r_i_n_g] After query returns, execute a _p_i_n_g(8) com mand for response time comparison. This rather unelegantly makes a call to the shell. The last three lines of statistics is printed for the command: ping -s server_name 56 3 If the optional "ping string" is present, it replaces "ping -s" in the shell command. -t _q_u_e_r_y_-_t_y_p_e Specify type of query. May specify either an integer value to be included in the type field or use the abbreviated mnemonic as discussed above (i.e., mx = T_MX). -c _q_u_e_r_y_-_c_l_a_s_s Specify class of query. May specify either an integer value to be included in the class field or use the abbreviated mnemonic as 4.4BSD August 30, 1990 3 DIG(1) BSD Reference Manual DIG(1) discussed above (i.e., in = C_IN). -envsav This flag specifies that the _d_i_g environment (defaults, print options, etc.), after all of the arguments are parsed, should be saved to a file to become the default environment. Useful if you do not like the standard set of defaults and do not desire to include a large number of options each time _d_i_g is used. The environment consists of resolver state variable flags, timeout, and retries as well as the flags detailing _d_i_g output (see below). If the shell environment vari able LOCALDEF is set to the name of a file, this is where the default _d_i_g environment is saved. If not, the file "DiG.env" is created in the current working directory. NNoottee:: LOCALDEF is specific to the _d_i_g resolver, and will not affect operation of the standard resolver library. Each time _d_i_g is executed, it looks for "./DiG.env" or the file specified by the shell environment variable LOCALDEF. If such file exists and is readable, then the envi ronment is restored from this file before any arguments are parsed. -envset This flag only affects batch query runs. When "-envset" is specified on a line in a _d_i_g batch file, the _d_i_g environment after the arguments are parsed, becomes the default environment for the duration of the batch file, or until the next line which specifies "-envset". -[no]stick This flag only affects batch query runs. It specifies that the _d_i_g environment (as read initially or set by "-envset" switch) is to be restored before each query (line) in a _d_i_g batch file. The default "-nostick" means that the _d_i_g environment does not stick, hence options specified on a single line in a _d_i_g batch file will remain in effect for subsequent lines (i.e. they are not restored to the "sticky" default). 4.4BSD August 30, 1990 4 DIG(1) BSD Reference Manual DIG(1) +<query option> "+" is used to specify an option to be changed in the query packet or to change _d_i_g output specifics. Many of these are the same parameters accepted by _n_s_l_o_o_k_u_p(1). If an option requires a parameter, the form is as follows: +keyword[=value] Most keywords can be abbreviated. Parsing of the "+" options is very simplistic -- a value must not be separated from its keyword by white space. The following keywords are currently available: Keyword Abbrev. Meaning [default] [no]debug (deb) turn on/off debugging mode [deb] [no]d2 turn on/off extra debugging mode [nod2] [no]recurse (rec) use/don't use recursive lookup [rec] retry=# (ret) set number of retries to # [4] time=# (ti) set timeout length to # seconds [4] [no]ko keep open option (implies vc) [noko] [no]vc use/don't use virtual circuit [novc] [no]defname (def) use/don't use default domain name [def] [no]search (sea) use/don't use domain search list [sea] domain=NAME (do) set default domain name to NAME [no]ignore (i) ignore/don't ignore trunc. errors [noi] [no]primary (pr) use/don't use primary server [nopr] [no]aaonly (aa) authoritative query only flag [noaa] [no]sort (sor) sort resource records [nosor] [no]cmd echo parsed arguments [cmd] [no]stats (st) print query statistics [st] [no]Header (H) print basic header [H] [no]header (he) print header flags [he] [no]ttlid (tt) print TTLs [tt] [no]cl print class info [nocl] [no]qr print outgoing query [noqr] [no]reply (rep) print reply [rep] [no]ques (qu) print question section [qu] [no]answer (an) print answer section [an] [no]author (au) print authoritative section [au] [no]addit (ad) print additional section [ad] pfdef set to default print flags pfmin set to minimal default print flags pfset=# set print flags to # (# can be hex/octal/decimal) pfand=# bitwise and print flags with # pfor=# bitwise or print flags with # The retry and time options affect the retransmis sion strategy used by resolver library when sending 4.4BSD August 30, 1990 5 DIG(1) BSD Reference Manual DIG(1) datagram queries. The algorithm is as follows: for i = 0 to retry - 1 for j = 1 to num_servers send_query wait((time * (2**i)) / num_servers) end end (Note: _d_i_g always uses a value of 1 for num_servers.) DDEETTAAIILLSS _D_i_g once required a slightly modified version of the BIND _r_e_s_o_l_v_e_r(3) library. BIND's resolver has (as of BIND 4.9) been augmented to work properly with _D_i_g. Essentially, _D_i_g is a straight-forward (albeit not pretty) effort of parsing arguments and setting appropriate parameters. _D_i_g uses resolver routines res_init(), res_mkquery(), res_send() as well as accessing _res structure. FFIILLEESS /etc/resolv.conf initial domain name and name server addresses EENNVVIIRROONNMMEENNTT LOCALRES file to use in place of /etc/resolv.conf LOCALDEF default environment file AAUUTTHHOORR Steve Hotz hotz@isi.edu AACCKKNNOOWWLLEEDDGGMMEENNTTSS _D_i_g uses functions from _n_s_l_o_o_k_u_p(1) authored by Andrew Cherenson. BBUUGGSS _D_i_g has a serious case of "creeping featurism" -- the result of considering several potential uses during it's development. It would probably benefit from a rigorous diet. Similarly, the print flags and granularity of the items they specify make evident their rather ad hoc gene sis. _D_i_g does not consistently exit nicely (with appropriate status) when a problem occurs somewhere in the resolver (NOTE: most of the common exit cases are handled). This is particularly annoying when running in batch mode. If it exits abnormally (and is not caught), the entire batch aborts; when such an event is trapped, _d_i_g simply contin ues with the next query. 4.4BSD August 30, 1990 6 DIG(1) BSD Reference Manual DIG(1) SSEEEE AALLSSOO named(8), resolver(3), resolver(5), nslookup(1) 4.4BSD August 30, 1990 7