第211篇:IPsec VPN 隧道模式与传输模式
关键词:IPsec VPN、隧道模式、传输模式、Tunnel Mode、Transport Mode、ESP封装、IPsec封装方式
一、引言
在第210篇中,我们系统学习了 IPsec VPN 的工作原理、IKE 密钥协商流程以及安全联盟(SA)的建立机制。IPsec 通过 IKE 完成密钥协商后,实际数据的加密和传输由 ESP 或 AH 协议承担。而 ESP/AH 对原始 IP 报文的封装方式,直接决定了 IPsec 的安全粒度、协议开销和适用场景。
IPsec 定义了两种封装模式:隧道模式(Tunnel Mode)和传输模式(Transport Mode)。理解两者的区别与适用场景,是正确部署 IPsec VPN 的前提。
二、核心概念
2.1 隧道模式(Tunnel Mode)
隧道模式是 IPsec VPN 最常用的封装方式。其核心思想是对整个原始 IP 报文进行封装和保护:IPsec 头部插入在原始 IP 头部之前,再添加一个新的外层 IP 头部。外层 IP 头部的源和目的地址为 IPsec 网关的接口地址,内层 IP 头部保留原始通信双方的地址。

2.2 传输模式(Transport Mode)
传输模式仅对 IP 报文的数据载荷部分(TCP/UDP 等上层协议数据)进行保护。ESP/AH 头部插入在原始 IP 头部之后、上层协议头部之前。外层 IP 头部与原始 IP 头部相同,源和目的地址仍为原始通信双方。
2.3 两种模式对比
| 对比维度 | 隧道模式(Tunnel Mode) | 传输模式(Transport Mode) |
|---|---|---|
| 封装对象 | 完整原始 IP 报文 | 仅上层协议数据 |
| 外层 IP 头 | 新增,源/目的为网关地址 | 复用原始 IP 头 |
| 内层 IP 头 | 保留在 ESP 保护范围内 | 无,原始 IP 头暴露 |
| 协议开销 | 较大(增加外层 IP 头 20-40 字节) | 较小(仅 ESP 头 16-20 字节) |
| 适用场景 | 网关到网关 VPN、NAT 后端设备 | 主机到主机、设备间直连加密 |
| NAT 穿越 | 需启用 NAT-T | 需启用 NAT-T |
| 隐私保护 | 完整(内层 IP 被加密) | 部分(外层 IP 可见) |
| 默认模式 | 多数厂商默认 | 需显式配置 |
三、技术细节
3.1 隧道模式数据流

3.2 传输模式数据流

