服务器

位置:IT落伍者 >> 服务器 >> 浏览文章

网管经验之Windows服务器DNS故障问题[1]


发布日期:2023年12月21日
 
网管经验之Windows服务器DNS故障问题[1]
在开始讨论如何排除DNS问题之前我们想知道你是否清楚怎样判断某个问题是由DNS而不是由别的命名服务造成的在Windows主机上判断问题的原因是否真的出在DNS上可是件困难的事Windows支持的命名服务真是名目繁多如DNSWinsHOSTSLMHOSTS等数不胜数然而常用的Windows nslookup 却全然不理会其他这些命名服务你可能会只顾在Windows 计算机上运行nslookup和查询名称服务器而有问题的服务却可能在使用另一种不同的命名服务首先你需要考虑是哪一类程序出了问题如果是TCP/IP客户端如telnet或ftp那么问题可能出在DNS和HOSTS文件上如果是一个支持NetBIOS命名的实用程序如net(与在net use中一样)中那么值得怀疑的还要包括Wins和LMHOSTS文件其他也使用DNS名称或NetBIOS名称作为参数的客户端(如ping)也会使用这些命名服务中的任意一种接下来再考虑Windows使用这些命名服务的顺序在查找问题时应按照此顺序检查各种服务这些提示对你查出问题的症结会有帮助至少可帮你排除一个怀疑对象

如果要检查一个服务器的缓存区请单击DNS控制台左窗格中该服务器名称左边的加号你将看到一个名为Cached Lookups的文件夹单击其左边的加号或双击文件夹图标或标签以展开下一级这样可显示出你的名称服务器已为其缓存了数据的那些顶级域继续展开直至看到你要查看的缓存数据所在的那一域名如我们的名称服务器已为microsoftcom缓存了三条NS记录和一条A记录如果依次双击net和 hp我们还会看到这些名称服务器的缓存地址如果想看缓存数据上的 TTL请双击右窗格中的一条记录若 DNS 控制台处于高级查看模式(选择查看 > 高级)则出现的窗口将显示出该记录的 TTL在检查 TTL 之前一定要用操作 > 刷新或用 F 键刷新 DNS 控制台否则你看到的 TTL 可能会大于当前 TTL如果右键单击该记录你可能会注意到有一个删除记录选项

DNS的一些常见的错误

忘记增加序列号

在你未使用 DNS 控制台而是用手动方式更改区域数据文件时就会出现一些问题DNS 控制台在它每次更改区域数据时都会记着在 SOA 记录中增加序列号所以你不必为此操心不过这也意味着你可能不会养成更新序列号的习惯所以在进行一次性手动修改时你可能会忘记增加序列号此问题的主要症状是从属名称服务器不会获得你在主服务器上对该区域做的任何更改从属服务器认为区域数据并未更改因为它看到的序列号仍是原来的序列号该怎样检查当时是否记着增加序列号呢?不幸的是这就不是那么容易了如果你不记得原序列号是什么而现在的序列号不能表明它是什么时候更新的则没有直接的方法判断它是否已更改在启动主服务器时不管你是否更改了序列号它都将加载更新后的区域数据文件最好的办法只能是使用 nslookup 来比较主服务器和从属服务器返回的数据如果它们返回不同的数据则表明你可能忘了增加序列号如果你能想起最近作的一次更改则可以查看此数据如果记不起最近一次作的更改则可以从一个主服务器和一个从属服务器复制该区域将结果排序并使用文件比较工具将它们加以比较还有一个好消息尽管确定该区域此前是否已复制比较难但现在要确保该区域被复制却非常简单只须在 DNS 控制台中双击 SOA 记录并手动编辑序列号字段增加主服务器上此区域的副本中的序列号即可从属服务器将在刷新时间间隔内获得此新的数据如果它们用了 NOTIFY则会更快

以手动方式更改DNS服务器

要记住 Microsoft DNS 服务器会定期更新其区域数据文件每次用 DNS 控制台对一个区域的数据进行更改时就有一个写操作挂起在 DNS 服务器退出之前它必须重写该区域的数据文件否则它就会丢失你所作的更改可以将此比作内存中一个已更新的页操作系统在退出之前必须将它写到磁盘上如果你在一个写操作挂起期间对一个区域数据文件作了手动更改则在名称服务器退出后你会莫名其妙地丢失所作的更改比如你在服务器正在运行且有一个写操作挂起时向一个名为microsoftcom的新子域添加了委派作完更改后你必须将服务器停下并再次启动以让它再次读取该区域数据但是在服务器退出时它将重写 microsoftcom 区域数据文件你的委派于是就会丢掉如果仔细观察(平时就需要这样)事件查看器会在服务器停止事件之前看到这样一条消息The DNS server wrote version of zone microsoftcom to file microsoftcomdns(DNS 服务器写入区域 microsoftcom 的版本 到文件 microsoftcomdns)如果你用操作 | 更新服务器数据文件来强制服务器重写其区域数据文件则服务器就会与区域数据文件同步而不必在退出时重写所以如果要对区域数据文件作手动更改那么要么首先停止服务器(但这意味着在你作更改期间服务器将不响应任何查询)要么使用 DNS 控制台将服务器与区域数据文件同步然后再进行更改

从属服务器无法加载区域数据

如果一个从属服务器无法从其主控服务器获取某个区域的当前序列号那么最初它是不会给你发警告消息的然而如果该问题一直存在而且从属服务器在有效期时间内无法确定其数据是否是最新的那么该区域就会过期在一个 Microsoft DNS 服务器上你将在事件查看器中看到与下文类似的一条消息在获得成功区域复制或从这个区域作为其源的主服务器获得成功区域复制之前 microsoftcom 区域就超时了该区域已经被关闭区域过期后当你向名称服务器查询该区域中的数据时就会收到 SERVFAIL 错误消息

C:> nslookup robocop wormholemicrosoftcom

Server: wormholemicrosoftcom

Addresses:

wormholemicrosoftcom cant find robocopmicrosoftcom: Server failed

[] []

上一篇:网管经验之Windows服务器DNS故障问题[2]

下一篇:服务器速度极慢怎么办