下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

谈谈对GRE协议的认识

作者:课课家教育     来源: http://www.kokojia.com点击数:5134发布时间: 2019-02-22 10:03:20

标签: GRE协议VPN技术网络安全

软考,您想通过吗?一次通过才是硬道理

  与IPSec协议一样,GRE协议也是VPN的一种协议,之前我们有讲到过IPSec协议,在这里我们就一起来认识GRE协议吧。主要是讲一下关于GRE协议的报文格式、封装过程、优缺点以及应用等这几个方面的内容。

  •GRE(Generic Routing Encapsulation):通用路由封装协议。定义了在一种网络层协议上封装另一种协议(或同一种协议)。例如:对某些网络层协议(如IP和IPX)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输。

  GRE是VPN(Virtual Private Network)的第三层隧道协议,即在协议层之间采用了一种被称之为Tunnel(隧道)的技术。

  •Tunnel是一个虚拟的点对点的连接,在实际中可以看成仅支持点对点连接的虚拟接口,这个接口提供了一条通路使封装的数据报能够在这个通路上传输,并且在一个Tunnel的两端分别对数据报进行封装及解封。

  封装过程:

  封装过程如图1所示。

谈谈对GRE协议的认识_GRE协议_VPN技术_网络安全_课课家 

1 GRE封装过程

  •经GRE模块处理后,原IP头部已经被封装在新IP头部和GRE头部之后

  •新IP数据包的IP头部的协议号为47。

  •新IP头部的长度为20字节

  •GRE头部的长度为4~20字节(根据实际配置而定)。

  报文格式:

  在最简单的情况下,系统接收到一个需要封装和路由的数据报,我们称之为有效报文。这个报文首先被GRE封装,然后被称之为GRE报文,这个报文接着被封装在IP报头中,然后完全有IP层负责此报文的转发,也称这个负责转发的IP协议为传递协议或者传输协议。

  其中,GRE报文头的格式如图2所示。

GRE格式 

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所示。

tunnel连接不连续子网 

5 tunnel连接连续子网

      (4)与ipsec结合使用。对于诸如路由协议、语音、视频等数据先进行gre封装,然后再对封装后的报文进行ipsec 的加密处理,如图6所示。

GRE-IPsec结合使用 

6 GRE-IPsec结合使用

  另外,gre还支持由用户选择记录tunnel接口的识别关键字,和对封装的报文进行端到端校验。

  由于gre收发双方加封装、解封装处理以及由于封装造成的数据量增加等因素的影响,这就导致使用gre 会造成路由器的数据转发效率有一定程度的下降。

  开头小编也讲了,这篇文主要是围绕着GRE的报文格式、封装过程、优缺点、应用来阐述对GRE的认识,上述的这些内容就是小编所要说的了,希望这些内容能够给予大家少许的帮助。可前往课课家教育学习更多的内容哟,期待大家的加入。

赞(13)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程