首页/网络/网络排障速查/VPN 故障排查要点(隧道通≠业务通)
排查流程与方法36 条

VPN 故障排查要点(隧道通≠业务通)

VPN 建得起来不等于业务通:MTU/分片、路由未引入、加密套件协商、NAT-T 端口(4500)都是高频问题,按「阶段」逐段验证。

网络排障速查网络更新于 2026-10-13

隧道通不等于业务通

VPN 排障最大的误区是看到隧道 Up 就认为业务应该通。IPsec/SSL VPN 的故障点分布在多个独立阶段:IKE 协商、隧道建立、感兴趣流匹配、路由引入、MTU 与分片、NAT 穿越。每个阶段失败都会表现为「不通」,但处置动作完全不同。正确的做法是按阶段逐段验证,每一步都拿到证据再往下走。

基本信息

关键阶段IKE Phase1 → Phase2 → 隧道接口互通 → 路由与感兴趣流 → MTU → 业务端口
关键端口UDP 500(IKE)、UDP 4500(NAT-T)、协议 50(ESP)
协议依据RFC 7296(IKEv2)、RFC 3948(NAT-T 封装)
MTU 建议隧道接口 MTU 下调(常见 1400 以下)并启用 MSS clamping
适用设备华为 VRP、思科 IOS、Linux strongSwan/libreswan、各类防火墙

按阶段排查

  • ① 隧道状态:IKE Phase1/Phase2 是否建立,用设备命令或日志确认
  • ② 隧道内互通:两端隧道接口地址互 ping,验证封装与解封装正常
  • ③ 路由与感兴趣流:确认业务网段被引入隧道,ACL 或感兴趣流匹配
  • ④ MTU:隧道内大包测试,逐步减小包长找到可通尺寸
  • ⑤ 业务端口:nc -zv 目标地址端口,确认是网络还是服务问题
  • ⑥ 日志:IKE 调试与 DPD(对端存活检测)日志是最终判据

隧道内 MTU 探测与抓包

隧道内 MTU 探测与抓包
# MTU 探测:1400 + 28 字节头部 = 1428,逐步减小到能通为止
ping -M do -s 1400 -c 3 <对端隧道地址>
ip link show tun0                        # 查看隧道接口 MTU 实际值
# IPsec 常见建议:隧道接口 MTU 下调到 1400 以下,并启用 MSS clamping
sudo tcpdump -i eth0 -nn 'udp port 500 or udp port 4500 or esp' -c 20   # 在物理出口抓封装流量
sudo ip xfrm state | head -20            # strongSwan/libreswan 环境下查看 IPsec 状态

阶段与验证手段

阶段验证手段失败表现
IKE 协商设备日志、抓 UDP 500/4500隧道起不来,配置看起来都正常
隧道建立查看隧道接口与 SA 状态Phase2 反复协商失败
隧道内互通两端隧道地址互 ping隧道 Up 但隧道内地址不通
路由与感兴趣流核对路由表与 ACL 匹配计数隧道内能 ping,业务网段不通
MTU 与分片ping -M do 逐步调整包长小包通、大包失败,表现为握手成功但传输卡死
业务端口nc -zv 业务地址端口网络通但服务未监听或被拦
NAT 后的 IPsec 依赖 NAT-T(UDP 4500);如果 500 或 4500 被中间设备拦截,表现就是「配置都没问题但隧道建不起来」。

易错点

  • 只看隧道 Up 就认为业务应该通:忽略路由与感兴趣流匹配,隧道起来了业务依旧不通
  • 隧道内业务卡顿先怀疑带宽:多数实际是 MTU 与分片问题,小包通大包不通是典型特征
  • 忘记 NAT-T 端口:NAT 环境下属 UDP 4500,只放行 500 会导致隧道建不起来
  • 在错误位置抓包:隧道口看到的是封装前的明文,要确认封装情况必须在物理出口抓 UDP 500/4500 或 ESP

数据来源与参考

  • RFC 7296:IKEv2
  • RFC 3948:UDP Encapsulation of IPsec ESP(NAT-T)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