USG2210双出口做端口映射,来回路径不一致问题以及解决办法。

发布时间:  2012-07-19 浏览次数:  255 下载次数:  0
问题描述
组网图:

组网说明:
G0/0/0 是联通链路 地址58.23.90.58
G0/0/1 是电信链路 地址
121.205.3.126
联通地址和电信地址的8008端口分别映射内部服务器8008端口
要求:
联通用户通过联通地址访问,
电信用户通过电信地址访问。

问题描述:
客户设备做的是上出口链路,nat server配置如下:
nat server 14 protocol tcp global 121.205.3.126 8008 inside 10.1.11.206 8008 no-reverse
nat server 15 protocol tcp global 58.23.90.58 8008 inside 10.1.11.206 8008 no-reverse
ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet0/0/0 121.205.3.1
ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet0/0/1 58.23.90.57
以上配置,通过电信的地址121.205.3.126的8008端口可以访问内部服务器,但是通过联通地址58.23.90.58 不可以访问

告警信息
处理过程
我们这边进行访问,然后通过查看双向会话:
USG2200-hidecmd]display firewall session table verbose_hide both-direction sour
ce global 218.17.167.151
tcp VPN:public --> public
Zone: untrust--> trust TTL: 00:00:05 Left: 00:00:03
Interface: Vlanif1 NextHop: 10.1.100.1 MAC: 80-fb-06-b0-0d-4d
<--packets:0 bytes:0 -->packets:1 bytes:60
218.17.167.151:2066-->58.23.90.58:8008[10.1.11.206:8008]

tcp VPN:public --> public
Zone: trust--> untrust TTL: 00:00:05 Left: 00:00:03
Interface: GigabitEthernet0/0/0 NextHop: 121.205.3.1 MAC: 00-e0-fc-65-0c-01
<--packets:0 bytes:0 -->packets:1 bytes:64
10.1.11.206:8008[58.23.90.58:8008]-->218.17.167.151:2066

问题原因分析:
访问58.23.90.58:8008时,报文由接口GigabitEthernet0/0/1(联通接口)进入,回程报文由GigabitEthernet0/0/0(电信接口)发出,上行路由器开启URPF(严格路由检查)会丢掉这类报文。
acl number 3010
rule 15 permit ip source 10.1.11.206 0
acl number 3011
rule 15 permit ip source 10.1.11.106 0
现在从外网通过联通电信地址访问都正常了,但是从内部通过公网地址访问不了,而且在设备上ping不通服务器的地址。我们来看看域内NAT
nat address-group 3 1.1.1.1 1.1.1.2
acl number 3010
rule 15 permit ip source 10.1.11.206 0
acl number 3011
rule 15 permit ip source 10.1.11.106 0
现在从外网通过联通电信地址访问都正常了,但是从内部通过公网地址访问不了,而且在设备上ping不通服务器的地址。我们来看看域内NAT
nat-policy zone trust
policy 1
action source-nat
policy source 10.1.0.0 0.0.255.255
policy destination 121.205.3.126 0
policy destination 58.23.90.58 0
address-group 3
没有发现域内NAT有问题,所以问题出现在策略路由上,因为策略路由最优先,所以导致回包的时候也匹配策略路由,直接从外网口转发出去了。这个时候我们需要把不走策略路由的流量deny掉。配置如下:

acl number 3010
rule 0 deny ip destination 10.1.0.0 0.0.255.255
rule 1 deny ip destination 10.1.100.2 0
rule 2 deny ip destination 1.1.1.1 0
rule 3 deny ip destination 1.1.1.2 0
rule 5 permit ip source 10.1.11.206 0

acl number 3011
rule 0 deny ip destination 10.1.0.0 0.0.255.255
rule 1 deny ip destination 10.1.100.2 0
rule 2 deny ip destination 1.1.1.1 0
rule 3 deny ip destination 1.1.1.2 0
rule 5 permit ip source 10.1.11.106 0
根因
1、电信地址能访问,说明到服务器地址可达。
2、在外网telnet 联通地址8008端口也是可以通,另外通过联通地址访问的时候,查看会话也是有的。说明映射没有问题。
3、 怀疑可能是端口问题,把8008替换成其他端口,比如10000端口,但还是不能访问。
4、问题可能出现在来回路径不一致上,之前也出现似的案例。
建议与总结
双出口链路做端口映射的时候,上行路由器开启URPF(严格路由检查)如果路径不一致,会丢掉报文,导致有些端口不能访问,建议可以用以上的方法解决,另外需要注意的是策略路由的配置,把不需要走策略路由的流量排除。

END