BIND运维工具

来源:互联网 发布:linux 如何获取网卡 编辑:程序博客网 时间:2024/06/05 21:14

一.bind-utils介绍

DNS是一种将域名解析为IP地址的服务.如:www.turbolinux.com.cn通过DNS解析,可以
得到210.77.38.126.
bind是linux系统下的一个DNS服务程序.bind-utils是bind软件提供的一组DNS工具包,
里面有一些DNS相关的工具.主要有:dig,host,nslookup,nsupdate.使用这些工具可以
进行域名解析和DNS调试工作.

二.bind-utils的安装

1.rpm包方式

GTES 10,10.5,11版本都包含有bind-utils包,可以在安装完bind包后,直接安装它们:

# rpm -ivh bind-utils.xxx.rpm

2.源码包安装

源码下载地址:http://www.isc.org/index.pl以bind-9.4.1-P1版本为例.# tar zxvf bind-9.4.1-P1.tar.gz# cd bind-9.4.1-P1# ./configure# make# make install

三.bind-utils的使用

1.dig的使用

dig是一个DNS查询工具.dig向DNS服务器发出请求,然后输出DNS服务器的返回结果.
系统管理员可以使用dig来测试DNS服务器.
dig会根据/etc/resolv.conf文件中列出的服务器,依次进行尝试.
不加参数执行dig时,dig将执行一个.查询,即根查询.

