用路由封装(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
C ― 当前校验和。
Reserved 0 & 1 ― 预留以备后用。
Ver ― 版本号,当前为0。
Protocol Type ― 包括有效载荷 数据包的协议类型。
Checksum ― 包括 GRE 头和有效负载数据包中所有16位字的 IP 校验和总数
在大多数常规情况下, 系统拥有一个有效载荷(或负载)包,需要将它封装并发送至某个目的地。首先将有效载荷封装在一个 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
C ― 当前校验和。
Reserved 0 & 1 ― 预留以备后用。
Ver ― 版本号,当前为0。
Protocol Type ― 包括有效载荷 数据包的协议类型。
Checksum ― 包括 GRE 头和有效负载数据包中所有16位字的 IP 校验和总数