MPLS VPN技术简介与基本配置案例

一.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)配置流程:

  1. 底层运行OSPF协议实现互通-运行ospf-1进程;

  2. PE之间运行BGP协议----IBGP;

  3. MP-BGP---用于支持VPN-IPV4;

  4. PE---P---PE之间运行MPLS LDP;

  5. 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进行绑定

配置完成后,在成功完成该组网需求!

相关推荐
C++忠实粉丝2 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
Estar.Lee2 小时前
时间操作[取当前北京时间]免费API接口教程
android·网络·后端·网络协议·tcp/ip
蝶开三月2 小时前
php:使用socket函数创建WebSocket服务
网络·websocket·网络协议·php·socket
G丶AEOM2 小时前
SSL/TLS,SSL,TLS分别是什么
网络·网络协议·网络安全
Koi慢热3 小时前
路由基础(全)
linux·网络·网络协议·安全
刽子手发艺5 小时前
WebSocket详解、WebSocket入门案例
网络·websocket·网络协议
速盾cdn9 小时前
速盾:CDN是否支持屏蔽IP?
网络·网络协议·tcp/ip
Lws20 小时前
CS144 lab0(个人理解)
网络协议
C++忠实粉丝1 天前
计算机网络socket编程(2)_UDP网络编程实现网络字典
linux·网络·c++·网络协议·计算机网络·udp
添砖java_8571 天前
UDP数据报套接字编程
网络·网络协议·udp