公司邮件系统升级,昨天搭建好AD后,做好DNS转发,发现现有的域名无法解析,一番折腾,终于找到原因。

现象:客户端登陆后nslookup和tracert结果如下

clip_image002

nslookup找不到we.contoso.com,

tracert 跟踪contoso.com 看到到AD 上就结束完成了

分析后结论是AD上的contoso.com为域内的根域,同一域名不会在转到其他dns上去解析。

有结论后要做的就是解决问题。先看下DNS拓扑

clip_image003

图中,区域1是公司DNS现状,在公司内部有DNS服务器,负责公司的客户端解析及公司内部一些自定义域名解析,不包括contoso.com解析。IDC内网DNS负责contoso.com解析及其他外部可访问的域名解析,ISP为公网DNS。公司内网DNS服务器转发到IDC内网DNS上进行contoso.com解析。

区域2是新邮件系统中AD 部分的DNS服务器,域名也是contoso.com。AD DNS做转发到公司内网DNS服务器上,然后依次递归到ISP DNS。

画出拓扑后,很容易看到问题所在,AD DNS 和IDC内网DNS上都有contoso.com的域名,且是同级别的域名。当客户端通过AD DNS解析contoso.com域名时,就只会查找AD DNS上的域名,当不存在时不会再转到IDC内网DNS上进行contoso.com解析。因为两个DNS上的contoso.com是同等的级别。

问题解决办法就是将现有IDC内网DNS服务器上的contoso.com的域名全部迁移到AD DNS服务器上,其他域名保持不变,仍由IDC内网DNS解析。

另一种解决方法是将AD DNS上的域名做更改,使AD DNS和IDC内网DNS域名不一致(但这种方法对于域名内外网要求一至的用户不适用)。

问题总结:之所以出现DNS解析故障,重要原因就是对现有网络拓扑结构不了解。前期没有做充分准备及模拟测试。还好问题很快解决,且处于小范围测试阶段没造成什么影响。