第211篇:IPsec VPN 隧道模式与传输模式
关键词
传输模式、隧道模式、ESP、AH、封装结构、站点到站点 VPN、端到端加密、报文开销
一、两种模式概述
1.1 核心区别
IPsec 的两种封装模式决定了保护范围的不同:
传输模式(Transport Mode):
只保护 IP 载荷(TCP/UDP 头 + 数据)
不保护原始 IP 头
适合:端到端场景(终端到终端)
隧道模式(Tunnel Mode):
保护整个原始 IP 报文
增加一个新的 IP 头(网关地址)
适合:站点到站点 VPN(网关到网关)
1.2 选型依据
选择依据 推荐模式
──────────────────────────────────────────
终端到终端通信 传输模式
终端到网关(远程访问) 隧道模式
网关到网关(站点到站点) 隧道模式
需要隐藏内网拓扑 隧道模式
尽量减少 IPsec 开销 传输模式
穿越 NAT 隧道模式(更易配合 NAT-T)
二、传输模式详解
2.1 ESP 传输模式报文结构
原始 IP 报文: | 原始 IP 头 S=10.0.0.1 D=10.0.0.2 | TCP 头 port=80 | 数据 HTTP Payload | | --- | --- | --- |
ESP 传输模式: | 原始 IP 头 S=10.0.0.1 D=10.0.0.2 | ESP 头 SPI=100 Seq=1 | TCP 头 port=80 | 数据 HTTP Payload | ESP 尾 Auth Data | | --- | --- | --- | --- | --- | ├── 已加密 ──────────────────┤ ├──────────── 已认证(完整性校验)───────────────┤
特点: - IP 头保持原始不变 - TCP 头 + 数据被加密 - ESP 头插入在 IP 头和 TCP 头之间 - 认证范围:ESP 头 + TCP + 数据
2.2 AH 传输模式(纯认证)
AH(Authentication Header)传输模式(仅认证,不加密):
| 原始 IP 头 S=10.0.0.1 D=10.0.0.2 | AH 头 SPI=200 Seq=1 | TCP 头 port=80 | 数据 HTTP Payload | |
|---|---|---|---|---|
| ├──────────── 已认证(完整性校验)───────────────────────────────────┤ |
注意: - AH 只做认证,不做加密 - AH 认证范围包括 IP 头中的不变字段(TTL 等变化字段排除) - AH 已逐渐被 ESP 替代,ESP 可以同时提供认证和加密
2.3 传输模式配置
# ESP 传输模式配置
ipsec proposal TRANSPORT
esp authentication-algorithm sha256
esp encryption-algorithm aes-256
encapsulation-mode transport # 传输模式
!
# 适用场景:两台服务器之间的端到端加密
acl number 3101
rule 5 permit ip source 10.0.1.1 0 destination 10.0.2.1 0
!
ipsec policy SERVER_IPSEC 10 isakmp
security acl 3101
ike-peer SERVER_PEER
proposal TRANSPORT
三、隧道模式详解
3.1 ESP 隧道模式报文结构
原始 IP 报文: | 原始 IP 头 S=10.0.0.1 D=192.168.1.1 | TCP 头 port=80 | 数据 HTTP Payload | | --- | --- | --- |
ESP 隧道模式: | 新 IP 头 S=202.1.1.1 D=203.1.1.1 | ESP 头 SPI=100 Seq=1 | 原始 IP 头 S=10.0.0.1 D=192.168.1.1 | TCP 头 port=80 | 数据 HTTP Payload | ESP 尾 Auth Data | | --- | --- | --- | --- | --- | --- | ├──────────── 已加密 ─────────────────────────┤ ├──────────── 已认证(完整性校验)──────────────────────────────────┤
特点: - 原始 IP 头被完整保护(隐藏内网拓扑) - 新 IP 头使用网关的公网地址 - 整个原始报文被加密 - 新增 IP 头 + ESP 头共约 50-60 字节开销
3.2 隧道模式配置
# 隧道模式配置(站点到站点 VPN)
ipsec proposal TUNNEL
esp authentication-algorithm sha256
esp encryption-algorithm aes-256
encapsulation-mode tunnel # 隧道模式
!
# 保护总部和分支之间的所有流量
acl number 3001
rule 5 permit ip source 10.0.0.0 0.255.255.255 destination 192.168.0.0 0.0.255.255
!
# 创建隧道接口
interface Tunnel0/0/0
ip address 10.255.255.1 255.255.255.252 # 隧道接口 IP
tunnel-protocol ipsec # IPsec 隧道
ipsec policy POLICY_TUNNEL
!
ipsec policy POLICY_TUNNEL 10 isakmp
security acl 3001
ike-peer BRANCH_PEER
proposal TUNNEL
四、开销对比
4.1 报文大小对比
以 MTU=1500 为例,各模式的有效载荷:
传输模式(ESP):
新报文 = IP(20) + ESP头(8) + TCP头(20) + 数据 + ESP尾(18)
有效载荷 = 1500 - 20 - 8 - 20 - 18 = 1434 字节
MTU 开销 = 66 字节
隧道模式(ESP):
新报文 = 新IP(20) + ESP头(8) + 原始IP(20) + TCP头(20) + 数据 + ESP尾(18)
有效载荷 = 1500 - 20 - 8 - 20 - 20 - 18 = 1414 字节
MTU 开销 = 86 字节
对比总结:
模式 额外开销 有效载荷 (MTU=1500)
无 IPsec 0 1480
传输模式 66 1434
隧道模式 86 1414
注意:以上为典型值,实际开销取决于算法和选项
4.2 MTU 问题处理
IPsec 隧道模式下 MTU 问题更突出:
问题:外层 IP 头 20 + ESP 头 8 + 内层 IP 头 20 + ESP 尾 18 = 66-86 额外字节
如果原始报文大小为 1500,加上 IPsec 头后超过链路 MTU
解决方案:
1. 降低隧道接口 MTU
interface Tunnel0/0/0
mtu 1400 # 隧道接口 MTU 设为 1400
2. 启用 DF 位清除(允许分片)
ipsec policy POLICY_TUNNEL 10 isakmp
df-bit clear # 清除 DF 位,允许中间设备分片
3. TCP MSS 钳制(推荐)
interface GigabitEthernet0/0/0
tcp adjust-mss 1360 # 减少 TCP SYN 中的 MSS 值
五、典型部署场景
5.1 站点到站点 VPN(隧道模式)
总部 (10.0.0.0/8) 分支 (192.168.1.0/24) │ │ | GW-A 202.1.1.1 | ═════ IPsec 隧道 ════ | GW-B 203.1.1.1 | | --- | --- | --- |
隧道模式: 内层 IP: 10.0.0.1 → 192.168.1.1 外层 IP: 202.1.1.1 → 203.1.1.1
总部 PC 访问分支服务器: - PC 发出报文:S=10.0.0.1, D=192.168.1.1 - GW-A 封装:外层 S=202.1.1.1, D=203.1.1.1 + 加密 - Internet 传输(看到的是网关地址) - GW-B 解封装:还原 S=10.0.0.1, D=192.168.1.1 - 分支服务器收到原始报文
5.2 端到端加密(传输模式)
两台服务器直连(同一网络内部):
Server A (10.0.1.1) ═══════ IPsec ═══════ Server B (10.0.2.1)
传输模式
传输模式:
IP 头保持不变:S=10.0.1.1, D=10.0.2.1
只加密 TCP 头 + 数据
适用于:
- 数据库主从复制加密
- 管理通道加密
- 集群内部通信加密
六、选择建议
| 场景 | 推荐模式 | 原因 |
|---|---|---|
| 总部-分支 VPN | 隧道模式 | 隐藏内网拓扑,标准站点到站点方案 |
| 远程员工接入 | 隧道模式 | 客户端到网关的标准方案 |
| 服务器间加密 | 传输模式 | 端到端,减少开销 |
| 网络设备管理 | 传输模式 | 管理流量简单加密 |
| 穿越 NAT | 隧道模式 | NAT-T 与隧道模式配合更好 |
七、总结
| 知识点 | 核心要点 |
|---|---|
| 传输模式 | 保护 IP 载荷,IP 头不变,额外开销 ~66 字节 |
| 隧道模式 | 保护整个原始 IP,增加新 IP 头,额外开销 ~86 字节 |
| ESP | 认证 + 加密(主流),AH 仅认证(已少用) |
| 应用 | 传输模式=端到端,隧道模式=站点到站点 |
| MTU | 隧道模式需额外处理 MTU 问题(MSS 钳制) |
八、思考
- 传输模式和隧道模式的 IP 报文结构有什么本质区别?
- 为什么站点到站点 VPN 推荐使用隧道模式而不是传输模式?
- IPsec 隧道模式下,MTU 问题为什么更严重?如何解决?
- AH 和 ESP 协议的区别是什么?为什么现在 ESP 成为主流?
- 当远程员工通过 IPsec VPN 访问公司内网时,使用的是哪种模式?为什么?
下篇预告:第212篇《IPsec VPN 野蛮模式与主模式》——两种 IKEv1 阶段 1 模式的深入对比,包括安全性和性能的权衡。