NAT设备UDP会话老化时间较短导致USG防火墙L2TP VPN频繁掉线

发布时间:  2015-09-28 浏览次数:  484 下载次数:  0
问题描述

组网拓扑图:


 

 

故障现象:

PC与防火墙穿越Internet建立L2TP 隧道, 隧道频繁出现中断

告警信息

Jan 14 2015 11:36:04+08:00 NET-FW02.PUB01.JD.Langfang L2TP/4/L2TPTUNNEL_STATUS:Slot=2/0,Vcpu=0;OID 1.3.6.1.4.1.2011.5.25.40.3.2.2.0.1 The status of L2TP tunnel changed. (LocalTunnelID=2, TunnelRemoteName=Y00190654-THINK.china.huawei.c, PeerIPAddress=202.108.100.232, TunnelStatus=Down)

Jan 14 2015 11:36:52+08:00 NET-FW02.PUB01.JD.Langfang L2TP/4/L2TPTUNNEL_STATUS:Slot=2/0,Vcpu=0;OID 1.3.6.1.4.1.2011.5.25.40.3.2.2.0.1 The status of L2TP tunnel changed. (LocalTunnelID=2, TunnelRemoteName=Y00190654-THINK.china.huawei.c, PeerIPAddress=202.108.100.232, TunnelStatus=Up)

Jan 14 2015 11:38:58+08:00 NET-FW02.PUB01.JD.Langfang L2TP/4/L2TPTUNNEL_STATUS:Slot=2/0,Vcpu=0;OID 1.3.6.1.4.1.2011.5.25.40.3.2.2.0.1 The status of L2TP tunnel changed. (LocalTunnelID=2, TunnelRemoteName=Y00190654-THINK.china.huawei.c, PeerIPAddress=202.108.100.232, TunnelStatus=Down)

Jan 14 2015 11:41:30+08:00 NET-FW02.PUB01.JD.Langfang L2TP/4/L2TPTUNNEL_STATUS:Slot=2/0,Vcpu=0;OID 1.3.6.1.4.1.2011.5.25.40.3.2.2.0.1 The status of L2TP tunnel changed. (LocalTunnelID=2, TunnelRemoteName=Y00190654-THINK.china.huawei.c, PeerIPAddress=202.108.100.232, TunnelStatus=Up)

处理过程

1.防火墙和客户端同时抓包,发现隧道断开前,防火墙一直在重传报文,但是客户端没有收到,从下面抓包看,从第775个报文开始,防火墙在一直往客户端发送报文。IP 120.52.8.6 是防火墙的地址, IP 202.108.100.232 是客户端经过NAT转换后的公网地址。


2.分析客户端抓包发现,客户端也一直在重传报文,从客户端抓包看从序号5106开始的报文一直在重传,感觉防火墙没有收到这些报文。

 


3.仔细分析服务器抓包发现,客户端刚开始跟防火墙交互报文的NAT端口和后续出现重传的报文NAT后端口不一样

1)抓包分析客户端刚开始跟防火墙交互的报文NAT后的端口是26874,但是对于那些客户端抓包看出现重传的报文,在防火墙上显示NAT端口是26878。这样就导致了防火墙无法识别客户端后续发送的心跳报文,引起防火墙上的L2TP隧道中断。

 

刚开始拨号时防火墙收到的客户端发送的报文

 

客户端重传报文在防火墙上抓取的报文

2 防火墙重传的报文客户端也一直没有收到,怀疑是因为中间NAT设备UDP会话老化时间配置较短导致的。

分析报文也可以发现,隧道出现中断发生在客户端在30S后才发送报文的时间点,怀疑现网NAT设备的UDP老化时间为30S(华为防火墙的UDP会话默认老化时间为120S

根因

中间NAT设备UDP老化时间过短,导致后续的L2TP报文转换的端口与之前不一致,从而出现L2TP业务异常。

解决方案

防火墙隧道默认心跳发送时间为60S,修改为3S后,防火墙和客户端每3S就会发送一次心跳报文,这样只要客户出口NAT的UDP会话老化时间大于3S都不会再出问题。从这一点也可以佐证上面抓包分析的结论。

建议与总结
1.无部分L2TP用户的原因是由于客户端发送到防火墙的报文NAT后的源端口发生变化,导致客户端在源端口发生变化后的报文,防火墙无法处理,并且防火墙发送的重传报文客户端也无法收到,最终引起客户端与防火墙的L2TP隧道因为心跳超时中断。
2.客户端同一条流NAT后的源端口出现变化,应该是由于客户网络出口NAT设备UDP会话老化时间较短导致的,可以通修改NAT设备的UDP会话老化时间大于60S,或者调整防火墙L2TP 隧道的心跳周期小于30S来解决这个问题。

END