一问带你了解什么是GRE隧道协议
发布作者:微思网络 发布时间:2023-03-10 浏览量:0次
GRE(General Routing Encapsulation ,通用路由封装)是对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的报文能够在另一网络层协议(如IP)中传输。此外 GRE协议也可以作为VPN的第三层隧道协议连接两个不同的网络,为数据的传输提供一个透明的通道。 GRE主要有以下特点: GRE头部各字段含义: 以下图为例: 为了提高GRE隧道的安全性,GRE还支持由用户选择设置Tunnel接口的识别关键字(或称密钥),以及对隧道封装的报文进行端到端校验(校验和)。 GRE(点对点类型)主要应用于一下几种环境: 虽然动态VPN技术,如DVPN(Dynamic Virtual Private Network,动态虚拟私有网络),可以学习公网地址和私网地址的对应关系,并动态地在中心节点和分支机构、不同分支机构之间建立隧道,但是目前动态VPN技术没有统一的规范,各个厂商都采用私有协议实现动态VPN,无法互通。 点到多点GRE隧道很好地解决了上述问题,非常适用于分支机构众多的企业网络。点到多点GRE隧道组网中,需要在中心节点上配置点到多点GRE模式的隧道接口(以下简称为点到多点GRE隧道接口)、分支机构上配置传统的点到点GRE over IPv4模式的隧道接口(以下简称为点到点GRE隧道接口),这样就可以实现在中心节点和多个分支机构之间动态建立隧道 通过点到多点GRE隧道转发报文时,设备根据报文的目的地址,在隧道表项中查找对应的隧道目的地址,使用此地址作为GRE封装传输协议(IPv4)报文头的目的地址。最初是没有目的地址表项的,必须先学到以后才可以双方通信,之前只能单方通信。 在分支机构的网关设备上创建GRE隧道时,可以设置GRE Key。中心节点根据分支机构发送的GRE报文创建隧道表项时,从该GRE报文中获取GRE Key,记录在隧道表项中。中心节点根据GRE Key来判断隧道表项的优先级,并根据优先级最高的隧道表项转发报文,优先级低的隧道表项作为备份。未记录GRE Key的表项优先级最高;记录了GRE Key的表项,Key值越小优先级越高。 当主设备上存在隧道表项时,备份接口也可以参与转发隧道的选择,根据优先级决定是否采用备份接口转发报文。如果没有为备份接口配置GRE Key,则其优先级低于所有的点到多点隧道表项;如果为备份接口配置了GRE Key,则与点到多点隧道表项中记录的GRE Key比较,Key值小的优先级高1. GRE协议简介
2. GRE报文格式
其中:字段 长度 含义 C 1bit 校验和验证标识。设置为1,表示Checksum字段生效;0表示Checksum字段不生效 K 1bit 关键字标识。设置为1,表示头部中Key字段生效;0表示Key字段不生效 Recursion 3bits 用来表示报文被封装的层数。每封装一次该值加1,最多封装3次 Flags 5bits 预留。值为0 Version 3bits 版本号。值为0 Protocol Type 16bits 乘客协议类型 Checksum 16bits 对GRE头部和负载计算校验和。只有当C为1时有效 Key 32bits 关键字信息。隧道接收端用于对收到的报文进行验证,只有当K为1时有效;此外也用于一对多的GRE隧道 其他 暂未使用,其值固定填充0 3. GRE报文封装与解封装
3.1 报文封装
3.2 报文解封装
4. GRE的安全选项
在RFC 1701中规定:5. 应用范围
5.1 多协议的本地网通过单一协议的骨干网传输
上图中:Group 1和Group 2是运行Novell IPX协议的本地网,Team 1和Team 2是运行IP协议的本地网。通过在Router A和Router B之间采用GRE协议封装的隧道,Group 1和Group 2、Team 1和Team 2可以互不影响地进行通信5.2 扩大了跳数受限协议(如RIP)的工作范围
两台终端之间的跳数超过15(RIP路由协议),它们将无法通信。通过在网络中使用隧道可以隐藏一部分跳数,从而扩大网络的工作范围5.3 将一些不能连续的子网连接起来,用于组建VPN
运行Novell IPX协议的两个子网Group 1和Group 2分别在不同的城市,通过使用隧道可以实现跨越广域网的VPN.5.4 和IPsec结合使用
GRE可以和IPsec结合使用,即对于路由协议、语音、视频等数据先进行GRE封装,再对封装后的报文进行IPsec的加密处理,以提高数据在隧道中传输的安全性。6 点到多点GRE隧道
6.1 点到多点GRE隧道产生背景
传统的GRE隧道是一个点到点的连接。GRE应用于如上图所示的企业网时,需要在企业中心节点和各个分支机构之间建立多条点到点GRE隧道。当企业分支机构众多时,配置工作量巨大;而且,如果新增分支机构,则需要在中心节点上增加配置,增加了网络维护的负担;此外,分支机构采用ADSL等方式拨号上网时,分支机构公网地址的不确定性也增加了中心节点配置的复杂度。6.2 点到多点GRE隧道工作原理
与_点到点GRE隧道接口不同的是_,点到多点GRE隧道接口上不需要手工配置隧道目的地址,而是根据接收到的GRE报文动态学习隧道目的地址。如图2-2所示,配置了点到多点GRE隧道接口的设备(Router A)接收到对端设备(Router B)发送的GRE报文后,从该报文中获取传输协议(IPv4)报文头的源地址和乘客协议(IPv4)报文头的源地址,分别作为隧道的目的地址和报文的目的地址(即分支网络的私网地址),建立一条隧道表项。6.3 应用场景
6.3.1 分支机构的GRE隧道备份
为了提高网络的可靠性,分支机构可以部署多台网关设备,在中心节点和多个网关设备之间分别建立GRE隧道,形成备份。6.3.2 中心节点的GRE隧道备份
为了提高网络的可靠性,中心网络可以部署多台网关设备,通过在主设备(Router A)上为点到多点GRE隧道指定备份接口(Tunnel1接口),实现中心网络设备和传输路径的备份。当主设备与分支机构之间的链路出现故障时,发送给分支机构的报文在主设备上查找不到匹配的隧道表项,主设备通过备份接口把该报文发送给备份设备(Router B),由备份设备将报文发送到分支机构。备份接口应配置为GRE over IPv4模式的隧道接口。6.4 点到多点GRE隧道优缺点
6.4.1 优点:
6.4.2 缺点: