dns故障排错
1. 故障现象: 部分客户反应
①通过//计算机名的方式访问服务器失败,但是可以通过//IP的方式访问
②IE中通过”//主机名”的方式访问网页失败,但是可以通过”//IP”的方式客户反应DNS故障,要求排除
2. 网络环境: 域环境,已经建立内部的DNS服务器,客户端通过DHCP获取IP地址
3. 故障排查过程
① Nslookup检查域名解析,全部正常
② 在有问题的客户端”Ipconfig /all”检查DNS后缀是否正常,发现域名应该是”abc.com”,但是却是”abc”,”.com”丢失
③ 检查DHCP服务器的配置,发现分配给客户端的DNS后缀的确是”abc”.但是客户反映DHCP配置的应该是”abc.com”
④ 修改dhcp服务器,改为正确的配置.
⑤ 客户端测试实际效果,发现问题解决.
⑥ 因为,不确定是否是由于病毒造成的dhcp服务器配置被修改,所以决定第二天早上,进行抓包确定故障原因.
4. 第二天,客户反应客户还是有部分客户端无法访问共享和网页
① 再次检查DHCP服务器,发现不同网段的DNS配置不同.有些区域配置4个DNS服务器,有些区域配置2个DNS服务器
② 在客户端抓包,同时通过两种方式访问共享和网页.分析抓取到的包.发现客户端首先会进行netbios解析主机名,但是没有发现预想的DNS解析过程
③ Ipconfig /display 检查发现主机名已经被解析成了公网的某个IP地址,因此造成客户端无法访问相应的服务
④ Ipconfig /flushdns清除dns缓存
⑤ 再次抓包,发现了预想的dns解析过程,但是发现请求的是外网DNS
⑥ 修改DHCP服务器的DNS配置,只保留两个内网服务器,内部DNS进行转发
⑦ 客户端重新获取地址后,测试成功问题解决 5. 问题已经找到,但是客户端问题依旧反映存在问题.后来发现客户端没有按照要求的方法重新获取IP、清除DNS缓存.客户端需要依次运行一下命令: Ipconfig /release释放IP,确保不会有新的dns解析被缓存 Ipconfig /flushdns 清空dns缓存 Ipconfig /renew 重新从DHCP获取IP地址在运行中输入//主机名测试是否能够访问
6. 思考:
① DHCP多出来的两个IP地址是外网DNS服务,目的是防止由于内网dns故障造成客户端域名解析失败
② 内网已经配置两台DNS服务器,理论上已经能够因对服务故障.而且实践证明配置了外网DNS不但不能解决问题,反而增加了各种故障.因此,客户端完全不必要配置而外的DNS.
③ 以前访问正常,为什么最近会出现这个故障?估计以前客户端都是按照顺序选择dns服务器的,某个时候内部dns服务器重启或者解析超时,客户端选择了外网dns做解析,而解析结果一直被缓存因此导致只有部分(几个)用户服务访问异常.