AH 与 ESP 的分工
IPsec 的两个封装协议解决的问题不同。AH 只做完整性校验与数据源认证,连外层 IP 头的一部分都纳入校验,代价是不加密、且地址一旦被改写校验就失败,因此天然不兼容 NAT。ESP 可加密也可做完整性校验,但校验范围不含外层 IP 头,配合 NAT-T 就能穿越地址转换设备。除了极个别需要保护 IP 头的场景,实际部署几乎都选 ESP。
基本信息
| AH 协议号 | 51,提供完整性与数据源认证,不提供加密 |
|---|---|
| ESP 协议号 | 50,可加密,完整性与加密算法由组合决定 |
| 校验范围 | AH 覆盖部分外层 IP 头;ESP 只覆盖 ESP 头之后的内容 |
| NAT 兼容性 | AH 不兼容;ESP 需配合 NAT-T 使用 UDP 4500 封装 |
| 标准依据 | RFC 4302(AH)、RFC 4303(ESP) |
典型使用场景
- 方案选型评审:确认加密与完整性需求,多数场景选 ESP 即可
- 穿越 NAT 的站点互联:必须避开 AH,否则校验失败导致不通
- 合规评估:需要说明数据是否加密、完整性覆盖范围到哪一层
- 老配置梳理:存量里偶有 AH 配置,改造前先确认对端是否仍在使用
- 排障定位:抓包看到协议号 51 与 50,可快速判断对端在用什么封装
Cisco 写法对照
Cisco 写法对照
# 常规 ESP 组合:加密 + 完整性
crypto ipsec transform-set TS-ESP esp-aes 256 esp-sha256-hmac
mode tunnel
# 仅 AH(少见场景,且无法穿越 NAT)
# crypto ipsec transform-set TS-AH ah-sha256-hmac
# 核对已配置的组合
show crypto ipsec transform-setAH 与 ESP 对照
| 维度 | AH | ESP |
|---|---|---|
| 加密 | 不提供 | 提供,算法由组合决定 |
| 完整性范围 | 含部分外层 IP 头 | 不含外层 IP 头 |
| NAT 环境 | 不适用,校验必然失败 | 配合 NAT-T 可用 |
| 协议号 | 51 | 50 |
| 常见程度 | 少见,特殊场景使用 | 绝大多数部署的选择 |
ESP 并不必然加密:加不加密取决于 transform 里选的算法组合,只选完整性算法时 ESP 也可以只做校验。核对安全合规要求时,要看组合本身,而不是协议名。
选封装协议还要看中间设备的能力:不少防火墙与云侧网关只放行 ESP 或只做 NAT-T 处理,AH 报文常被直接丢弃。方案评审时把路径上所有设备的支持情况一并确认,比上线后再改省事得多。