将不连续的子网连接起来,用于组建VPN【详解通用路由封装协议GRE】
使用GRE隧道可以将不连续的子网连接起来,实现跨越广域网的VPN 。
例如,两个VPN子网Site1和Site2位于不同的城市,通过在网络边界设备之间建立GRE隧道,可以把这两个子网连接成一个连续的VPN网络 。
GRE可应用于L2VPN,也可以应用于L3VPN 。有两种模式:
- CPE-based VPN中,GRE隧道两端驻留在CE上,如图3-7 。图3-7 GRE in CPE-based VPN
- Network-based VPN中,GRE隧道两端驻留在PE上,如图3-8 。图3-8 GRE in Network-based VPN
图3-9 含MPLS标签的GRE报文格式
文章插图
GRE隧道也可以作为非MPLS的VPN骨干网隧道 。这种情况下,私网报文在VPN骨干网中传输时不含有MPLS标签,其报文格式如图3-10 。
图3-10 不含MPLS标签的GRE报文格式
文章插图
CE采用GRE隧道接入MPLS VPN
在MPLS VPN中,为了让用户端设备CE(Customer Edge)接入VPN中往往需要CE与MPLS骨干网的PE(Provider Edge)设备之间有直接的物理链路,即在同一个网络中 。在这样的组网中,需要在PE上将VPN与PE到CE的物理接口进行关联 。
如图3-11所示,在实际组网中,并非所有的CE和PE都能用物理链路直接相连 。例如,很多已经连接到Internet或基于IP技术的骨干网上的机构,其CE和PE设备之间地理位置上相距甚远,不可能直接接入到MPLS骨干网的PE设备上 。这样就无法通过Internet或者是IP骨干网直接访问MPLS VPN内部的站点 。
图3-11 CE使用基于IP技术的骨干网接入MPLS VPN骨干网
文章插图
为了让CE能接入到MPLS VPN且可以保证数据传输的安全性,可以在CE和PE间利用公共网络或某私有网络相连,并在CE与PE之间创建GRE隧道 。这样,可以看成CE和PE直连 。在PE上将VPN与PE-CE之间的接口进行关联时,就可以把GRE隧道当作一个物理接口,在这个接口上进行VPN关联 。
采用GRE隧道接入MPLS VPN时,GRE的实现模式可按以下三种情形来划分:
- 私有网络的GRE:GRE隧道关联某个VPN实例,而GRE隧道的源接口(或源地址)和目的地址也属于该VPN实例 。
- 穿过公网的GRE:GRE隧道关联某个VPN实例,GRE隧道的源地址和目的地址为公网地址,不属于VPN实例 。
- 穿越VPN的GRE:GRE隧道关联某个VPN实例(例如VPN1),GRE隧道的源接口绑定了另一个VPN实例(例如VPN2),即GRE隧道需要穿越VPN2 。
文章插图
如图3-12所示,GRE隧道的源和目的地址都属于私有网络 。在实际的应用中在私有网络里再创建一个隧道到PE的使用价值不高,因此不推荐使用,建议直接使用Device1作为CE设备 。
穿过公网的GRE在这种组网中,CE和PE都需要有属于公网的接口,该接口需要使用公网IP地址 。CE的公网路由表中需要有到PE的路由,PE公网路由表也需要有到CE的路由 。
图3-13 穿越公网的GRE示意图
文章插图
此外,为了让CE上的私网流量通过隧道传输到PE上,CE的路由表中,到远端site网段路由的出接口为GRE隧道接口,下一跳为隧道对端接口的IP地址 。
穿越VPN的GRE与穿过公网的GRE相比,穿越VPN的GRE不同点在于CE不是通过公共网络与PE互连,而是通过另一个VPN(如VPN2)与PE互连 。也就是说,CE上流向PE的私网数据的出接口及PE上返回该CE的私网数据流量的出接口都属于VPN2 。
图3-14 穿越VPN的GRE示意图
文章插图
例如图3-14中,PE1和PE2是一级运营商的MPLS骨干网边界设备 。VPN2是属于二级运营商的一个VPN 。CE1和CE2是属于用户的设备 。
为了在此网络环境中部署一个基于MPLS网络的VPN(如VPN1),可以在PE1和CE1之间搭建一个穿越VPN2的GRE,在逻辑上使CE1与PE1直连 。
推荐阅读
- Secure Shell 详解网络安全协议SSH
- 赞美母亲的名言详解大全
- 网络工程师如何用思科路由器配置GRE Over IPsec
- 图文详解以太网中OSPF如何建立邻接关系?
- netty 服务端启动流程源码详解
- Shiro框架详解
- 动态路由协议RIP配置,带你一分钟学会
- WiFi大提速!WiFi 6和WiFi 6E详解
- 如何用手机查看自己家的路由器密码?
- SpringCloud Gateway详解