案例分析2:上层应用不稳定提示注册失败
ToB【to business】的移动终端产品,使用运营商提供的物联网卡,使用特定APN。
有时会长时间出现应用无法连接上服务器导致应用提示注册失败,无法使用企业的应用。
通过分析终端日志,终端驻网正常,数据业务建立正常。但是向服务器建立TCP连接时,三次握手不成功。终端向服务器发送所有TCP SYN包都没有收到回复。
43 13:54:50.315000 10.51.88.239 120.XXX.XX.XX TCP 60 46501 → 5067 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 SACK_PERM TSval=4294942152 TSecr=0 WS=256
46 13:54:51.306937 10.51.88.239 120.XXX.XX.XX TCP 60 [TCP Retransmission] 46501 → 5067 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 SACK_PERM TSval=4294942252 TSecr=0 WS=256
64 13:54:53.306875 10.51.88.239 120.XXX.XX.XX TCP 60 [TCP Retransmission] 46501 → 5067 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 SACK_PERM TSval=4294942452 TSecr=0 WS=256
移动网络核心网抓包,也是终端向服务器发送所有TCP SYN包都没有收到回复。
由于核心网收到了终端的报文,也没有收到服务器的回复报文。说明终端侧没有问题。
由于终端的iP地址是内网iP,UPF收到终端报文转发向internet时需要进行内外网地址转换。继续分析UPF的出口数据,同时重复对移动终端进行重启操作,有时终端可以登录服务器,有时登录服务器超时。
最终总结出规律,当终端内网IP映射为223网段时,可以成功登录服务器;当终端内网IP映射为111网段时,登录服务器超时。
UPF防火墙的抓包,终端可以正常访问服务器的抓包:
tcp VPN:public -->public
ID:a687f278df25097a3576895c331021
Create Time : 17:28:17
Zone: trust -->untrust slot:2 cPu:1 TTL: 00:20:00 Left: 00:18:54
Recv Interface:Eth-Trunk20.10 Rev slot:2 CPu:1
Interface:Eth-Trunk10 NextHop:XXX.XXX.XX.33
<==packets:86 bytes:6,366 => packets: 53 bytes: 4.519
10.115.90.138【终端内网IP】:44766[223.XXX.XX.XXX【终端外网IP】:52914]--> 120.XXX.XX.XX【服务端IP】:5067 PolicyName: trust=>untrust_01
TCP state:established
UPF防火墙的抓包,终端访问服务器超时的抓包:
tcp VPN:public -->public Ip: a687f03202ea073d70e6895c68c042
Create Time : 17:42:36
Zone: trust -->untrust slot:4 CPU:2 TTL: 00:00:05 Left: 00:00:05
Recv Interface:Eth-Trunk20.10 Rev slot:2 CPu:2
Interface:Eth-Trunk10 NextHop:XXX.XXX.XX.33
<--packets:0 bytes:0-->packets:2 bytes:120
10.119.50.185【终端内网IP】:40364[111.XXX.XX.XXX【终端外网IP】:44917]--> 120.XXX.XX.XX:【服务端IP】 PolicyName: trust=>untrust_01
Tcp state:connecting
即当终端外网IP时,从防火墙向服务器发起的TCP连接都无法进入established状态。
最终排查服务器防火墙将111段的IP进行了限制,被拦截了,从而导致了此问题。