现场两台LB设备配置了堆叠,旁挂ADS设备,需要将公网访问内网的流量引流到ADS设备进行检测,于是现场配置了策略路由将去往内网的流量引流到ADS上,ADS设备再将流量通过路由返回给LB设备。大致拓扑如下:
本次涉及设备的型号以及版本:SecPath L1000-S Version 7.1.064, Release 8127P41
现场反馈配置了策略路由后发现无法PING通内网地址,TRACERT跟踪发现流量到达LB设备后,下一跳一直变成了LB和ADS设备互联的接口地址。
1、让现场开启Debug查看下报文的转发过程。相关的Debug开关如下:
Debugging ip info
Debugging session session-table all
Debugging aspf packet
Debugging security-policy all
T d
T m
开启Debug后现场访问测试,输出如下Debug信息,从Debug中可以看出报文从Reth10口收到后从Reth30口转发出去,但是没有看到从Reth40收到并且从内网的Reth20口转发出去。
Receiving, interface = Reth10
version = 4, headlen = 20, tos = 0
pktlen = 78, pktid = 34202, offset = 0, ttl = 64, protocol = 17
checksum = 31253, s = 192.168.10.20, d = 172.20.4.1
channelID = 0, vpn-InstanceIn = 0, vpn-InstanceOut = 0.
prompt: Receiving IP packet from interface Reth10.
Payload: UDP
source port = 137, destination port = 137
checksum = 0x92bf, length = 58.
*Jul 21 21:17:10:483 2021 HL_LB _H3C_L1000_01 IPFW/7/IPFW_PACKET: -COntext=1;
Sending, interface = Reth30
version = 4, headlen = 20, tos = 0
pktlen = 78, pktid = 34202, offset = 0, ttl = 63, protocol = 17
checksum = 31509, s = 192.168.10.20, d = 172.20.4.1
channelID = 0, vpn-InstanceIn = 0, vpn-InstanceOut = 0.
prompt: Sending IP packet received from interface Reth10 at interface Reth30.
Payload: UDP
source port = 137, destination port = 137
checksum = 0x92bf, length = 58.
2、于是让现场在Reth40以及的Reth20接口下抓包,确认报文是否从Reth40接口收到并且从Reth20接口转发出去。抓包信息如下,Reth40的接口可以抓到ADS返回的流量,但是在Reth20的接口上没有抓到对应的流量,那么基本可以判定报文丢失在LB设备上。观察抓包的流量,发现有个奇怪的现象,报文的TTL值是在逐步递减的。一般报文的TTL值每经过一次三层设备会减一,所以现场的这种现象可能是环路导致。报文从Reth40口收到后又从Reth30口发出了,ADS设备又将该报文从Reth40口发回形成了环路。
3、
结合现场的组网情况,发现报文存在二次上LB设备的情况,同一报文先是从
Reth10口进来,之后经过ADS设备又从
Reth40口进来
。而设备是缺省开启了快转负载分担功能的,开启快速转发负载分担功能后,当一条数据流从不同入接口上来进行转发时,不再根据入接口不同区分数据流,所以导致了Reth40口收到的流量匹配了快速转发表,又从Reth30口转发出去。
通过undo ip fast-forwarding load-sharing命令关闭快速转发负载分担功能后,将会根据入接口的不同对已标识的数据流再次做出区分,建立两个快速转发表,这样问题就解决了。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作