GRE协议的封装、解封过程(1)


在网络中,传输一个协议,我们如何做到不同网络的跨界呢?这就需要一个协议封装的概念了。那么完成这个工作的就是GRE协议了。现在对于这个重要的协议我们来进行一个细致的讲解吧。

1. GRE协议概念

通用路由封装GREGeneric Routing Encapsulation)是对某些网络层协议如IP和IPX)的报文进行封装,使这些被封装的报文能够在另一网络层协议如IP)中传输。

GRE可以作为VPN的第三层隧道协议,在协议层之间采用隧道Tunnel)技术。Tunnel是一个虚拟的点对点的连接,可以看成仅支持点对点连接的虚拟接口,这个接口提供了一条通路,使封装的数据报能够在这个通路上传输,并在一个Tunnel的两端分别对数据报进行封装及解封装。

2. 报文封装及解封装

(1) 报文的传输

报文在Tunnel中传输包括加封装与解封装两个过程,下图的网络为例说明这两个过程:

加封装过程:

连接Novell group1的接口收到IPX数据报后,首先交由IPX协议处理。

IPX协议检查IPX报头中的目的地址域来确定如何路由此包。如果发现报文的目的地址要经过网号为1f的网络Tunnel的虚拟网号),则将此报文发给网号为1f的Tunnel接口。

Tunnel接口收到此报文后进行GRE协议封装,封装完成后交给IP模块处理,在封装IP报文头后,根据报文目的地址及路由表交由相应的网络接口处理。  

解封装过程:

解封装过程和加封装过程相反。从Tunnel接口收到IP报文,检查目的地址,当发现目的地就是此路由器时,系统去掉此报文的IP报头,交给GRE协议模块处理;GRE协议模块完成相应的处理后,去掉GRE报头,再交由IPX协议模块处理,IPX协议模块象对待一般数据报一样对此数据报进行处理。  


相关内容