linux 下的dig 命令详解
linux 下的dig 命令详解在unix 和linux 下,建议大家使用dig 命令来代替nslookup 。dig 命令的功能比nslookup 强大很多,不像nslookkup 还得set 来s


linux 下的dig 命令详解
在unix 和linux 下,建议大家使用dig 命令来代替nslookup 。dig 命令的功能比nslookup 强大很多,不像nslookkup 还得set 来set 去的,怪麻烦的。下面是dig 的一些比较常用的命令:#dig 最基本的用法
dig @serverqianlong.com
#用dig 查看zone 数据传输
dig @serverqianlong.com AXFR
#用dig 查看zone 数据的增量传输
dig @serverqianlong.com IXFR=N
#用dig 查看反向解析
dig -x 124.42.102.203@server
#查找一个域的授权dns 服务器
dig qianlong.com nssearch
#从根服务器开始追踪一个域名的解析过程
dig qianlong.com trace
#查看您使用的是哪个F root dns server
dig norec@F.ROOT-SERVERS.NETHOSTNAME.BIND CHAOS TXT #查看bind 的版本号
dig @bind_dns_serverCHAOS TXT version.bind
********************************
您能够到www.isc.org 去下载一个bind for windows 的版本安装,安装后就能够在windows 上使用dig 命令了。^O^
ftp://ftp.isc.org/isc/bind/contrib/ntbind-9.3.0/BIND9.3.0.zip*********************************
用途
DNS 查询实用程式。
语法
dig [@server][-baddress][-cclass][-ffilename][-kfilename][-n ][-pport#][-ttype][-xaddr][-yname:key][name][type][class][queryopt...]dig [-h]
dig [global-queryopt...][query...]
描述
dig (域信息搜索器)命令是个用于询问DNS 域名服务器的灵活的工具。他执行DNS 搜索,显示从受请求的域名服务器返回的答复。多数DNS 管理员利用dig 作为DNS 问题的故障诊断,因为他灵活性好、易用、输出清楚。虽然通常情况下dig 使用命令行参数,但他也能够按批处理模式从文档读取搜索请求。不同于早期版本,dig 的BIND9实现允许从命令行发出多个查询。除非被告知请求特定域名服务器,dig 将尝试/etc/resolv.conf中列举的任何服务器。当未指定任何命令行参数或选项时,dig 将对“.”(根)执行NS 查询。
标志
,

-b address 配置所要询问地址的源IP 地址。这必须是主机网络接口上的某一合法的地址。
-c class 缺省查询类(IN for internet )由选项-c 重设。class 能够是任何合法类,比如查询Hesiod 记录的HS 类或查询CHAOSNET 记录的CH 类。
-f filename 使dig 在批处理模式下运行,通过从文档filename 读取一系列搜索请求加以处理。文档包含许多查询;每行一个。文档中的每一项都应该以和使用命令行接口对dig 的查询相同的方法来组织。-h 当使用选项-h 时,显示一个简短的命令行参数和选项摘要。
-k filename 要签署由dig 发送的DNS 查询连同对他们使用事务签名(TSIG )的响应,用选项-k 指定TSIG 密钥文档。
-n 缺省情况下,使用IP6.ARPA 域和RFC2874定义的二进制标号搜索IPv6地址。为了使用更早的、使用IP6.INT 域和nibble 标签的RFC1886方法,指定选项-n (nibble )。
-p port#假如需要查询一个非标准的端口号,则使用选项-p 。port#是dig 将发送其查询的端口号,而不是标准的DNS 端口号53。该选项可用于测试已在非标准端口号上配置成侦听查询的域名服务器。
-t type 配置查询类型为type 。能够是BIND9支持的任意有效查询类型。缺省查询类型是A ,除非提供-x 选项来指示一个逆向查询。通过指定AXFR 的type 能够请求一个区域传输。当需要增量区域传输(IXFR )时,type 配置为ixfr=N。增量区域传输将包含自从区域的SOA 记录中的序列号改为N 之后对区域所做的更改。
-x addr 逆向查询(将地址映射到名称)能够通过-x 选项加以简化。addr 是个以小数点为界的IPv4地址或冒号为界的IPv6地址。当使用这个选项时,无需提供name 、class 和type 参数。dig 自动运行类似11.12.13.10.in-addr.arpa 的域名查询,并分别配置查询类型和类为PTR 和IN 。
-y name:key您能够通过命令行上的-y 选项指定TSIG 密钥;name 是TSIG 密码的名称,key 是实际的密码。密码是64位加密字符串,通常由dnssec-keygen (8)生成。当在多用户系统上使用选项-y 时应该谨慎,因为密码在ps (1)的输出或shell 的历史文档中可能是可见的。当同时使用dig 和TSCG 认证时,被查询的名称服务器需要知道密码和解码规则。在BIND 中,通过提供正确的密码和named.conf 中的服务器声明实现。
参数
global-queryopt... 全局查询选项(请参阅多个查询)。
查询查询选项(请参阅查询选项)。
查询选项
dig 提供查询选项号,他影响搜索方式和结果显示。一些在查询请求报头配置或复位标志位,一部分决定显示哪些回复信息,其他的确定超时和重试战略。每个查询选项被带前缀( )的关键字标识。一些关键字配置或复位一个选项。通常前缀是求反关键字含义的字符串no 。其他关键字分配各选项的值,比如超时时间间隔。他们的格式形如 keyword=value。查询选项是:
,

[no]tcp
查询域名服务器时使用[不使用]TCP 。缺省行为是使用UDP ,除非是AXFR 或IXFR 请求,才使用TCP 连接。
[no]vc
查询名称服务器时使用[不使用]TCP 。 [no]tcp的备用语法提供了向下兼容。vc 代表虚电路。
[no]ignore
忽略UDP 响应的中断,而不是用TCP 重试。缺省情况运行TCP 重试。
domain=somename
设定包含单个域somename 的搜索列表,似乎被/etc/resolv.conf中的域伪指令指定,并且启用搜索列表处理,似乎给定了 search选项。 [no]search
使用[不使用]搜索列表或resolv.conf 中的域伪指令(假如有的话)定义的搜索列表。缺省情况不使用搜索列表。
[no]defname
不建议看作 [no]search的同义词。
[no]aaonly
该选项不做任何事。他用来提供对配置成未实现解析器标志的dig 的旧版本的兼容性。
[no]adflag
在查询中配置[不配置]AD (真实数据)位。现在AD 位只在响应中有标准含义,而查询中没有,但是出于完整性考虑在查询中这种性能能够配置。
[no]cdflag
在查询中配置[不配置]CD (检查禁用)位。他请求服务器不运行响应信息的DNSSEC 合法性。
[no]recursive
转换查询中的RD (需要递归)位配置。在缺省情况下配置该位,也就是说dig 正常情形下发送递归查询。当使用查询选项 nssearch或 trace时,递归自动禁用。
[no]nssearch
这个选项被配置时,dig 试图寻找包含待搜名称的网段的权威域名服务器,并显示网段中每台域名服务器的SOA 记录。
[no]trace
转换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。他将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。 [no]cmd
设定在输出中显示指出dig 版本及其所用的查询选项的初始注释。缺省情况下显示注释。
[no]short
提供简要答复。缺省值是以冗长格式显示答复信息。
[no]identify
,

当启用 short选项时,显示[或不显示]提供给答的IP 地址和端口号。假如请求简短格式应答,缺省情况不显示提供给答的服务器的源地址和端口号。
[no]comments
转换输出中的注释行显示。缺省值是显示注释。
[no]stats
该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息。
[no]qr
显示[不显示]发送的查询请求。缺省不显示。
[no]question
当返回应答时,显示[不显示]查询请求的问题部分。缺省作为注释显示问题部分。
[no]answer
显示[不显示]应答的回答部分。缺省显示。
[no]authority
显示[不显示]应答的权限部分。缺省显示。
[no]additional
显示[不显示]应答的附加部分。缺省显示。
[no]all
配置或清除任何显示标志。
time=T
为查询配置超时时间为T 秒。缺省是5秒。假如将T 配置为小于1的数,则以1秒作为查询超时时间。
tries=A
配置向服务器发送UDP 查询请求的重试次数为A ,代替缺省的3次。假如把A 小于或等于0,则采用1为重试次数。
ndots=D
出于完全考虑,配置必须出现在名称D 的点数。缺省值是使用在/etc/resolv.conf中的ndots 语句定义的,或是1,假如没有ndots 语句的话。带更少点数的名称被解释为相对名称,并通过搜索列表中的域或文档/etc/resolv.conf中的域伪指令进行搜索。
bufsize=B
配置使用EDNS0的UDP 消息缓冲区大小为B 字节。缓冲区的最大值和最小值分别为65535和0。超出这个范围的值自动舍入到最近的有效值。
[no]multiline
以周详的多行格式显示类似SOA 的记录,并附带可读注释。缺省值是每单个行上显示一条记录,以便于电脑解析dig 的输出。
多条查询
dig 的BIND9支持在命令行上指定多个查询(支持-f 批处理文档选项的附加功能)。每条查询能够使用自己的标志位、选项和查询选项。在这种情况下,在上面描述的命令行语法中,每条查询自变量代表一个个别查询。每一条由任意标准选项和标志、待查询名称、可选查询类型
,


和类连同任何适用于该查询的查询选项。
也能够使用对任何查询均有效的查询选项全局集合。全局查询选项必须位于命令行上第一个名称、类、类型、选项、标志和查询选项的元组之前。任何全局查询选项(除了 [no]cmd选项)能够被下面的查询特别选项重设。例如:
dig qrwww.isc.org any -x 127.0.0.1isc.org ns noqr显示dig 如何从命令行出发进行三个查询:一个针对www.isc.org 的任意查询、一个127.0.0.1的逆向查询,连同一个isc.org 的NS 记录查询。应用了 qr的全局查询选项,以便dig 显示进行每条查询的初始查询。最后那个查询有一个本地查询选项 noqr,表示dig 在搜索isc.org 的NS 记录时不显示初始查询。
示例
一个典型的dig 调用类似:
dig @servername type 其中:
server
待查询名称服务器的名称或IP 地址。能够是用点分隔的IPv4地址或用冒号分隔的IPv6地址。当由主机提供服务器参数时,dig 在查询域名服务器前先解析那个名称。假如没有服务器参数能够提供,dig 参考/etc/resolv.conf,然后查询列举在那里的域名服务器。显示来自域名服务器的应答。
name
将要查询的资源记录的名称。
type
显示所需的查询类型-ANY 、A 、MX 、SIG ,连同任何有效查询类型等。假如不提供任何类型参数,dig 将对纪录A 执行查询。