扫一扫
关注微信公众号

掌握技巧 DNS服务器快速排错
2009-08-15   IT专家网

  对于6月份我国相继发生的两起大规模断网事件,大家应该记忆犹新。事后分析,这两起断网事件都是源于黑客对ISP的DNS服务器攻击导致名解析风暴所致。由此可见,DNS服务器对于网络运营的重要性。同样的,DNS也是当前企业局域网中非常关键的服务器。如果DNS服务器出错,将对企业局域网造成重大影响,甚至瘫痪。基于Wndows Server 2008平台的DNS服务器无疑是最佳方案,但如果出错该从哪些方面进行排错呢?本文笔者将和大家共享5个非常重要的排错技巧。

  1、从检查服务器的TCP/IP配置开始

  在DNS错误中,与TCP/IP相关的比较多,因此我们的排错首先应该从检查服务器的TCP/IP配置开始。进入服务器的TCP/IP配置窗口,检查并验证其设置是否有误,如果有误恢复其正确设置即可。笔者的经验,建议大家在配置完DNS后不仅要对DNS配置进行备份,同时也要服务器的TCP/IP设置进行备份,这样恢复起来就非常方便了。在服务器的命令提示符下执行命令“netsh interface dump>C:\settings.txt”,就会将其TCP/IP设置备份到C盘下的settings.txt文件中。如果要进行恢复可执行命令“netsh exec C:\settings.txt”即可。如果恢复或者重新配置TCP/IP后DNS错误依然存在,我们可继续进行下面的排错。(图1)

掌握技巧,DNS服务器快速排错

  2、不要忽视服务器的缓存

  和DNS客户端类似,DNS服务器也有自己的解析缓存,而这经常被管理所忽略。DNS服务器上的这个缓存主要用于响应自己经常执行的(可能是客户端要求的,也可能是服务器自己需要的)解析查询记录需求。如果我们怀疑DNS服务器故障是因为老的记录导致的,那么可在命令提示符下执行命令“dnscmd servername /zoneprint .”来查看DNS服务器的缓存。该命令中的“servername”是DNS服务器的名称或者IP地址,“.”表示我们要查看的是服务器的缓存,这缓存的列表中会包含被该服务器使用的根名称服务器。

  通过查看服务器缓存,管理员可以据此做出判断。如果有必要,我们可强制让服务器清空自己的缓存。为此,可在DNS控制台中用鼠标右键单击服务器项,然后选择“清除缓存”命令即可。另外,我们可在命令行下执行命令“dnscmd servername /clearcache”也可以清除服务器缓存。其中,servername是要清除缓存的DNS服务器的名称或者IP地址。(图2)

掌握技巧,DNS服务器快速排错

  3、检查DNS服务器的配置

  在DNS服务器发生故障时,检查DNS服务器的配置应该是最主要的排错步骤。因为大部分情况下,DNS问题都和DNS服务器的配置有关。我们在实战中除了尝试在大量选项卡对话框中寻找蛛丝马迹外,还可以求助于dnscmd命令。如果要查看DNS服务器的配置信息,只需在命令行下执行“dnscmd servername /info”命令即可。其中servername是要检查的DNS服务器的名称或IP地址,例如“df”或“192.168.1.25”,该命令的输出结果如图所示。在此,需要管理员熟悉“dnscmd /info”命令输出内容中每个字段的含义。通常情况下,作为管理员没有必要对每个字段都非常了解,不过要了解其中比较关键的几个字段。此外,我们可通过使用“dnscmd /config”命令配置DNS服务器。对于一些主要的配置范例大家应该掌握。例如,我们需要设置fBindSecondaries选项允许maximum compression以及efficiency,那么就可以运行“dnscmd servername /config /BindSecondaries 0”命令即可。同样servername是要配置的DNS服务器的名称或者IP地址。需要说明的是,该命令会覆盖默认的用于支持其他DNS服务器选项。(图3)

掌握技巧,DNS服务器快速排错

  另一个对于DNS服务器进行排错非常有用的命令是“dnscmd /statistics”,该命令可以显示许多我们非常感兴趣的信息。这些信息对我们进行DNS排错很有帮助。(1).DNS服务器时间统计,包括服务器的启动时间,启动后的秒数,以及最后一次清理的日期和时间。(2).查询和响应的详细信息,包括收到的查询总数,发出的相应总数,发送和接收的UDP查询数量,发送和接收的UDP响应的数量,以及发送和接收的TCP查询数量,还有发送和接收的TCP响应的数量。(3).被记录的查询的详情,包括每个类型的发送记录的准确数量。(4).失败的详情以及位置,包括递归失败、重试限制到达,以及收到不完整的回应。(5).动态更新的数量信息,每个更新类型的状态,安全更新的打断次数和状态,被转发的更新的数量,已经记录被更新的类型。

  (6).被DNS使用的内存数量信息,包括总的内存使用、标准分配,以及从标准到堆的分配。(图4)

掌握技巧,DNS服务器快速排错

#p#副标题#e#

  笔者建议,大家可使用“dnscmd /statistics”命令将DNS的状态保存为一个文件,这样可方便我们查看,因为命令行的缓冲限制被输出的内容。另外,这样也方便我们在空闲的时间查看服务器的状态。例如我们执行命令“dnscmd 192.168.1.100 /statistics >dns-stats.txt”可将IP地址为192.168.1.100的DNS服务器上的状态信息保存在dns-stats.txt文件中。(图5)

掌握技巧,DNS服务器快速排错

  4、在其他DNS服务器上检查传送

  作为一条很好的安全策略,我们可利用Active Directory的复制功能将DNS的区信息自动复制出来,这样当某台DNS服务器发生故障时,我们可以在其他DNS服务器上检查传送。默认情况下,Active Directory每180秒会检查依次区域变动,为了满足我们的需要,可以使用dnscmd命令设置目录服务轮询的时间间隔。命令格式为“dnscmd servername /config /dspollinginterval interval”,其中servername是DNS服务器的名称或IP地址,而interval是要使用的轮询间隔的时间。如果问题和到辅助服务器失败的变动传送有关,要确保区域传送已经启用。如果区域传送的配置正确,可尝试更新主要服务器上区域记录的序列号。在DNS控制台中,用鼠标右键单击服务器项,然后选择“更新服务器数据文件”命令即可。这样就会按照需要增加区域的序列号,随后如果有必要,会触发区域传送。(图6)

掌握技巧,DNS服务器快速排错

  5、检查区域和区域记录

  检查区域和区域记录,这也是我们在进行DNS排错时应该做的。同样还是利用dnscmd工具,它提供了多个有用的命令,可以帮助我们了解好记录有关的问题。例如执行命令“dnscmd servername /enumzones”会列出DNS服务器中所有可用的区域,命令的输出如图所示。其中可以操作的区域名称都会列在最左侧一列中,其他内容则告诉我们区域的类型以及配置方式。在检查了服务器上区域的这些设置后,可以使用“dnscmd servername /zoneprint zonename”命令将可疑区域的配置记录输出然后进行深入分析。其中,servername是DNS服务器的名称或IP地址,zonename是区域的名称。(图7)

掌握技巧,DNS服务器快速排错

  总结:作为管理员我们深知DNS服务器的重要性,而相对来说其排错也比较麻烦,所以明晰思路掌握排错技巧是非常必要的。当然,本文不可能囊括所有的技巧,但上述介绍的这些技巧却是最使用的。最后,希望本文对大家有所帮助。  

热词搜索:

上一篇:详细介绍局域网故障维护及优化技巧
下一篇:Linux系统应用中七大常规武器

分享到: 收藏