a.dig命令的格式为:

      dig  [  @server ]  [ -b address ]  [ -c class ]  [ -f filename ]  [ -k       filename ]  [ -p port# ]  [ -t type ]  [ -x addr ]  [ -y name:key ]  [       name ]  [ type ]  [ class ]  [ queryopt... ]       dig [ -h ]       dig [ global-queryopt... ]  [ query... ]
dig的简单使用:dig @server name type    server是DNS服务器的域名或ip地址.可以是以"."分割的IPv4的IP地址,也可以是以":"分割的IPv6的IP地址.如果server是一个域名,则dig先解析这个域名,然后再进行后续的查询.如果没有server参数,dig将会读取/etc/resolv.conf文件中的服务器列表.    name是需要查询的资源记录的名称.    type表示需要进行什么类型的查询,类型包括:ANY,A,MX,SIG等.如果没有指定类型,dig将进行A记录查询.示例:<code># dig @172.23.3.1 www.baidu.com A; <<>> DiG 9.2.4 <<>> @172.23.3.1 www.baidu.com A;; global options:  printcmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12603;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 4;; QUESTION SECTION:;www.baidu.com.                 IN      A;; ANSWER SECTION:www.baidu.com.          292     IN      CNAME   www.a.shifen.com.www.a.shifen.com.       705     IN      A       202.108.22.5www.a.shifen.com.       705     IN      A       202.108.22.43;; AUTHORITY SECTION:a.shifen.com.           75348   IN      NS      ns1.a.shifen.com.a.shifen.com.           75348   IN      NS      ns2.a.shifen.com.a.shifen.com.           75348   IN      NS      ns3.a.shifen.com.a.shifen.com.           75348   IN      NS      ns4.a.shifen.com.;; ADDITIONAL SECTION:ns1.a.shifen.com.       916     IN      A       202.108.22.101ns2.a.shifen.com.       396     IN      A       220.181.27.59ns3.a.shifen.com.       994     IN      A       202.108.22.102ns4.a.shifen.com.       1016    IN      A       220.181.27.58;; Query time: 172 msec;; SERVER: 172.23.3.1#53(172.23.3.1);; WHEN: Mon Oct 15 15:42:50 2007;; MSG SIZE  rcvd: 226

b.参数选项

-b    设置查询时所使用的源IP地址.这个必须是一个本地主机网络接口上的地址.-c    Internet上的DNS服务器,大部分是拒绝使用-c进行查询的.这个值可以是CH,HS等.-f    使用批处理模式从文件中读取一个需要查询的列表.-p    指定一个DNS服务器的端口,不使用-p选项,则使用默认端口53.-t    设置查询类型.默认为A类型查询.-x    反向查询.使用这个选项时,不需要提供name,class,type参数.dig会自动设置这些参数.查询选项:    dig提供了一些开关式的查询选项,用于设置查询方法和查询结果的输出.       +[no]tcp查询时,是否使用TCP协议.默认情况下是使用UDP协议.       +[no]ignore是否忽略设置有"截头"位的UDP回应包.若设置为不忽略,将使用TCP协议进行重试.       +domain=somename设置一个包含域名的搜索列表,就像在/etc/resolv.conf文件中指定的一样.       +[no]search是否使用搜索列表.默认不使用搜索列表.       +[no]adflag是否在查询中设置AD(可信数据)位.       +[no]cdflag是否在查询中设置CD(禁止检查)位.这个需要服务器不进行回应的DNSSEC确认.       +[no]recurse在查询中设置RD(递归)位.默认情况下是设置有这个标志.表示dig正常情况下会进行一个递归查询.当使用+nssearch或+trace时,这个选项将自动被禁用.       +[no]nssearch设置这个选项后,dig将在权威DNS服务器中查找结果.然后显示每个DNS服务器的SOA记录.       +[no]trace设置轨迹查询.即从根服务器开始追踪一个域名的解析过程.此选项默认是禁用的.打开此选项后,dig将反复对name进行查询.它将从根服务器开始,显示每一个服务器回答.       +[no]cmd设置是否打印初始化注释.默认是打开的.       +[no]short设置是否简化输出.默认是详细的输出.       +[no]identify在启用short选项后,是否显示IP地址和端口号.在short选项启用后,默认是不显示IP地址和端口号的.       +[no]comments是否输出注释行.默认是输出注释行.       +[no]stats是否输出统计列表.默认是输出统计列表.       +[no]qr是否输出发送出的查询内容.默认是不打印.       +[no]question在输出中是否打印"提问部分".默认是打印"提问部分".       +[no]answer在输出中是否打印"回答部分".默认是打印"回答部分".       +[no]authority在输出中是否打印"权威部分".默认是打印"权威部分".       +[no]additional在输出中是否打印"附加部分".默认是打印"附加部分".       +[no]all设置或取消所有标记设置.       +time=T设置查询的超时时间.默认超时是5秒.       +tries=T设置UDP查询的重试次数.默认是3.       +[no]multiline设置是否多行输出.默认每个记录一行.       +[no]fail是否在接收到一个错误后,尝试下一个服务器.       +[no]besteffort是否显示信息的摘要.默认是不显示.

2.host的使用

host是进行DNS查询的简单工具.用来将域名解析为IP地址. host的命令格式:

       host  [  -aCdlnrTwv ]  [ -c class ]  [ -N ndots ]  [ -R number ]  [ -t       type ]  [ -W wait ]  name [ server ]name需要解析的域名.可以是以"."分隔的IPv4地址,也可以是":"分隔的IPv6地址.serverDNS服务器的域名或IP地址.这是个可选项.指定此选项后,将会忽略/etc/resolv.conf中的设置.-a等同于-v -t选项.-C显示SOA记录.-c指定一个查询类别.默认是IN类别.-d,-v详细输出方式.-n对IPv6的IP地址进行反解析.-R一次查询中UDP协议的重试次数.默认为1.-r禁用递归查询.-T在查询中使用TCP协议.host默认使用UDP协议进行查询.-t用来指定查询类型.类型可以是CNAME,NS,SOA,SIG,KEY,AXFR等.默认是查询A类型记录.-W设置等待查询结果的时间,单位为秒.-w设置等待查询结果.等待时间取决于硬件能够记录的最大数值.

示例:

$ host www.baidu.comwww.baidu.com is an alias for www.a.shifen.com.www.a.shifen.com has address 202.108.22.5www.a.shifen.com has address 202.108.22.43$ host -T www.baidu.comwww.baidu.com is an alias for www.a.shifen.com.www.a.shifen.com has address 202.108.22.5www.a.shifen.com has address 202.108.22.43$ host www.gmail.comwww.gmail.com is an alias for mail.google.com.mail.google.com is an alias for googlemail.l.google.com.googlemail.l.google.com has address 66.249.89.19googlemail.l.google.com has address 66.249.89.83googlemail.l.google.com has address 66.249.89.18$ host -t MX www.gmail.comwww.gmail.com is an alias for mail.google.com.mail.google.com is an alias for googlemail.l.google.com.

3.nslookup的使用

nslookup可以用来交互式的进行DNS查询.nslookup有2个工作模式:交互模式和非交互模式.交互模式 允许用户查询不同主机或域DNS信息.非交互模式可以输出主机或域的名称和各种信息.

命令格式:

       nslookup [ -option ]  [ name | - ]  [ server ]

使用方法:
1)交互模式

通过两种方式可以进入交互模式:a.运行nslookup时不使用任何参数.b.nslookup的第1个参数是"-",并且第2个参数是1个DNS服务器的名称或IP地址.交互模式命令:host [server]查询host的信息.可以使用当前默认的DNS服务器或指定一个server.如果host是一个IP地址,并且查询类型是A或PTR.则会输出host的域名.server <domain>改变默认DNS服务器为domain.lserver <domain>lserver使用初始的服务器来查询domain的信息.exit退出程序.set keyword[=value]这个命令用来设置一些状态信息.all输出当前设置的常用选项的信息和当前默认的服务器和主机的信息.> set allclass=value改变查询类别为:IN,CH,HS,ANY.[no]debug打开/关闭调试模式.调试模式下,会输出包发送过程的信息.[no]d2打开/关闭调试模式2.会输出比调试模式更加详细的信息.domain=name设置查询列表.[no]search如果一个查询请求中,至少包含一个".",但结尾没有".".则会将搜索列表中的域名添加到上面.port=value改变默认的TCP/UDP DNS服务器端口.默认值是53.[no]recurse如果1台服务器上没有所要查询的信息,是否要查询其他的服务器.retry=number设置重试次数.timeout=number设置超时秒数.[no]vc发送请求到服务器时,是否使用虚拟电路.示例:$ nslookup> server 202.106.195.68Default server: 202.106.195.68Address: 202.106.195.68#53> set debug> www.baidu.comServer:         202.106.195.68Address:        202.106.195.68#53------------    QUESTIONS:        www.baidu.com, type = A, class = IN    ANSWERS:    ->  www.baidu.com        canonical name = www.a.shifen.com.    ->  www.a.shifen.com        internet address = 202.108.22.43    ->  www.a.shifen.com        internet address = 202.108.22.5    AUTHORITY RECORDS:    ADDITIONAL RECORDS:------------Non-authoritative answer:www.baidu.com   canonical name = www.a.shifen.com.Name:   www.a.shifen.comAddress: 202.108.22.43Name:   www.a.shifen.comAddress: 202.108.22.5> exit$

2)非交互模式

当nslookup的第1个参数为需要查询的名称或IP地址时,会进入非交互模式.第2个参数用来指定DNS服务器的名称或IP地址.示例:$ nslookup www.sohu.com 202.106.195.68Server:         202.106.195.68Address:        202.106.195.68#53Non-authoritative answer:www.sohu.com    canonical name = d7.a.sohu.com.d7.a.sohu.com   canonical name = pagegrp7.a.sohu.com.Name:   pagegrp7.a.sohu.comAddress: 61.135.150.104Name:   pagegrp7.a.sohu.comAddress: 61.135.150.108Name:   pagegrp7.a.sohu.comAddress: 61.135.150.113Name:   pagegrp7.a.sohu.comAddress: 61.135.150.126Name:   pagegrp7.a.sohu.comAddress: 61.135.150.145Name:   pagegrp7.a.sohu.comAddress: 61.135.150.93Name:   pagegrp7.a.sohu.comAddress: 61.135.150.98Name:   pagegrp7.a.sohu.comAddress: 61.135.150.101$

