GRE协议快速入门


对组网有一定了解的朋友,肯定都知道隧道封装技术。那么在网络中,我们就是用GRE协议来进行数据报的封装。那么今天我们就将对这个协议进行一个基础性的了解。下面就请大家浏览正文。

1. 协议简介

GRE(generic routing encapsulation,通用路由封装)协议是对某些网络层协议如ip 和ipx)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议如ip)中传输。GRE协议是vpnvirtual private network)的第三层隧道协议,在协议层之间采用了一种被称之为tunnel隧道)的技术。tunnel 是一个虚拟的点对点的连接,在实际中可以看成仅支持点对点连接的虚拟接口,这个接口提供了一条通路使封装的数据报能够在这个通路上传输,并且在一个tunnel的两端分别对数据报进行封装及解封装。

一个报文要想在tunnel中传输,必须要经过加封装与解封装两个过程。

(1) 加封装过程

连接novell group1 的接口收到ipx 数据报后首先交由ipx 协议处理,ipx 协议检查ipx 报头中的目的地址域来确定如何路由此包。若报文的目的地址被发现要路由经过网号为1f 的网络tunnel 的虚拟网号),则将此报文发给网号为1f 的tunnel端口。tunnel 口收到此包后进行GRE封装,封装完成后交给ip 模块处理,在封装ip 报文头后,根据此包的目的地址及路由表交由相应的网络接口处理。

(2) 解封装的过程

解封装过程和加封装的过程相反。从tunnel 接口收到的ip 报文,通过检查目的地址,当发现目的地就是此路由器时,系统剥掉此报文的ip 报头,交给GRE协议模块处理进行检验密钥、检查校验和及报文的序列号等);GRE协议模块完成相应的处理后,剥掉GRE报头,再交由ipx 协议模块处理,ipx 协议模块象对待一般数据报一样对此数据报进行处理。

系统收到一个需要封装和路由的数据报,称之为净荷payload),这个净荷首先被加上GRE封装,成为GRE报文;再被封装在ip 报文中,这样就可完全由ip 层负责此报文的向前传输forwarded)。人们常把这个负责向前传输ip 协议称为传输协议delivery protocol 或者transport protocol)。

2. 应用范围

GRE协议主要能实现以下几种服务类型:

(1) 多协议的本地网通过单一协议的骨干网传输

group1 和group2 是运行novell ipx 协议的本地网,term1 和term2 是运行ip 协议的本地网。通过在routera 和routerb 之间采用GRE协议封装的隧道tunnel),group1 和group2、team1 和team2 可以互不影响地进行通信。

(2) 扩大了步跳数受限协议如ipx)的网络的工作范围

两台终端之间的步跳数超过15,它们将无法通信。而通过在网络中使用隧道tunnel)可以隐藏一部分步跳,从而扩大网络的工作范围。

(3) 将一些不能连续的子网连接起来,用于组建vpn

运行novell ipx 协议的两个子网group1 和group2 分别在不同的城市,通过使用隧道可以实现跨越广域网的vpn。

(4) 与ipsec 结合使用

对于诸如路由协议、语音、视频等数据先进行GRE封装,然后再对封装后的报文进行ipsec 的加密处理。

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

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

相关内容