一点背景:
我的 LAN 上有一台服务器静态 NAT'd 到我的 Cisco 871 中的公共 IP。同一本地子网的其余部分静态 NAT'd 到不同的公共 IP,以分离流量。我的域的权威公共名称服务器具有该服务器的所有相关且正确的记录。此外,该信息几周前已完全传播到世界其他地方。
问题:
当从与服务器位于同一物理 LAN 上的任何机器上执行我的域的 nslookup 时,无论子网如何(我有两个子网),我都会返回服务器的本地 IP 而不是其公共 IP。nslookup 在从该网络外部执行时返回正确的(公共)IP。
到目前为止我所知道的:
我知道一旦删除服务器的静态 NAT,问题就会消失(请参阅下面配置中的粗线)。我没有将 CBAC 用于 DNS 流量或任何类似性质的东西。我和我的同事们都非常困惑。
以下是我的配置中的相关片段(故意更改的地址):
- ip nat 池办公室 65.xx162 65.xx162 网络掩码 255.255.255.240
- ip nat 池来宾 65.xx164 65.xx164 网络掩码 255.255.255.240
- ip nat inside source list 1 pool office 过载
- ip nat inside source list 2 pool guest 超载
- ip nat inside source static tcp 192.168.1.1 22 接口 FastEthernet4 41234
- ip nat inside source static tcp 192.168.1.69 22 接口 FastEthernet4 44321
- ip nat inside source static tcp 192.168.1.12 3389 interface FastEthernet4 51234
- ip nat inside source static 192.168.1.9 65.xx163
- !
- 访问列表 1 许可 192.168.1.0 0.0.0.255
- 访问列表 1 拒绝任何
- 访问列表 2 许可 192.168.100.0 0.0.0.255
- 访问列表 2 拒绝任何
有人可以帮我理解为什么会这样吗?
它被称为“DNS Doctoring”——它试图通过为本地客户端提供本地地址而不是 NAT 地址来帮助您:
与 NAT 常见问题的链接
这样做是因为 IOS 防火墙代码(很像 PIX 或 ASA)默认检查 DNS,因此要禁用它会发出“不检查 dns”。据推测,当您开始使用静态 NAT 时,IOS 防火墙行为就会启动。
与 DNS Doctoring 上的 PIX/ASA 详细信息链接
要禁用 DNS 医生,请尝试以下命令:
no ip nat service alg udp dns
您可能想发布一些有关您的 DNS 解析结构的信息。例如客户端 -> 服务器 A -> ISP A。当服务器的 NAT 到位时,您正在创建一个“循环”,其中最后一个用于解析外部服务器的内部 DNS 系统正在寻找您的服务器的公共IP而不是您的ISP?
澄清一下。当 NAT 未到位时,您的路由器将提供解析或将其转发给 ISP。但是使用 NAT,流量会被发送回服务器本身。