一点背景知识:
我的 LAN 上有一台服务器,它静态地通过 NAT 连接到我的 Cisco 871 中的公共 IP。同一本地子网的其余部分通过静态 NAT 连接到不同的公共 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 内部源列表 1 池办公室超载
- ip nat 内部源列表 2 池来宾过载
- ip nat 内部源静态 tcp 192.168.1.1 22 接口快速以太网4 41234
- ip nat 内部源静态 tcp 192.168.1.69 22 接口快速以太网4 44321
- ip nat 内部源静态 tcp 192.168.1.12 3389 接口快速以太网4 51234
- ip nat 内部源静态 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 拒绝任何
有人能帮助我理解为什么会发生这种情况吗?
答案1
它被称为“DNS 修复” - 它试图通过为本地客户端提供本地地址而不是 NAT 地址来帮助您:
之所以这样做,是因为 IOS 防火墙代码(与 PIX 或 ASA 非常相似)默认检查 DNS,因此要禁用它,请发出“不检查 DNS”。大概当您开始使用静态 NAT 时,IOS 防火墙行为就会启动。
答案2
要禁用 DNS 修复,请尝试以下命令:
no ip nat service alg udp dns
答案3
您可能想要发布一些有关 DNS 解析结构的信息。例如,客户端 -> 服务器 A -> ISP A。听起来,当服务器的 NAT 到位时,您正在创建一个“循环”,其中最后一个用于解析外部服务器的内部 DNS 系统正在查找您服务器的公共 IP,而不是您的 ISP??
稍微澄清一下。当没有 NAT 时,您的路由器会提供解析或将其转发给 ISP。但是有了 NAT,流量就会被发送回服务器本身。