隧道接口(Tunnel Interface)
隧道接口(Tunnel Interface)是为实现报文的封装而提供的一种点对点类型的虚拟接口,与 Loopback 接口类似,都是一种逻辑接口;
负责发送封装后的报文的物理接口叫做隧道源接口,对端接收此报文的物理接口叫做隧道目的接口;
基本原理
GRE 构成要素分为 3 个部分:
1)乘客协议,指用户在传输数据时所使用的原始网络协议;
2)封装协议,就是用来“包装”乘客协议对应的报文,使原始报文能够在新的网络中传输;
3)运输协议,是指被封装以后的报文在新网络中传输时所使用的网络协议;
如图所示,乘客协议为 IPv6,封装协议为 GRE,运输协议为 IPv4;
整体转发流程如下:
1)当 R1 收到 IP1 发来的 IPv6 数据包,查询设备路由表,发现出接口是隧道接口,则将此报文发给隧道接口处理;
2)隧道接口给原始报文添加 GRE 头部,然后根据配置信息,给报文加上 IP 头。该 IP 头的源地址就是隧道源地址,IP 头的目的地址就是隧道目的地址;
3)封装后的报文在 IPv4 网络中进行普通的 IPv4 路由转发,最终到达目的地 R2,并解封装(解封装过程和封装过程相反,这里不再赘述)
GRE Over IPSec
GRE 的主要缺点是不支持加密和认证,数据的安全传输得不到很好的保障;
而 IPSec 的主要缺点是只支持 IP 协议,且不支持组播;
将 GRE 封装入 IPsec 可以结合 GRE 和 IPsec 的优点,避免各自的缺点。GRE Over IPsec 是一种企业常用的点到点 VPN 技术;
通过部署 GRE Over IPSec 结合两种 VPN 技术的优点:
GRE 可以封装组播数据并在 GRE 隧道中传输。而 IPsec 目前只能对单播数据进行加密保护,因此对于诸如路由协议、语音、视频等组播数据需要在 IPsec 隧道中传输的情况,可以通过建立 GRE 隧道,并对组播数据进行 GRE 封装,然后再对封装后的报文进行 IPsec 的加密处理,就实现了组播数据在 IPsec 隧道中的加密传输;
GRE Over IPsec 可以结合 GRE 和 IPsec 两种技术的优点,使网络既可以支持支持多种上层协议和组播报文,又可以支持报文加密、身份认证机制和数据完整性校验;
当网关之间采用 GRE over IPsec 连接时,先进行 GRE 封装,再进行 IPsec 封装;
GRE over IPsec 可以使用两种封装模式:隧道模式;传输模式;
DSVPN
DSVPN 主要解决 GRE Over IPsec 存在的一些缺陷,使得有大量分支机构的公司也能方便地搭建 VPN 网络;
DSVPN 是一种动态建立 GRE 隧道的技术,通过 NHRP 协议动态收集、维护和发布各节点的公网地址等信息,解决了源分支无法获取目的分支公网地址的问题;
DSVPN 借助 mGRE 技术,使一个 Tunnel 接口可与多个对端建立 VPN 隧道;
DSVPN 建立的 GRE 隧道依然可以使用 IPsec 技术保证隧道的安全性;
DSVPN 主要解决 GRE Over IPsec 的缺陷:所有流量必须穿越 Hub。新增站点后需要修改 Hub 配置。Spoke 站点使用动态地址,部署点到点 GRE 时会有问题;
应用场景
DSVPN 在现网使用较少,主要原因:
很多企业希望分支之间流量能经过总部,便于管理;
企业运维人员对于 DSVPN 的了解一般,运维较不便;