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>
- BIND运维工具
- Bind运维接口封装解决方案
- DNS BIND之运维管理脚本
- bind()
- bind()
- Bind
- bind
- bind
- bind
- bind
- bind
- bind
- bind()
- bind()
- bind dlz - 分布式系统的请求分发工具
- Linux运维实战之DNS(bind)服务器的安装与配置
- boost.bind 如何 bind
- boost.bind 如何 bind
- Eclipse在线安装插件奇慢的解决办法
- 我out了
- 用Python访问SqlServer
- 使用SQLserver Management Studio连接VS2012自带数据库
- C++构造函数的几个难点(基于C++ 11)
- BIND运维工具
- Object-C单例模式Singleton
- 字符串
- cocos2dx 输入处理 之IMEDelegate
- java抽象类 与 接口
- android:layout_weight 的几种情况
- 黑马程序员_基本数据类型转换之向上转型和向下转换
- Core Data - How to Do a SELECT DISTINCT
- VS2010获取windows的用户名和机器名