基本原理
GRE 构成要素分为3个部分:
1)乘客协议,指用户在传输数据时所使用的原始网络协议。
2)封装协议,就是用来“包装”乘客协议对应的报文,使原始报文能够在新的网络中传输。
3)运输协议,是指被封装以后的报文在新网络中传输时所使用的网络协议。
如图所示,乘客协议为 IPv6,封装协议为 GRE,运输协议为 IPv4。
整体转发流程如下:
1)当R1收到IP1发来的IPv6数据包,查询设备路由表,发现出接口是隧道接口,则将此报文发给隧道接口处理。
2)隧道接口给原始报文添加GRE头部,然后根据配置信息,给报文加上IP头。该IP头的源地址就是隧道源地址,IP头的目的地址就是隧道目的地址。
3)封装后的报文在IPv4网络中进行普通的IPv4路由转发,最终到达目的地 R2,并解封装(解封装过程和封装过程相反,这里不再赘述)
隧道接口(Tunnel Interface)是为实现报文的封装而提供的一种点对点类型的虚拟接口,与Loopback接口类似,都是一种逻辑接口。
GRE Over IPSec
GRE 的主要缺点是不支持加密和认证,数据的安全传输得不到很好的保障。
而 IPSec 的主要缺点是只支持IP协议,且不支持组播。
通过部署 GRE Over IPSec 结合两种 VPN 技术的优点: