GRE over IPsec 解决什么
IPsec 的策略模式不直接承载组播与动态路由报文。GRE over IPsec 的思路是先用 GRE 把组播或 IGP/BGP 报文封装成单播,再用 IPsec 加密整个 GRE 报文。代价是双层封装:GRE 头 24 字节(20 字节 IP 加 4 字节 GRE)再加 IPsec 约 50 字节起,MTU 规划要提前考虑。
基本信息
| 封装顺序 | 先 GRE 封装,再 IPsec 加密 |
|---|---|
| 优点 | 隧道上可以跑 OSPF/BGP 邻居与组播 |
| 额外开销 | GRE 24 字节 + IPsec 约 50 字节起 |
| 典型应用 | 分支互联且需要在隧道上运行动态路由 |
| ACL 要点 | 感兴趣流匹配 GRE(协议 47),不要写 tcp/udp |
典型使用场景
- 分支与总部之间既需要加密,又要在隧道上跑 OSPF 或 BGP
- 需要跨隧道承载组播报文(组播应用或路由协议)
- 希望用动态路由自动适应链路变化,而不是逐条维护静态路由
- 为存量 GRE 隧道叠加加密保护
- 排查「隧道通了但邻居起不来」:确认 ACL 是否匹配 GRE 协议
配置示例
配置示例
interface Tunnel0
ip address 169.254.10.1 255.255.255.252
tunnel source 198.51.100.1
tunnel destination 203.0.113.2
!
ip access-list extended VPN-TRAFFIC
permit gre host 198.51.100.1 host 203.0.113.2 # 匹配 GRE,写成 tcp/udp 就不会加密
!
crypto map CMAP 10 ipsec-isakmp
set peer 203.0.113.2
set transform-set TS
match address VPN-TRAFFIC
!
interface GigabitEthernet0/0
crypto map CMAP
!
show crypto ipsec sa | include pkts开销与影响
| 项 | 数值或影响 | 注意 |
|---|---|---|
| GRE 封装 | 20 字节 IP 头加 4 字节 GRE 头 | 合计 24 字节 |
| IPsec 隧道模式 | 约 50 字节起,随算法不同 | 加密与完整性算法略有差异 |
| MTU 影响 | 有效载荷变小 | 大包需分片或调整 MSS |
| 协议匹配 | ACL 需匹配 GRE(协议 47) | 写成 tcp/udp 会导致流量不被加密 |
使用 tunnel protection ipsec profile 的写法时,隧道接口直接挂 profile,不需要再写 ACL 匹配 GRE,配置更简洁;这两种写法不要在同一隧道上混用。
MTU 处理是这套方案的关键:隧道接口上适当调小 IP MTU 或调整 TCP MSS,可以避免大包在中间链路被丢弃。
隧道上运行动态路由时,建议配合隧道保活或依赖路由协议自身的保活机制:否则底层不通时接口仍显示 Up,路由无法及时切换。
排障顺序建议固定:先看隧道接口与内层路由是否正常,再看 IPsec SA 是否建立、计数是否增长,最后回到物理链路;顺序颠倒会在无关层面反复确认。
分支侧公网地址变动时两端要同步更新:配置不对称会表现为单向 ESP 只有发送没有接收,容易被误判成链路丢包。