ht2*_*ht2 4 domain-name-system tcpip ping internal-dns nslookup
我有一个网络服务器托管在网络中。它注册了一个域名。但是,我还为 LAN 托管了一个 DNS 服务器。所以,当有人想访问web服务器时,它会检查DNS服务器并使用内部地址192.168.xx Web服务器的公共地址是203.xxx
当我的计算机工作正常时,我会 ping 或尝试 nslookup www.mydomain.com。两者都指向内部地址 192.168.xx。有时,我或某人无法访问 www.mydomain.com。当我检查时,nslookup 返回内部地址。但是当我 ping 时,它会尝试使用这样的公共地址进行连接。
Pinging www.mydomain.com [203.x.x.x] with 32 bytes of data:
Run Code Online (Sandbox Code Playgroud)
如果发生这种情况,修复连接主要有帮助。有时,必须重新启动工作站 (Win XP)。在工作站的DNS设置中,主DNS指向DNS Sserver,辅DNS指向ISP DNS服务器。
我想知道这个问题的原因和预防方法是什么?或者比我现在的更好的修复。谢谢
您已将客户端配置为在内部 DNS 中查找其主要服务器,并将外部 DNS 服务器作为辅助服务器?你有竞争条件;如果内部 DNS 碰巧响应太慢,则客户端会从公共 DNS 服务器收到无法使用的响应。 ping正在使用针对外部 DNS 服务器的查找缓存响应,同时nslookup发送一个新请求,该请求从您的内部 DNS 服务器获取有效响应。
主服务器和辅助服务器之间的 DNS 视图不一致必然会导致这样的问题。相反,要么建立第二个内部 DNS 服务器并将其用作辅助服务器,要么将客户端配置为根本没有辅助 DNS 服务器。
此问题是由您在内部网络中使用 RFC1918 私有地址引起的。因此,您必须在网络的一侧使用一个地址访问服务器,而在另一侧使用不同的地址。
对此的短期解决方案是实施水平分割 DNS。这为您在网络内外提供了一致的 DNS 条目。
对此的长期解决方案是实施 IPv6,在这种情况下,无论您是内部的还是外部的,您都将拥有相同的服务器地址。