首页/网络/BGP 与广域网速查/ESP 抓包与 SPI 对应关系核对
IPsec VPN60 条

ESP 抓包与 SPI 对应关系核对

ESP 是协议 50 的加密载荷:抓包只能看到 SPI 与序列号,用于确认双向流量与重放计数;SPI 需与两端 show 命令输出对应。

BGP 与广域网速查网络更新于 2026-10-13

ESP 抓包能看到什么

ESP 是 IPsec 的加密载荷协议,IP 协议号 50:抓包只能看到 SPI、序列号与填充信息,内层载荷已经加密。排查时用 SPI 与两端的 SA 输出对应,确认收发两个方向都有流量;经过 NAT 时 ESP 会被封装在 UDP 4500 中(NAT-T),这时抓包看到的是 UDP 报文。

基本信息

协议号IP 协议 50(ESP),AH 为 51
可见字段SPI、序列号、填充长度,载荷已加密
对应核对与设备 SA 输出中的入向/出向 SPI 逐一对应
NAT 场景NAT-T 下外层为 UDP 4500,内层仍是 ESP
方向判断入向与出向 SPI 不同,核对时不要混用

典型使用场景

  • 隧道不通时确认加密报文到底有没有发出与收到
  • 怀疑单向加密:只看到一侧 ESP 时核对两端计数
  • 防重放排查:观察序列号是否异常
  • NAT 环境确认 NAT-T 是否生效
  • 与运营商核对:用 SPI 说明是哪条 SA 的流量

抓包与核对

抓包与核对
tcpdump -ni eth0 -vv 'proto 50' -c 20       # 抓 ESP,观察 SPI 与序列号
tcpdump -ni eth0 -vv 'udp port 4500' -c 20  # NAT-T 场景,看 UDP 4500 内的 ESP
!
show crypto ipsec sa | include SPI|inbound|outbound|pkts
# 核对要点:抓包中的 SPI 应与对应方向的 SA SPI 一致
# 华为侧:display ipsec sa brief

抓包可见字段

字段含义用途
SPI安全参数索引,标识一条 SA与设备输出对应,确认是哪条隧道
序列号防重放计数器持续递增说明流量在传
填充长度块加密对齐所需正常范围内无需关注
内层载荷已加密内容抓包无法直接读出业务数据
把 SPI 当成密钥是常见误解:它只是本地用于定位 SA 的索引值,不直接暴露密钥材料,可以安全地在排障沟通中使用。
只看到单向 ESP 时不要立刻断定丢包:该方向可能只是暂时没有业务流量,先核对两端计数器与路由表,再判断是否存在单向加密。
在设备本机抓包看到的是本机发出的密文:要判断中间设备是否丢弃,需要在链路中间或对端同时取证,单点抓包无法区分「没发」和「发了但被丢」。

易错点

  • 把 SPI 当成密钥或认证信息:它只是 SA 索引,与密钥材料无关
  • 只看到单向 ESP 就判断丢包:该方向可能暂无流量,应先核对两端计数
  • NAT 环境下仍按协议 50 过滤:NAT-T 下外层是 UDP 4500,过滤条件写错会看不到任何包
  • 抓包位置选在本机就下结论:需要两端或链路中间同时取证才能判断中间设备行为

数据来源与参考

  • RFC 4303: ESP
  • Cisco: IPsec SA 查看
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