对于所有基于Windows系统的网络来说,DNS都属于最重要的服务之一。在没有DNS支持的情况下,活动目录就不能正常工作,并且它使用到的功能也比任何其它类型的网络都多。因此,在DNS出现问题时尽快解决就成为一项非常关键的工作。幸运的是,在通常情况下这一过程是比较容易的。在本文中,作者就列出了十项DNS故障排除技术。
1:对网络连接情况进行验证
当发现DNS服务出现问题时,应该做的第一件事情就是对DNS服务器的网络连接情况进行验证。毕竟,如果实际问题仅仅是一块网卡出现了故障,耗费在从头开始对设备进行全面检查的大量时间就可以都省下来了。
对连接情况进行验证的最简单方法就是登录到DNS服务器上,并利用ping命令检查与其它机器的连接状态。还应该做的就是,尝试利用随机机器来ping连接DNS服务器。请务必牢记,只有在防火墙的配置里容许网际消息控制协议(ICMP)数据包通过的情况下,ping命令才能发挥作用。
2:确定问题波及的范围
在确定基本连接正常的情况下,下一步要做的工作就是确定问题波及的范围。实际情况是互联网名称解析服务失败,还是本地名称解析服务失败呢?对于不同的问题来说,采取的解决方法也是有很大区别的。举例来说,如果本地名称解析服务正常,而互联网名称解析服务失败的话,问题可能就是出在互联网服务供应商的DNS服务器上。
3:确认是否所有用户都受到影响
接下来要考虑的另一件事情就是是否网络上的所有用户都受到了影响,或者是仅仅限于部分用户。如果确认只有部分用户受到影响的话,请对这些用户所在的网络段位置进行检查,确认他们是否属于同一范围。如果答案是确定的话,问题可能与路由器故障或动态主机配置协议(DHCP)配置错误有关。
4:确认DNS服务器上是否运行了负载均衡处理技术
某些情况中,公司对网络服务器资源的极大需求会导致DNS服务器被分散到多台相同的网络服务器上利用DNS轮循技术实现工作量的负载平衡技术被投入使用。该技术中存在的一个典型问题就是,在其中一台服务器已经宕机的情况下,DNS服务器不会了解到实际情况发生了变化。因此,尽管其中的一台服务器已经处于脱机状态,但输入流量依然被平均分配给循环中的所有服务器。由此导致的结果就是负载平衡资源在连接间歇性方面出现问题。
5:对DNS服务器转发器进行检查
如果已经确认本地名称解析服务运行正常,但互联网名称解析服务无法工作的话,下面要检查的就是DNS服务器是否在使用转发器。尽管很多DNS服务器都利用根提示来提供互联网名称解析服务,但也有一些使用转发器连接到互联网服务供应商的DNS服务器上。如果互联网服务供应商的DNS服务器出现了问题,在解析器缓存中条目过期的情况下,互联网名称解析服务将失败。如果确认DNS服务器没有使用转发器,还可以尝试一下对服务器进行ping检测,以了解它是否在线。可能需要做的还包括致电互联网服务供应商,来了解那里是否存在任何DNS方面的问题,并确保在转发器中使用的网络IP地址仍然属于有效的。
6:尝试利用一台主机进行ping测试
如果本地网络中的名称解析服务出现问题,就应该选择尝试对网络中的其它服务器进行ping测试。首先,可以利用服务器的网络IP地址进行ping测试。这样的话,就可以确认该服务器是否依然可以连接。接下来,要做的就是利用计算机名称和服务器的完全合格域名进行ping测试。
如果网络IP地址可以通过ping测试,但域名无法通过的话,就应该对DNS服务器进行检查,以确保主机(A)记录的存在。如果没有主机(A)记录的话,DNS服务器将无法解析主机的名称。
7:使用NSLookup查询域名命令
对于排除DNS故障来说,最方便的工具之一就是NSLookup查询域名命令。它可以在Windows命令提示符窗口中使用。只要输入NSLookup加上需要测试名称解析服务的主机名称,Windows就可以返回DNS服务器的网络IP地址和解析名称(尽管在通常情况下,DNS服务器名称显示的是为未知)。它也可以提供指定主机的完全合格域名和网络IP地址。
对于两件事情来说,NSLOOKUP命令非常有用。首先,它可以容许对名称解析服务是否正常进行验证。其次,如果名称解析服务无法正常工作,它可以帮助确认使用的服务器是哪一台。请务必牢记,Nslookup的查询结果中只列出它最初连接到的DNS服务器。如果名称解析请求被转发到其它DNS服务器的话,这些服务器是不会被列出的。
8:尝试使用一台备用DNS服务器
大多数公司都拥有至少两台DNS服务器。如果主DNS服务器出现了问题,请尝试使用备用DNS服务器。如果在切换DNS服务器后,名称解析服务可以正常工作,就可以确认该问题确实是涉及到DNS服务器,而不是一些外部因素。
9:扫描病毒
大约一星期前,有人向我求助。他们的网络中出现了问题,现象是每当试图访问特定网站的时间,就会被重定向到一家恶意站点上。我最早的怀疑是DNS中毒攻击,但在发现实际情况是只有一台计算机受到影响后,这种可能性被排除了。
最后,我发现问题是一种病毒占据了TCP/IP协议栈,对所有名称解析请求进行拦截。尽管这一问题在最初看起来似乎是DNS的问题,但实际上病毒需要承担最终的责任。
10:重新启动DNS服务器
我知道这种措施看上去很象陈词滥调,但当所有解决方案都没有成功的时间,选择重新启动DNS服务器也是一条出路。在这么多年的工作经历中,我见到多起由于未知原因导致名称解析服务失败,但在重新启动DNS服务器后一切就正常的情况。
同样,我遇到过至少两起消费级路由器出现停止转发DNS请求而其它类型流量依然正常的情况。在其中一起案例中,重新启动路由器就可以解决该问题。而在另一起案例中,就必须更换路由器。据分析,该路由器可能是在前一天发生的停电事故中损坏。
还有什么?
你是否也有一些诀窍可以快速解决DNS发生的问题?如果答案是肯定的话,请告诉大家,让我们一起分享。