RSR77X 高校场景 端口映射会不久就失效

一、故障现象描述

  1. ip nat inside source static tcp 10.x.x.220 30443 183.x.x.253 30443 permit-inside的端口映射是通的,但是用了一段时间就失效了。
  2. 失效后端口映射换成ip nat inside source static tcp 10.x.x.220 30443 218.x.x.166 30443 permit-inside后就可以通,但是一天后又不通了。
  3. 尝试删除上述映射,再改回ip nat inside source static tcp 10.x.x.220 30443 183.x.x.253 30443 permit-inside,又通了。
场景拓扑

二、故障排查分析

  1. 检查外网卡数据流。待218.x.x.166的端口映射故障时,发起相应的端口映射访问时,进入外网卡(vtty 3/2),通过流表命令show ip fpm flow filter 6 0.0.0.0 0.0.0.0 218.x.x.166 255.255.255.255查看相应的数据流。发现有正确进行端口映射的转换,但是发出104字节,未收到回包(RecvBytes为0)。
  1. 检查内网卡数据流确保跨卡转发正常。进入内网卡,通过流表命令查看相应的数据流。发现内网卡也有发出,并且有收到回包。但是外网卡却没收到该回包,怀疑回包路由有问题,没有走流量进接口G3/2/2。
  1. 检查回包路由。内网线卡下show ip ref route,发现回包路由是负载的。为了确定是否是负载到错误的出口导致的,加上互联网源IP的32位静态路由走G3/2/2出口,端口映射就立即通了。故可定位回包路由负载错了出口。
  1. 检查是否配置源进源出。发现内网聚合口1有配置ip reverse-path的源进源出配置,但是按照上文分析可知回包并未匹配到源进源出配置。怀疑收包的接口并非是内网发出的接口Ag1。
  1. 检查是否内网卡收到回包的接口不匹配。内网卡show ip fpm flow user 10.16.10.220发现内网卡竟然有部分10.16.10.220,源端口是30443端口的正向流,正常应当以反向流合并在正向流中显示的。又因为通过流表查看进出接口发现该异常正向流的接口是Ag2,而非应当收到回包的Ag1,证实了上述收到回包不匹配的猜想。至此,可以定位是内网设备回包有异常导致的,部分回包到了Ag1可以通,但是回包到Ag2的就不一定通,因为不一定会负载到正确的出口G3/2/2,导致端口映射会不久就失效。

三、故障根因说明

源进源出的条件是收到内网回包的接口和从内网口发出的报文是一致的,本例中就是因为客户内网侧路由问题导致回包到了路由器错误的内网口,以至于被识别为新的数据流,无法匹配源进源出。

四、故障解决方案

  1. 方案1:修复内网其他设备的回包路由问题。
  2. 方案2:配置外部源转换,将访问内网10.x.x.220的流量,源地址转换为Ag1的地址,这样即可强制内网回包到Ag1,而不至转换错接口。配置举例如下:
conf
ip access-list extended 177
 permit ip any host 10.x.x.220 //因为先做了目的转换,所以目的地址变成内网服务器地址了
exit
ip nat pool out pre 24
 address interface Route-aggregatePort 1 match interface Route-aggregatePort 1
exit
ip nat outside source list 177 pool out
end
wr

 

上一篇 1 方案概述
下一篇 【转载】HCIE R&S 备考笔记 IGMP基础原理与实验