|
通用路由封装(GRE)定义了在任意一种网络层协议上封装另一个协议的规范。
在大多数常规情况下,系统拥有一个称为有效载荷或负载的包,需要将它封装并发送至某个目的地。首先将有效载荷封装在一个 GRE 包中,然后将此 GRE 包封装在其它某协议中并进行转发。这个外部的协议即为发送协议。
当 IPv4 被作为 GRE 有效载荷运送时,协议类型字段必须被发送至0x800。当一个隧道终点拆封此含有作为有效载荷的 IPv4 的 GRE 包时,IPv4 包头中的目的地址必须用来转发包,并且需要消耗有效载荷包的 TTL。值得注意的是,在转发这样一个包时,由于有效载荷包的目的地址即是作为包(也就是其它隧道终点)的封装器,所以会伴随回路现象。在此情形下,必须删除包。当 GRE 包被封装在 IPv4 中时,需要使用 IPv4 协议47。
相对而言,GRE 下的网络安全与常规的 IPv4 网络安全是较为相似的,GRE 下的路由采用 IPv4 原本使用的相同路由,但路由过滤保持不变。包过滤可能在 GRE 包中请求一个防火墙,也可能请求在 GRE 隧道终点完成过滤过程,在某些环境下,这被看作安全问题,需要终止防火墙上的隧道。 |