1、GRE的概念
1)全称:GRE(Generic Routing Encapsulation):通用路由封装协议。
2)功能:定义了在一种网络层协议上封装另一种协议(或同一种协议)。 3)举例:对某些网络层协议(如IP和IPX)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输。 4)所在层次:GRE是VPN(Virtual Private Network)的第三层隧道协议,即在协议层之间采用了一种被称之为Tunnel(隧道)的技术。
2、Tunnel技术
1)定义:Tunnel是一个虚拟的点对点的连接,在实际中可以看成仅支持点对点连接的虚拟接口,这个接口提供了一条通路使封装的数据报能够在这个通路上传输,并且在一个Tunnel的两端分别对数据报进行封装及解封 。
2)封装过程:
•经GRE模块处理后,原IP头部已经被封装在新IP头部和GRE头部之后 •新IP数据包的IP头部的协议号为47。 •新IP头部的长度为20字节
•GRE头部的长度为4~20字节(根据实际配置而定)。
3、GRE格式:
GRE头部结构参照RFC1701定义 - 前4 字节是必须出现的
- 第5~20字节将根据第1字节的相关bit位信息,可选出现。
- GRE头部的长度将影响Tunnel口的mtu值
•0bit C:校验和标志位。
如配置了checksun则该位置为1,同时校验和(可选)、偏离(可选)部分的共4 bytes出现在GRE头部。
如不配置checksun则该位置为0,同时校验和(可选)、偏离(可选)部分不出现在GRE头部。
•1bit R:路由标志位。
如R为1,校验和(可选)、偏离(可选)、路由(可选)部分的共8 bytes出现在GRE头部。
如R为0, 校验和(可选)、偏离(可选)、路由(可选)部分不出现在GRE头部。
•2bit K:密钥标志位。
如配置了KEY则该位置为1,同时密钥(可选)部分的共4 bytes出现在GRE头部。
如不配置KEY则该位置为0,同时密钥(可选)部分不出现在GRE头部。
•3bit S:序列好同步标志位。
如配置了sequence-datagrams则该位置为1,同时序列号(可选)部分的共4 bytes出 现在GRE头部。
如不配置sequence-datagrams则该位置为0,同时序列号(可选)部分不出现在GRE头部。
•4bit s:严格源路由标志位。
除非所有的路由都符合严格源路由,该bit位为1。通常该bit为0。
•5~7bit:递归控制:该位置需为0
•8~12bit: 未定义,需为0
•13~15 版本:需为0
16~31 协议类型:常用的协议,例如IP协议为0800
|