NAT 与 IPsec 兼容(NAT-T)是什么
IPsec 的 ESP 封装带有完整性校验,报文在路径上被 NAT 改写地址或端口后校验失败,协商与传输都会中断。NAT-T(NAT Traversal)通过把 ESP 封装进 UDP 4500 端口并周期性发送保活报文来解决穿越问题:两侧先探测路径上是否存在 NAT,存在时改用 UDP 封装。这是站点到站点 VPN 与远程接入对接中的高频问题点。
基本信息
| 原理 | 检测到路径存在 NAT 时改用 UDP 4500 封装 ESP,并定期保活 |
|---|---|
| 相关端口 | IKE 使用 UDP 500,NAT-T 使用 UDP 4500 |
| 抓包特征 | 4500 端口上的非 IKE 载荷即为 NAT-T 封装流量 |
| 默认行为 | 多数设备默认开启 NAT-T,但需确认中间设备放行 4500 |
| 对接要求 | 两端预共享密钥或证书配置一致,参数匹配 |
典型使用场景
- 分支机构在宽带出口后与总部建立 IPsec 隧道
- 远程办公人员通过客户端接入,终端位于 NAT 之后
- 多分支互联改造:分支出口由专线改为宽带后隧道重建失败
- 新增边界设备后隧道中断:新设备的 NAT 规则改变了 VPN 报文的处理
- 故障处置:协商卡在第二阶段时优先检查 NAT-T 与端口放行
对接检查项
对接检查项
1. 两端是否都启用 NAT-T(多数设备默认开启)
2. 路径上是否放行 UDP 4500,以及 UDP 500
3. 预共享密钥或证书配置是否一致,两端参数是否匹配
4. 查看 IKE 与 IPsec 状态,确认协商停在哪一阶段
5. 在两侧抓包比对,确认是否有 4500 端口上的封装流量故障对照
| 现象 | 可能原因 | 核对方法 |
|---|---|---|
| 第一阶段成功第二阶段失败 | 4500 被中间设备禁止 | 检查路径放行与设备策略 |
| 隧道频繁重建 | 保活报文被丢弃 | 抓包确认保活间隔与丢弃点 |
| 一侧能起一侧不起 | 仅一侧启用 NAT-T | 两端配置比对 |
| 连接地址相同冲突 | 两端使用相同私网网段 | 调整地址规划或做转换 |
| 证书不匹配 | 证书或密钥配置错误 | 核对证书链与预共享密钥 |
一端在 NAT 后、另一端是固定公网地址时,由 NAT 侧主动发起更容易建连成功;两侧都做 NAT 时还需要考虑地址重叠与主动发起方的问题。