我们有两台 Cisco 2811 路由器,它们采用 HSRP 配置,保护具有多个 VLAN 的网络。我们有一个用于contoso.com
隐藏区域的辅助公共 DNS,以及mail1.contoso.com
通过 NAT 到其专用公共 IP 地址的邮件服务器。我们遇到过这种情况:从路由器后面的任何网络发起的针对该邮件服务器公共地址的 DNS 请求都会返回通过 NAT 获得的私有 IP 地址。我们设法从两侧收集数据包,有效地发现 2811 确实会将从外部到内部的数据包中的 IP 地址更改为内部全局 IP 地址,以替换内部本地 IP 地址。这可能是正常的,但此过程会干扰受保护的辅助 DNS 服务器的 DNS 区域传输,导致它接收通过 NAT 获得的地址而不是公共地址,然后将私有地址提供给 Internet,而不是提供公共 IP 地址。我们无法找到禁用 DNS 重写的确切命令,此处列出的命令Cisco - NAT 导致 nslookup 返回本地 IP不被接受。我们至少应该如何避免思科干扰 DNS 区域传输?我们最好完全禁用此 DNS 重写。
NAT 的实现过程如下:
ip nat inside source static tcp 10.x.x.9 53 217.x.x.x 53 route-map RM-NAT-ISP extendable
ip nat inside source static udp 10.x.x.9 53 217.x.x.x 53 route-map RM-NAT-ISP extendable
ip nat inside source static 10.x.x.31 217.x.x.y route-map RM-NAT-VNETWORK01-EXCHANGE
DNS 由单个端口进行 NAT,由于配置中存在 VPN,遭受 DNS 重写的服务器使用路由图进行静态 NAT。有一份文档指出,Cisco 路由器不应使用路由图对静态 NAT 进行 DNS 重写,也不应干扰 DNS 区域传输 - 但我们观察到的情况恰恰相反。IOS 版本信息:
R1#sh ver
Cisco IOS Software, 2800 Software (C2800NM-ADVENTERPRISEK9-M), Version 12.4(25b), RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2009 by Cisco Systems, Inc.
Compiled Wed 12-Aug-09 11:53 by prod_rel_team
ROM: System Bootstrap, Version 12.4(13r)T11, RELEASE SOFTWARE (fc1)
R1 uptime is 33 weeks, 6 days, 9 hours, 55 minutes
System returned to ROM by Reload Command
System restarted at 03:43:40 GMT+3 Tue Jul 19 2016
System image file is "flash:c2800nm-adventerprisek9-mz.124-25b.bin"
<snip>
Cisco 2811 (revision 53.51) with 512000K/12288K bytes of memory.
Processor board ID FGL153312DD
2 FastEthernet interfaces
1 Virtual Private Network (VPN) Module
DRAM configuration is 64 bits wide with parity enabled.
239K bytes of non-volatile configuration memory.
126976K bytes of ATA CompactFlash (Read/Write)
Configuration register is 0x2102
ip nat service ?
输出:
R1(config)#ip nat service ?
H225 H323-H225 protocol
allow-h323-keepalive Allow H323 KeepAlive
allow-sip-even-rtp-ports Allow even RTP ports for SIP
append-ldap-search-res Append ldap search result
fullrange allocate all available port of 1 to 65535
list Specify access list describing global addresses
mgcp Media Gateway Control Protocol
nbar nbar protocol
ras H323-RAS protocol
rtsp Real Time Streaming Protocol
sip SIP protocol
skinny skinny protocol
答案1
您应该在 DNS 服务器映射的no-payload
末尾添加选项。ip nat inside source static
答案2
老帖子,但我遇到了同样的问题并且刚刚找到了答案,所以在这里分享它。
在IOS-XE 16.9上我在全局执行模式下添加了以下两行设置:
Router(config)#no ip nat service dns udp
Router(config)#no ip nat service dns tcp