与IPSec协议一样,GRE协议也是VPN的一种协议,之前我们有讲到过IPSec协议,在这里我们就一起来认识GRE协议吧。主要是讲一下关于GRE协议的报文格式、封装过程、优缺点以及应用等这几个方面的内容。
•GRE(Generic Routing Encapsulation):通用路由封装协议。定义了在一种网络层协议上封装另一种协议(或同一种协议)。例如:对某些网络层协议(如IP和IPX)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输。
GRE是VPN(Virtual Private Network)的第三层隧道协议,即在协议层之间采用了一种被称之为Tunnel(隧道)的技术。
•Tunnel是一个虚拟的点对点的连接,在实际中可以看成仅支持点对点连接的虚拟接口,这个接口提供了一条通路使封装的数据报能够在这个通路上传输,并且在一个Tunnel的两端分别对数据报进行封装及解封。
封装过程:
封装过程如图1所示。
图1 GRE封装过程
•经GRE模块处理后,原IP头部已经被封装在新IP头部和GRE头部之后
•新IP数据包的IP头部的协议号为47。
•新IP头部的长度为20字节
•GRE头部的长度为4~20字节(根据实际配置而定)。
报文格式:
在最简单的情况下,系统接收到一个需要封装和路由的数据报,我们称之为有效报文。这个报文首先被GRE封装,然后被称之为GRE报文,这个报文接着被封装在IP报头中,然后完全有IP层负责此报文的转发,也称这个负责转发的IP协议为传递协议或者传输协议。
其中,GRE报文头的格式如图2所示。
图2 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
GRE的特点
1.GRE是一个标准协议
2.支持多种协议和多播
3.能够用来创建弹性的VPN
4.支持多点隧道
5.能够实施QOS
GRE的缺点
1.缺乏加密机制
2.没有标准的控制协议来保持GRE隧道(通常使用协议和keepalive)
3.隧道很消耗CPU
4.出现问题要进行debug很困难
5.MTU和IP分片是一个问题
应用范围
gre主要能实现以下几种服务类型:
(1)多协议的本地网通过单一协议的骨干网传输,如图3所示,group1和group2是运行novell ipx协议的本地网,term1和term2是运行ip协议的本地网。通过在routera和routerb之间采用gre协议封装的隧道(tunnel)group1和group2、team1和team2可以互不影响地进行通信。
图3 多协议的本地网通过单一协议的骨干网传输
(2)扩大了步跳数受限协议(如ipx)的网络的工作范围,图4所示的两台终端之间的步跳数超过15,它们将无法通信。而通过在网络中使用隧道(tunnel)可以隐藏一部分步跳,从而扩大网络的工作范围。
图4 扩大网络的工作范围
(3)将一些不能连续的子网连接起来,用于组建vpn,运行novell ipx协议的两个子网group1和group2分别在不同的城市,通过使用隧道可以实现跨越广域网的vpn,如图5所示。
图5 tunnel连接不连续子网
(4)与ipsec结合使用。对于诸如路由协议、语音、视频等数据先进行gre封装,然后再对封装后的报文进行ipsec 的加密处理,如图6所示。
图6 GRE-IPsec结合使用
另外,gre还支持由用户选择记录tunnel接口的识别关键字,和对封装的报文进行端到端校验。
由于gre收发双方加封装、解封装处理以及由于封装造成的数据量增加等因素的影响,这就导致使用gre 会造成路由器的数据转发效率有一定程度的下降。
开头小编也讲了,这篇文主要是围绕着GRE的报文格式、封装过程、优缺点、应用来阐述对GRE的认识,上述的这些内容就是小编所要说的了,希望这些内容能够给予大家少许的帮助。可前往课课家教育学习更多的内容哟,期待大家的加入。
上一篇:IPSec协议的简单分析
¥399.00
¥399.00
¥699.00
¥299.00