1. Generic Routing Encapsulation(通用路由封装)特征
- 是一种 IP in IP 的协议(私有地址被共有地址封装,多层封装协议)。封装机制有:
- GRE VPN协议封装在公网地址中
- 二层封装类型
- 三层封装协议
- 四层封装端口
- IP 协议号「47」
- 占用 4 字节(需要调整 MTU,建议 1400)
- 默认不提供加密(不安全,可以结合 IPSec VPN 使用)
- 允许组播路由协议在隧道运行,但不能将隧道源地址加入到路由协议中,否则会造成隧道翻滚
- 采用单播建立
2. GRE Header Message
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],超过次数自动关闭隧道接口,有回应后开启。强烈建议开启