一 协议简介
GRE(Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(IPX, AppleTalk, IP, IPSec, DVMRP, etc.)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。GRE采用了Tunnel(隧道)技术,是VPN(Virtual Private Network)的第三层隧道协议。
Tunnel是一个虚拟的点对点的连接,提供了一条通路使封装的数据报文能够在这个通路上传输,并且在一个Tunnel的两端分别对数据报进行封装及解封装。
一个X协议的报文要想穿越IP网络在Tunnel中传输,必须要经过加封装与解封装两个过程,下图说明这两个过程:
二 加封装过程
1 Router A连接Group 1的接口收到X协议报文后,首先交由X协议处理;
2 X协议检查报文头中的目的地址域来确定如何路由此包;
3 若报文的目的地址要经过Tunnel才能到达,则设备将此报文发给相应的Tunnel接口;
4 Tunnel口收到此报文后进行GRE封装,然后再封装IP报文头,设备根据此IP包的目的地址及路由表对报文进行转发,从相应的网络接口发送出去。
三 GRE封装后的报文格式
举例来说,一个封装在IP Tunnel中