GRE:通用路由封装
(GRE: Generic Routing Encapsulation)
通用路由封装(GRE)定义了在任意一种网络层协议上封装任意一个其它网络层协议的协议。
在大多数常规情况下,系统拥有一个有效载荷(或负载)包,需要将它封装并发送至某个目的地。首先将有效载荷封装在一个 GRE 包中,然后将此 GRE 包封装在其它某协议中并进行转发。此外发协议即为发送协议。当 IPv4 被作为 GRE 有效载荷传输时,协议类型字段必须被设置为 0x800 。当一个隧道终点拆封此含有 IPv4 包作为有效载荷的 GRE 包时, IPv4 包头中的目的地址必须用来转发包,并且需要减少有效载荷包的 TTL 。值得注重的是,在转发这样一个包时,假如有效载荷包的目的地址就是包的封装器(也就是隧道另一端),就会出现回路现象。在此情形下,必须丢弃该包。当 GRE 包被封装在 IPv4 中时,需要使用 IPv4 协议 47 。
GRE 下的网络安全与常规的 IPv4 网络安全是较为相似的, GRE 下的路由采用 IPv4 原本使用的路由,但路由过滤保持不变 。包过滤要求防火墙检查 GRE 包,或者在 GRE 隧道终点完成过滤过程。在那些这被看作是安全问题的环境下,可以在防火墙上终止隧道。
协议结构
1
13
16
32 bit
C
Reserved 0 & 1
Ver
Protocol Type
Checksum (optional)
Reserved