3.3 隧道模式的 NAT 穿越问题
隧道模式下,ESP 头部的协议号为 50。当 IPsec 流量经过 NAT 设备时,NAT 需要修改 IP 头部中的源地址,但 ESP 头部中的认证数据(Authentication Data)包含了原始 IP 地址的校验和。NAT 修改 IP 地址后,认证数据校验失败,导致报文被丢弃。
IKE 协议定义了 NAT-T(NAT-Traversal)机制解决此问题: - 检测 NAT 存在:IKE 协商时比较 COOKI 长度判断 NAT 存在 - 封装转换:将 ESP 报文(协议号 50)封装到 UDP 4500 端口中传输 - NAT 设备正常修改 UDP 报文的 IP 地址,不影响 ESP 完整性校验
3.4 传输模式的典型应用场景
| 场景 | 说明 |
|---|---|
| 路由器直连加密 | 两台直连路由器之间对特定业务流量加密 |
| 服务器到服务器加密 | 两台服务器操作系统支持 IPsec,直接建立传输模式 SA |
| 主机防火墙集成 | Windows/Linux 主机内置 IPsec 客户端,以传输模式与对端通信 |
| 设备间管理通道 | 网络设备之间 SNMP、Syslog 等管理流量加密 |
四、实战配置/案例分析
4.1 华为 AR 路由器:隧道模式配置
# ========== 隧道模式(默认,适用于站点到站点)==========
system-view
sysname Branch-Router
# 配置接口IP
interface GigabitEthernet 0/0/0
ip address 10.10.1.1 255.255.255.0
quit
interface GigabitEthernet 0/0/1
ip address 203.0.113.1 255.255.255.252
quit
# 到总部内网的路由
ip route-static 10.20.0.0 255.255.0.0 203.0.113.2
# IKE Peer配置
ike peer HQ
address 203.0.113.2
authentication-mode pre-shared-key
pre-shared-key cipher Huawei@VPN2024
ikev2 enable
quit
# IPsec Proposal - 指定隧道模式
ipsec proposal ipsec-tunnel
encapsulation-mode tunnel
auth-algorithm sha256
encrypt-algorithm aes-256-gcm
dh-group group14
quit
# ACL定义保护流量
acl 3000
rule 5 permit ip source 10.10.1.0 0.0.0.255 destination 10.20.0.0 0.0.255.255
quit
# IPsec策略
ipsec policy ipsec-vpn 10 isakmp
security-acquire-method ike
proposal ipsec-tunnel
conn acl 3000
peer HQ
quit
# 应用到出接口
interface GigabitEthernet 0/0/1
ipsec policy ipsec-vpn
quit
4.2 华为 AR 路由器:传输模式配置
# ========== 传输模式(主机到主机加密)==========
ipsec proposal ipsec-transport
encapsulation-mode transport
auth-algorithm sha256
encrypt-algorithm aes-256-gcm
quit
# ACL定义保护流量(两端设备IP)
acl 3000
rule 5 permit tcp source 203.0.113.1 0 destination 198.51.100.1 0
quit
ipsec policy ipsec-transport 10 isakmp
security-acquire-method ike
proposal ipsec-transport
conn acl 3000
peer RemotePeer
quit
interface GigabitEthernet 0/0/1
ipsec policy ipsec-transport
quit
4.3 故障排查案例:隧道模式误配为传输模式
故障现象:分支机构与总部之间 IPsec VPN 已建立 SA,但业务流量无法互通。分支路由器 ping 总部内网地址超时,但 ping 对端公网 IP 正常。
排查步骤:
- 检查 SA 状态
display ipsec sa
输出显示 SA 状态为 ACTIVE,但流量计数为 0,说明 SA 建立成功但没有业务流量匹配。
- 检查 IPsec Proposal 封装模式
display ipsec proposal
发现本地配置为 encapsulation-mode transport(传输模式),而对端配置为 encapsulation-mode tunnel(隧道模式)。
-
根因分析 传输模式下,外层 IP 地址为通信主机地址(10.10.1.100 → 10.20.1.200),但这些地址在对端网关的路由中不可达。而隧道模式下,外层 IP 为网关地址(203.0.113.1 → 198.51.100.1),对端网关可以正常路由。两端封装模式不一致,虽然 SA 协商成功(IKE 层不校验封装模式),但实际数据传输时地址解析失败。
-
解决方案
# 分支侧修改为隧道模式
ipsec proposal ipsec-tunnel
encapsulation-mode tunnel
quit
# 强制重新建立 SA
reset ipsec sa
修改后,display ipsec sa 显示流量计数持续增长,分支与总部互通恢复正常。
五、总结
| 知识点 | 要点 |
|---|---|
| 隧道模式 | 封装完整原始 IP 报文,新增外层 IP 头(网关地址) |
| 传输模式 | 仅保护上层协议数据,复用原始 IP 头 |
| 协议开销 | 隧道模式多一层 IP 头(20-40 字节),传输模式开销更小 |
| 站点到站点 VPN | 必须使用隧道模式 |
| 主机到主机加密 | 可使用传输模式 |
| NAT 穿越 | 两种模式均需 NAT-T,ESP 封装为 UDP 4500 |
| 配置关键 | 两端封装模式必须一致 |
| 常见故障 | 隧道/传输模式不匹配导致 SA 建立但流量不通 |
思考
- 隧道模式在外层 IP 头部使用网关地址,如果两个站点之间存在多条路由路径,外层 IP 路由和 IPsec SA 绑定之间会产生什么问题?
- 传输模式下原始 IP 头部不在 ESP 保护范围内,这会带来哪些安全风险?在什么场景下可以接受这种风险?
- 为什么大多数 IPsec VPN 厂商将隧道模式设为默认,而不是开销更小的传输模式?
下篇预告:第212篇:IPsec VPN 野蛮模式与主模式