首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 认证考试 > Linux认证 >

Linux下 DNS配置文件检查工具(2)

2008-11-27 
DNS就是Domain Name System, DNS服务器可以分为三种,高速存服务器(Cache-only server)、主服务器(Primary Name server)、辅助服务器(Second Name Server)。

    二、DNS 配置文件检查工具

    可以看出Linux下DNS配置文件比较复杂,不过我们可以通过一些工具来帮助你检查DNS文件错误。

    ping命令

    检查DNS配置最简单的方法是使用Ping命令,直接Ping主机名称。PING是一种很好的方法,它能够决定当特定主机处于开机运行状态时,网络是否正常运行。遇到DNS问题时检查的第一项是系统和网络的状态,而且首先检查并判断存在问题的DNS服务器是否有响应。如果能够PING到DNS服务器,则能确保与DNS服务器的连接无误。如果无法PING到DNS服务器,那么很有可能系统死机了。为了证实这是系统问题而非网络问题,再来检测DNS连接的路由器是否正常运行。为DNS排错时,应尽量使用IP地址替代DNS名称以减少由DNS服务器而不是主机产生问题的可能性。

#ping www.cao.com
PING www.cao.com(192.168.1.1) 56(84) bytes of data
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.420 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.374 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.372 ms
……

  nslookup命令

  在Linux下配置好DNS服务器,添加了相应的记录之后,只要IP地址保持不变,一般情况下我们就不再需要去维护DNS的数据文件了。不过在确认域名解释正常之前我们最好是测试一下所有的配置是否正常。许多人会简单地使用ping命令检查一下就算了。不过Ping指令只是一个检查网络联通情况的命令,虽然在输入的参数是域名的情况下会通过DNS进行查询,但是它只能查询A类型和CNAME类型的记录,而且只会告诉你域名是否存在,其他的信息一概欠奉。所以如果你需要对DNS的故障进行排错就必须熟练另一个更强大的工具nslookup。

  nslookup即名称服务器查找(Name Server Lookup),用来查找DNS服务器上的DNS记录。这个命令可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用那个DNS服务器进行解释。

  运行nslookup需要安装bind-utils,可以使用命令查询:

#rpm –qa|grep bind-utils

  nslookup有两种运行模式:交互式和非交互式运行模式。交互式运行模式允许用户通过域名服务器检索各种主机,并可以打印出主机名称列表。非交互式运行模式用来打印所请求的某个主机或域的特定的信息。进入“nslookup”交互式运行模式,运行下面的命令:

  #nslookup

  在使用交互模式。此时会出现提示符"<",nslookup提供了许多可用命令。下面列举其中一些常用的详细说明。

  help命令:显示帮助信息,及一些简单的命令的作用。

  exit 命令:退出nslookup命令。

  lserver命令:查找指定的域名服务器并将其设置为默认的域名服务器。

  server命令:和lserver相似,解析另一台域名服务器并将其设置为默认的服务器,不同在于本命令使用当前的默认服务器来解析。

  set命令:修改工作参数,它也是nslookup中最常用的命令。它可以包含下面的几种:

  set class:设置查询的类型,一般情况下为Internet。

  set debug:设置调试模式。

  set nodebug:设置为非调试模式。

  set d2:设置详细调试模式。

  set nod2:设置为非详细调试模式。

  set [no]defname:设置为defname,会在所有没有加"o"的名字后,自动加上默认的域名。它是默认的方式。

  set domain:设置默认的域名。

  set port:DNS的默认端口为53,用本命令可以设置其他端口,一般用于调试。

  set q(querytype):改变查询的信息的类型。默认的类型为A纪录。

  set recurse:设置查询类型为递归;若为set norecurse,查询类型为跌代;缺省为前者。

  set retry:设置重试的次数。默认的值为4。

  set root:设置默认的根服务器。

  set timeout:设置等待应答的限制时间(单位为秒),超出即为超时,如果还可以重试,就会将长超时值加倍,重新查询。默认的超时值为5秒。

  如果要进入nslookup非交互式运行模式,运行下面的命令:

#nslookup www.cao.com

  错误实例:

#nslookup
*** Can't find server name for address 192.168.2.1: Timed out
*** Default servers are not available
Default Server: UnKnown
Address: 192.168.2.1

  错误原因:如果出现错误,该命令将不能启动。一般的错误都是数据库文件或配置文件笔误所至。比如少个“.”或者文件明不正确等等。另外一个主要的原因是执行 nslookup 的系统所使用的 server(如 192.168.2.1) 不能查询其反解(1.2.168.192.in-addr.arpa)。
解决方法:

  增加 server ip 所在的 reverse zone (如 2.168.192.in-addr.arpa),确定其中有 server 本身的反解项目。

  3、 使用dlint软件检查DNS故障

  dlint是一个专门检查DNS配置文件开放源代码软件,运行它系统要求安装Perl语言和DiG命令(BIND中一个软件包):

#rpm –qa|grep perl
#dig hostname any
Perl 5.8.0
; <<>> DiG 9.2.1 <<>>
;; global options:  printcmd

  软件下载:dlint软件主页是http://www.domtools.com/dns/dlint.shtml 下载链接: http://www.domtools.com/pub/dlint1.4.0.tar.gz 文件大小:22KB。

热点排行