思科端口转发走错机器

网络工程 思科 纳特
2021-07-23 01:36:08

我们正在内部网络中运行一些我们希望向外界公开的服务。起初,我们在使用电子邮件、DNS 和 www 时遇到了麻烦。不知道发生了什么,但电子邮件和 dns 突然开始工作。

关于 www,我们将流量转发到我们的 apache 服务器(192.168.2.15),端口转发规则如下:

ip nat inside source static tcp 192.168.2.15 80 interface Dialer0 80

出于某种原因,它被路由到网络上的另一台服务器。我们知道这一点是因为该服务器的防火墙燃烧了请求。有什么方法可以使这些静态规则更加强制执行,并将流量传输到正确的服务器。

更新

tcp <public>:53       192.168.2.5:53        ---                   ---
tcp <public>:25       192.168.2.10:25       ---                   ---
tcp <public>:465      192.168.2.10:465      ---                   ---
tcp <public>:993      192.168.2.10:993      ---                   ---
--- <public>          192.168.2.5       ---                   ---

NAT 定义

no ip nat service sip udp port 5060
no ip nat service sip udp port 5080         
ip route 0.0.0.0 0.0.0.0 Dialer0
access-list 1 permit 192.168.2.0 0.0.0.255
ip nat inside source list 1 interface Dialer0 overload
ip nat inside source static tcp 192.168.2.5 53 interface Dialer0 53
ip nat inside source static tcp 192.168.2.15 80 interface Dialer0 80
ip nat inside source static tcp 192.168.2.10 25 interface Dialer0 25
ip nat inside source static tcp 192.168.2.10 465 interface Dialer0 465
ip nat inside source static tcp 192.168.2.10 993 interface Dialer0 993
ip nat inside source static tcp 192.168.2.10 995 interface Dialer0 995
ip nat inside source static tcp 192.168.2.15 443 interface Dialer0 443
ip nat inside source static udp 192.168.2.5 5060 interface Dialer0 5060
ip nat inside source static udp 192.168.2.20 5080 interface Dialer0 5080
access-list 130 permit udp any any range 8000 65535
route-map voip-rtp permit 1
match ip address 130
ip nat inside source static 192.168.2.5 <public ip> route-map voip-rtp

NAT 传输

tcp public-ip:53       192.168.2.5:53        ---                   ---
tcp public-ip:25       192.168.2.10:25       ---                   ---
tcp public-ip:465      192.168.2.10:465      ---                   ---
tcp public-ip:993      192.168.2.10:993      ---                   ---
--- public-ip          192.168.2.5           ---                   ---

提前致谢,

来自多伦多的尼克。

1个回答

是否有第二个端口 80 规则?(应该不可能,但我已经看到它发生了)

show ip nat translations | include ---

路由器上的 arp 缓存是否有某种错误——即它认为 2.15 在另一台机器上?

show ip arp <inside interface>

最后,IOS 过去在 NAT 和动态接口地址方面存在重大问题。在我的 cablemodem-feed 路由器上,我必须用完整的 IP 地址替换 NAT 规则(每次地址更改时!)才能使其工作;如果 dhcp 正在设置地址,或者地址后来随着接口的启动而改变,则规则将无法正确应用。我从来没有在带有静态地址的 DSL 线路上使用过“interface nat”。

[更新]

ip nat inside source static 192.168.2.5 <public ip> route-map voip-rtp

这就是导致错误的原因。正如您在防火墙输出中看到的,DST 是 2.5,而不是 2.15。并且表中没有端口 80 转换。

[进一步更新]

无法使 Cisco IOS 设备 NAT 成为 UDP 端口范围。它可以完美地用于 TCP,但完全忽略 UDP。(Cisco 这样做很好。)如果您尝试将路由映射与指定端口的 acl 一起使用,它会生成与 acl 匹配的错误。(打开各种调试器查看) 内部目标 NAT 忽略 UDP 部分。