4.nsupdate的使用

nsupdate是一个动态DNS更新工具.可以向DNS服务器提交更新记录的请求.它可以从区文件中添加或删除
资源记录,而不需要手动进行编辑区文件.

nsupdate命令格式:

       nsupdate  [  -d ]  [  [ -y keyname:secret ]  [ -k keyfile ]  ]  [ -v ]       [ filename ]-d调试模式.-k从keyfile文件中读取密钥信息.-ykeyname是密钥的名称,secret是以base64编码的密钥.-v使用TCP协议进行nsupdate.默认是使用UDP协议.输入格式:nsupdate可以从终端或文件中读取命令.每个命令一行.一个空行或一个"send"命令,则会将先前输入的命令发送到DNS服务器上.命令格式:server servername [ port ]发送请求到servername服务器的port端口.如果不指定servername,nsupdate将把请求发送给当前去的主DNS服务器.如:> server 192.168.0.1 53local address [ port ]发送nsupdate请求时,使用的本地地址和端口.zone zonename指定需要更新的区名. class classname指定默认类别.默认的类别是IN.key name secret指定所有更新使用的密钥.prereq nxdomain domain-name要求domain-name中不存在任何资源记录.prereq yxdomain domain-name要求domain-name存在,并且至少包含有一条记录.prereq nxrrset domain-name [ class ]  type要求domain-name中没有指定类别的资源记录.prereq yxrrset domain-name [ class ]  type要求存在一条指定的资源记录.类别和domain-name必须存在.update delete domain-name [ ttl ]  [ class ]  [ type  [ data... ]  ]删除domain-name的资源记录.如果指定了type和data,仅删除匹配的记录.update add domain-name ttl [ class ]  type data...添加一条资源记录.show显示自send命令后,所有的要求信息和更新请求.send将要求信息和更新请求发送到DNS服务器.等同于输入一个空行.

nsupdate示例:
在/etc/named.conf中添加下面一段内容:

zone "foo.ca" in {        type master;        file "db.foo.ca";        allow-transfer { 127.0.0.1; };        allow-update { 127.0.0.1; };        };

建立/var/named/db.foo.ca区文件,内容如下:

$ORIGIN .$TTL 86400      ; 1 dayfoo.ca                  IN SOA  foo.ca. root.foo.ca. (                                4          ; serial                                10800      ; refresh (3 hours)                                900        ; retry (15 minutes)                                604800     ; expire (1 week)                                86400      ; minimum (1 day)                                )$TTL 86400      ; 1 day                        NS      foo.ca.                        A       192.168.0.1  ; A记录为192.168.0.1

使用nsupdate更新这条记录:

# nsupdate> server 127.0.0.1> update delete foo.ca A>> update add foo.ca 80000 IN A 192.168.0.2>> quit

停止bind服务:

# /etc/init.d/named stop

查看db.foo.ca区文件内容:

# cat db.foo.ca$ORIGIN .$TTL 86400      ; 1 dayfoo.ca                  IN SOA  foo.ca. root.foo.ca. (                                6          ; serial                                10800      ; refresh (3 hours)                                900        ; retry (15 minutes)                                604800     ; expire (1 week)                                86400      ; minimum (1 day)                                )                        NS      foo.ca.$TTL 80000      ; 22 hours 13 minutes 20 seconds                        A       192.168.0.2    ; A记录为192.168.0.2$TTL 86400      ; 1 day                        AAAA    ::1

使用nslookup查询域名foo.ca:

# nslookup> server 127.0.0.1Default server: 127.0.0.1Address: 127.0.0.1#53> foo.caServer:         127.0.0.1Address:        127.0.0.1#53Name:   foo.caAddress: 192.168.0.2>
0 0
原创粉丝点击