子 SA 对不上怎么查
子 SA 建立了但对不上,最常见的原因是两侧选择符不互为镜像:本端的源应该等于对端的目的,一端写全、另一端只写一半或掩码写错,都会表现为 SA 不完整或数据包计数不增长。核对原则很简单——两侧的选择符必须严格镜像。
基本信息
| 镜像原则 | 本端选择符的源与目的,等于对端的目的与源 |
|---|---|
| 典型现象 | 选择符看起来完整,但数据包计数为 0 |
| 常见错误 | 掩码不一致、有无 /32、网段范围写错 |
| 验证方式 | 两端同时触发流量,观察双向计数 |
| 核对命令 | show crypto ipsec sa 的选择符与计数 |
典型使用场景
- 隧道建立但业务不通:检查选择符是否镜像
- 单向可通:检查回程方向的选择符与策略
- 割接后新增网段不通:确认新网段已加入两侧 ACL
- 多网段场景:逐条核对每对子 SA 的覆盖范围
- 跨厂商对接:两侧选择符写法差异要逐条比对
核对命令
核对命令
show crypto ipsec sa | include local ident|remote ident|pkts
# 期望结果:双向的 encaps 与 decaps 计数都在增长
!
# 华为侧
display ipsec sa
!
# 关注点:本端 local ident 与对端 remote ident 是否严格镜像常见不匹配
| 现象 | 原因 | 处理 |
|---|---|---|
| SA 不完整 | 一侧网段写多或写少 | 两侧 ACL 逐条对齐 |
| 计数为 0 | 流量未命中选择符 | 确认报文方向与源目地址 |
| 单向加密 | 回程选择符缺失 | 补齐反方向策略 |
只配置单向 ACL 时会出现看似协商成功、回程却不加密的情况:验证时要同时触发两个方向的流量,只看单向计数会误判。
网段汇总不一致是最隐蔽的原因:一端写 /24、另一端写 /32 时子 SA 覆盖范围不同,业务看似通但部分地址不可达。
选择符核对建议逐条列表比对而不是凭印象:网段数量多的时候,凭记忆比对的漏检概率很高。
修改选择符后应重建 SA 才会生效:既有子 SA 仍按旧规则工作,改完立刻验证容易得出错误结论。
把两侧选择符整理成对照表:一条本端源对应一条对端目的,逐行核对比在设备上翻输出更可靠。