谈谈对GRE协议的认识

    作者:课课家教育更新于: 2019-02-22 10:03:20

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

      与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的认识,上述的这些内容就是小编所要说的了,希望这些内容能够给予大家少许的帮助。可前往课课家教育学习更多的内容哟,期待大家的加入。

课课家教育

未登录

1