一.MPLS VPN 介绍
首先,MPLS VPN技术是属于VPN(Virtual Private Network,虚拟专用网络)技术领域的一种。而相较于传统的VPN技术,MPLS VPN把MPLS与VPN结合在一起,将多个远程站点连接在一起,形成一个安全、可靠、高效的通信网络。MPLS VPN 技术使得企业可以使用公用互联网作为传输网络,而在互联网上建立一条私密的、模拟的、安全的 VPN 通道,从而实现远程站点之间的加密通信和数据传输。
二.MPLS VPN网络组成
MPLS VPN的网络架构由以下三个部分组成
1.CE(Customer Edge): 客户边缘设备。位于客户网络的边界,用于连接客户内部网络和服务提供商的 PE 路由器。
2.PE(Provider Edge): 服务提供商边缘设备。位于服务提供商网络的边界,用于连接客户网络和服务提供商网络。
3.P(Provider): 服务提供商设备。P 路由器是服务提供商网络内部的中间设备,用于通过 MPLS (多协议标签交换)技术传输流量。P 路由器的作用是根据标签信息将流量从一个 PE 路由器传递到另一个 PE 路由器,它不涉及具体的客户网络。
如下图,MPLS VPN骨干网络为购买MPLS VPN接入服务的公司的多个不同站点提供提供网络服务,PE1作为提供商网络边界的设备与CE1相连,为不同的客户提供服务,另一个站点与之类似;而中间的P设备,可以理解为内部进行中转的设备,这里做了简化,在现网中往往会部署多个P设备,以达到跨省市的需求等。
三.MPLS VPN包含的技术
MP-BGP:负责在PE与PE之间传递站点内的路由信息。普通的BGP无法承担VPN-IPV4的路由,因此我们需要使用该技术来支持VPN-IPV4路由
MPLS LDP:负责PE与PE之间的隧道建立。
VRF:负责PE的VPN用户管理。不同公司的多个站点,难免会出现地址冲突等情况,于是为了区分这些服务,我们用对应的设备上创建VRF,可以理解为在同一台设备上创建了多个虚拟设备,同属于一个VRF的数据使用相同的服务。
四.MPLS实现流程
1. 路由转发流程:
(1)PE收到CE传来的IPV4路由
(2)PE设备针对不同的VRF,加上不同的RD值及RT属性,形成VPN-IPV4路由,并由MP-BGP 为其分发内层标签(私网标签),用于区分数据所属的VPN
(3)PE之间建立了MP-BGP,形成了IBGP对等体,发送VPN-IPV4L路由给远端的BPG对等体,
并由MPLS LDP 为VPNV4路由分发公网标签(外部标签)
(4)PE--P--PE通过公网标签转发路由
(5)对方的PE收到从远端传来的VPNV4路由,需要执行私网路由交叉和隧道迭代来选择 路由。检查其RT属性是否有交集,满足条件后则注入对应的VRF当中,剥离RD值, 形成IPV4路由
(6)最后将该路由告知另一站点的CE
2. 报文转发流程:
(1)以上图为例,CE1要与CE2通信,发送了目的ip为5.5.5.5,源ip为1.1.1.1的ipv4报 文给PE1设备
(2)PE设备根据绑定的VPN实例的RD查找对应VPN的转发表,然后根据Tunnel-ID找到 隧道,并打上对应的内层标签(I-L)
(3)将报文从隧道发送出去,即打上公网(外层)MPLS标签头(O-L1)
(4)PE2设备收到该携带两层标签的报文,交给MPLS处理,MPLS协议将去掉外层标签。
(5)PE2设备继续处理内层标签:将内层标签剥离后,以纯IPv4报文的形式发送给CE1。
(6)CE2收到该IPv4报文后,进行常规的IPv4报文处理流程。
五.配置实验案例
网络拓扑
1. 组网需求:
两个公司A,B均购买了MPLS VPN接入服务,为了实现公司内部的通信,需要用MPLS VPN技术进行不同站点的互联(1.1.1.1能ping通5.5.5.5,6.6.6.6能ping通7.7.7.7)
2.组网规划:
(1)IP规划:规划如上图。这里各个站点的CE上的loopback0口配置的ip地址模拟各站点的局域网络
(2)MPLS VPN骨干网(PE--P--PE)配置流程:
-
底层运行OSPF协议实现互通-运行ospf-1进程;
-
PE之间运行BGP协议----IBGP;
-
MP-BGP---用于支持VPN-IPV4;
-
PE---P---PE之间运行MPLS LDP;
-
PE设备VPN-instance 配置RD/RT,端口绑定;
(3)各站点与骨干网之间(CE--PE之间)配置流程:
1)CE与PE之间运行OSPF-2;
2)再PE上路由互相引入(OSPF与BGP之间互相引入);
3.配置流程
(1)首先配置ip地址,这里省略;
(2)公网运行OSPF协议实现互通;
在AR3上查看发现与两个PE均建立了OSPF邻接关系
(3)两个PE之间运行IBGP
下面两张图分别为PE1与PE2之间的配置
在AR2-PE1设备上查看bgp邻居关系
(4)PE之间运行MP-BGP,支持VPN4
在AR2-PE1上使能VPN-IPV4
AR4-PE2上也同样
(5)MPLS VPN骨干网(PE---P---PE)之间运行MPLS LDP
在AR2-PE1上使能MPLS LDP,并进入接口使能
在另外两台设备上AR3-P和AR4-PE2上也激活MPLS VPN并在接口上使能,如下两张图
在AR2-PE1上验证配置,可以看出从本地发送的源ip为2.2.2.2报文会为其打上1024的标签,如下图
在AR4-PE2上验证其配置,发现本地4.4.4.4始发的报文会为其打上1025的标签,如下图
在AR3-P上验证配置,可以看出在该设备上对于去往目的为2.2.2.2网段的报文,其会剥离1024的标签,替换上3的标签,而这个为隐式空标签,根据其PHP特性,会将其弹出;而对于去往目的为4.4.4.4网段的报文,其会剥离1024的标签,替换上3的标签,而这个为隐式空标签,根据其PHP特性,也会将其弹出;
(6)在PE设备创建VPN-instance,配置RD/RT,端口绑定
在AR2-PE1上创建vpn-instance 1
配置对应的RD值与RT属性 此处对在AR2-PE1设备上的的vpn-instance 1中对ipv4地址前缀进行了扩展,带上了100:1的RD; 此设备发布的VPNV4路由附带了100:123的Export RT属性; 当从对端PE收到VPNV4路由时,会检查其所带的RT属性,如果VPNV4路由的RT属性与自己本地的import-RT属性有交集,这里为检查到了100:456的RT属性,则将该路由注入到该VRF中;
同样,在AR2-PE1设备上的的vpn-instance 1中对ipv4地址前缀进行了扩展,带上了100:1的RD; 此设备发布的VPNV4路由附带了100:456的Export RT属性; 当从对端PE收到VPNV4路由时,会检查其所带的RT属性,如果VPNV4路由的RT属性与自己本地的import-RT属性有交集,这里为检查到了100:123的RT属性,则将该路由注入到该VRF中;
然后在分别在与各站点的CE相连的端口进行绑定,并配置对应的IP地址
(7) CE与PE之间运行OSPF-2,PE设备上的ospf进程2需要绑定对应的vpn-instance
如下图在AR2上的ospf进程2上绑定了vpn-instance 1,然后宣告对应接口
在对端AR1-CE1上也进行对应配置,同时将我们需要引入的网段1.1.1.1宣告进去
检查邻接状态,如下图发现邻接关系已经建立
同样另一边也是类似的配置,配置完过后查看邻接关系
此时我们在两台PE设备上查看对应的VRF中的路由表,发现我们需要互联的网段均以ospf路由的形式存在在两台PE设备上,接下来我们则需要进行路由的互相引入
(8)PE设备上路由的互相引入
从上面得知我们所需要互联的网段均以ospf路由的形式存在与两台PE设备上的对应VRF中,此时我们则需要同过路由互相引入的手段,实现互联。
首先我们在AR2-PE1设备上将ospf-2引入MP-BGP 100中,这里引入的目的是为了将让这个PE设备告知给他的IBGP对等体,也就是对端AR4-PE2设备
然后我们在本地查看MP-BGP对应的vpn-instance1的路由表 发现成功引入,此处有个细节,引入后首先有的是最下方的vpn-instance1的ipv4路由表, 再加上我们之前配置的RD前缀值100:1后形成了VPNV4路由
接着我们在对端,AR4-PE2设备上查看MP-BGP路由表,而此时该设备是先收到了对端传来的VPNV4路由,查看对应的RT属性值,也就是我们之前配置的100:123,发现包含,于是注入再对应的VRF中
而此时,AR4-PE2收到了对端PE发来的1.1.1.1的路由,则需要再引入到ospf-2中,目的是为了将该路由信息告知给OSPF邻居CE设备
此时我们再在AR5-CE2设备上查看对应的路由信息,发现1.1.1.1网段被成功学习到,如下图
同样对端,也需要学习到本段的5.5.5.5的网段,则需要再进行一次路由的互相引入,如下图
此时两个站点均学习到了对方网段的路由,则可以实现互通,我们来测试一下,成功互通!
(9)最后我们来验证一下配置
首先我们现在AR2-PE1设备上查看fib表的详细信息,输入命令dis fib vpn-instance 1 verbose
发现目的位5.5.5.5的路由所携带的私网标签为1026;BGPnexthop下一跳地址为4.4.4.4
然后我们再查看去往4.4.4.4路由所携带的公网标签,输入命令dis mpls ldp lsp 4.4.4.4 32 发现4.4.4.4网段所压入的公网标签为1024
至此我们可以想象出从1.1.1.1发往5.5.5.5的报文头部,即再网络层头部上先封装一层1026的私网标签,然后再封装为1024的公网标签,我们来抓包验证一下吧 发现报文的结构的确如此。至此公司A的配置完成!而公司B的配置也基本相同,但是需要再PE设备上创建新的VRF进行绑定
配置完成后,在成功完成该组网需求!