首页/网络/BGP 与广域网速查/GRE over IPsec:承载组播与动态路由
IPsec VPN60 条

GRE over IPsec:承载组播与动态路由

GRE 将组播与 IGP/BGP 报文封装为单播再由 IPsec 保护,解决 IPsec 策略模式不直接承载组播的限制;双层封装增加约 24+50 字节开销。

BGP 与广域网速查网络更新于 2026-10-13

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 只有发送没有接收,容易被误判成链路丢包。

易错点

  • ACL 未匹配 GRE 协议:GRE 封装在跑但流量没有被加密,安全预期落空
  • 忽略封装后的 MTU 变小:大包被丢弃,表现为小包通、大包断
  • 两种配置方式混用:ACL 方式与 tunnel protection 并存会让参数覆盖关系混乱
  • 隧道接口缺少保活机制:底层不通时接口仍 Up,路由无法及时切换

数据来源与参考

  • Cisco: GRE over IPsec 配置
  • RFC 2784: GRE
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