浅析GRE协议(通用路由封装协议)
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)封装过程:
https://img-blog.csdn.net/20170516163722690?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTWFyeTE5OTIwNDEw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
•经GRE模块处理后,原IP头部已经被封装在新IP头部和GRE头部之后•新IP数据包的IP头部的协议号为47。•新IP头部的长度为20字节
•GRE头部的长度为4~20字节(根据实际配置而定)。
3、GRE格式:
https://img-blog.csdn.net/20170516163743412?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTWFyeTE5OTIwNDEw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
GRE头部结构参照RFC1701定义
[*]前4 字节是必须出现的
[*]第5~20字节将根据第1字节的相关bit位信息,可选出现。
[*]GRE头部的长度将影响Tunnel口的mtu值
•0bitC:校验和标志位。
如配置了checksun则该位置为1,同时校验和(可选)、偏离(可选)部分的共4 bytes出现在GRE头部。
如不配置checksun则该位置为0,同时校验和(可选)、偏离(可选)部分不出现在GRE头部。
•1bitR:路由标志位。
如R为1,校验和(可选)、偏离(可选)、路由(可选)部分的共8 bytes出现在GRE头部。
如R为0, 校验和(可选)、偏离(可选)、路由(可选)部分不出现在GRE头部。
•2bitK:密钥标志位。
如配置了KEY则该位置为1,同时密钥(可选)部分的共4 bytes出现在GRE头部。
如不配置KEY则该位置为0,同时密钥(可选)部分不出现在GRE头部。
•3bitS:序列好同步标志位。
如配置了sequence-datagrams则该位置为1,同时序列号(可选)部分的共4 bytes出 现在GRE头部。
如不配置sequence-datagrams则该位置为0,同时序列号(可选)部分不出现在GRE头部。
•4bits:严格源路由标志位。
除非所有的路由都符合严格源路由,该bit位为1。通常该bit为0。
•5~7bit:递归控制:该位置需为0
•8~12bit: 未定义,需为0
•13~15 版本:需为0
16~31 协议类型:常用的协议,例如IP协议为0800
页:
[1]