1. Generic Routing Encapsulation(通用路由封装)特征


  • 是一种 IP in IP 的协议(私有地址被共有地址封装,多层封装协议)。封装机制有:
    • GRE VPN协议封装在公网地址中
    • 二层封装类型
    • 三层封装协议
    • 四层封装端口
  • IP 协议号「47」
  • 占用 4 字节(需要调整 MTU,建议 1400)
  • 默认不提供加密(不安全,可以结合 IPSec VPN 使用)
  • 允许组播路由协议在隧道运行,但不能将隧道源地址加入到路由协议中,否则会造成隧道翻滚
  • 采用单播建立

    2. GRE Header Message


image.png
GRE Header Message 格式解析

  • C:校验和验证位
    • 0 = 不包含校验和字段
    • 1 = 插入了校验和字段
  • K:关键字
    • 0 = 不包含关键字
    • 1 = 插入了关键字
  • Recursion:表示 GRE 报文被封装的层数,每完成一次加 1,大于 3 丢弃报文
  • Flags:预留
  • Version:版本
  • Protocol Type:承载的协议类型
  • Checksum:对 GRE Header 及其负载的校验和字段
  • Key:关键字,隧道接收端用于对收到的报文进行验证

    3. 特性功能


提供 GRE 隧道的安全性

  • 提供校验和验证:
    • 对封装的报文进行端到端的验证
    • GRE 协议报文头部中 C-bit=1,则校验有效
  • 提供关键字/密钥:
    • 对 Tunnel 接口进行关键字校验
    • 弱安全机制,可以防止错误识别和接收其他地方来的报文
  • 提供链路检测机制:
    • GRE VPN 默认不具备检测链路状态的功能,如果对方不可达会形成数据空洞
    • 周期性发送 Keepalive 探测报文[默认查探 5 次,每次等待 3s],超过次数自动关闭隧道接口,有回应后开启。强烈建议开启