思科 – NAT导致nslookup返回本地IP

一点背景

我在我的局域网上有一台服务器,它静态NAT到我的Cisco 871中的公共IP地址。同一本地子网的其余部分静态NAT到不同的公网IP,以便分离stream量。 我的域的权威公共名称服务器具有所有相关和正确的服务器logging。 而且,这些信息在几个星期前完全传播到了世界其他地方。

问题

当在与服务器相同的物理局域网上的任何机器上执行nslookup我的域名时,无论子网(我有两个子网),我都取回服务器的本地IP而不是公有IP。 nslookup从外部networking执行时返回正确的(公共)IP。

到目前为止我所知道的是

我知道,一旦我删除了服务器的静态NAT,问题就会消失(请参阅下面的configuration中的粗体行)。 我不使用CBAC的DNSstream量或任何性质的东西。 我和我的同事都非常困惑。

以下是我的configuration中的相关片段(地址有意更改):

  • ip nat pool office 65.xx162 65.xx162 netmask 255.255.255.240
  • ip nat pool guest 65.xx164 65.xx164 netmask 255.255.255.240
  • ip nat内源列表1池办公室超载
  • ip源NAT列表中的2个池池客户端过载
  • ip nat内部源静态tcp 192.168.1.1 22接口FastEthernet4 41234
  • ip NAT内源静态TCP 192.168.1.69 22接口FastEthernet4 44321
  • ip nat内部源静态tcp 192.168.1.12 3389接口FastEthernet4 51234
  • ip nat里面源静态192.168.1.9 65.xx163
  • access-list 1 permit 192.168.1.0 0.0.0.255
  • 访问列表1否认任何
  • access-list 2 permit 192.168.100.0 0.0.0.255
  • 访问列表2拒绝任何

有人可以帮助我理解为什么这是发生?

这就是所谓的“DNS医生” – 它试图通过给本地客户端本地地址而不是NAT地址来帮助你:

链接与NAT常见问题

这样做是因为IOS防火墙代码(很像PIX或ASA)默认情况下检查DNS,所以禁用它发出“不检查DNS”。 当您开始使用静态NAT时,推测IOS防火墙的行为会起作用。

与DNS Doctoring上的PIX / ASA详细信息链接

要禁用DNS Doctoring,请尝试以下命令:

no ip nat service alg udp dns

您可能需要在您的DNSparsing结构上发布一些信息。 例如,客户端 – >服务器A – > ISP A.这听起来像是当服务器的NAT正在创build一个'循环'的地方,最后一个内部DNS系统去parsing到外部服务器正在寻找您的服务器公网IP而不是你的ISP?

澄清一点。 当NAT不在时,您的路由器正在提供解决scheme或将其转发给ISP。 但是在NAT中,stream量被发送回服务器本身。