六、MPLS VPN-框架

单纯的部署MPLS没有意义,标签交换不一定比路由交换快。MPLS的主要且典型应用就是MPLS VPN。

PE和CE是三层对等体,PE需要直接参与客户路由交换;

PE连多个客户,客户之间地址是可能重叠的,PE设备允许重叠,所以需要独立的路由表;

两个站点间通讯,需要CE有对端网络的路由;

CE和PE交换路由信息,PE将路由协议传给对端,交换给对端CE;

PE1收到CE路由后,如服务商运行BGP,PE间建立IBGP邻居关系,多个P路由不用再运行BGP,P只需要做好数据转发层面工作。

6.1 初体验

说明:运营商搭建MPLS VPN网络,A1和A2通信,B1和B2通信。

A1和A2通信,A1的CE01需要学习到A2的路由,A2的CE02也需要学下到A1的路由;

把A1的CE01和PE1连着,直接运行动态路由协议(PE-CE),就可以把A1的路由通过CE01交给PE1,PE1把路由传给PE2,再传给CE02,打通路由层面;

PE路由器同时连接客户A和客户B,A和B的地址可能会重叠,如都用了10.1.1.0/24,A和B会同时把10.1.1.0/24更新给PE1,PE1需要区分该把学到的10.1.1.0/24传给A还是B。就需要借助VRF技术。

6.1.1 VRF:Virtual Route Forwarding

即虚拟路由器,PE1路由器有多个接口:

当没有VRF时,有一张路由表RIB,全局路由表,给接口配置地址后,RIB中就有由该条路由,对联的路由器更新过来路由后,路由表RIB中就会装载对端更新过来的路由。和全局路由表关系的FIB(CEF)表。多个接口学到的路由都会填充在全局路由表里面,当出现两个接口更新同样的路由过来时,全局路由表就没发区分了。

VRF,在一条路由器上创建虚拟路由器,相当于在物理路由器上有虚拟路由器了,可以分配接口给该虚拟路由器,可以有虚拟路由表,区别于全局路由表,且完全隔离。VRF可以有自己的接口、路由表、CEF表、运行动态路由协议等。

如PE1,全局路由表存和其他PE的连接路由信息,同时给连接A和B的分别创建VRFA和VRFB,相当于有了两台虚拟路由器,把和A连的物理接口分配给VRFA,这时和A相关的路由信息会保存在VRFA的路由表中,把和B连的物理接口分配给VRFB,这时和B相关的路由信息会保存在VRFB的路由表中。这时PE1有三种路由表,完全隔离,就可以区分不同的客户路由,即使地址重叠也无所谓。

PE1把路由运载到PE2,可以使用BGP协议,直接在PE1和PE2间建立IBGP关系。中间的多个P路由器来说,无需运行BGP。

但是PE和P间需要运行IGP协议,理由如下:

  • PE1和PE2之间需要有路由,需要通过IGP获取;
  • 把运营商骨干内路由打通;
  • 为MPLS准备,中间P路由器没有BGP的路由,只有运营商骨干内部的路由,不能知道客户的路由,这时会有路由黑洞,需要借助MPLS。

6.1.2 RD:Route-Distinguisher

目前为止,PE1解决了地址重叠问题,可是PE2怎么知道相同的地址的路由哪条给A,哪条给B。IPV4前缀有32位,在两条路由前缀加一段内容,如A的加234:1:10.1.1.0/24和B的加234:2:10.1.1.0/24,来区分。234:1和234:2即使RD值,不同的VPN客户分配不同的RD值。

在定义VRF时,可以定义RD值:AS号:编号

VPN V4前缀(96位):RD(64位):IPV4前缀(32位),保证路由前缀的唯一性。

IBGP传递是,传的就是96位的前缀了。

6.1.3 MP-BGP

传统BGP承载的是IPV4路由,但设置传的是VPN V4路由,一个是32位,一个是96位,需要对传统BGP扩展,可以支持多协议,即MP-BGP。

6.1.4 RT: Route Tagert

PE1通过MP-IBGP传递给PE2后,PE2剥离掉前96位后,把来自A的路由更新给A站点,来自B的更新给B站点。

PE2也需要配VRF,并依据RT值(扩展的COMMUNITY),否则也无法区分。

RT值在定义VRF时配置,路由进入VRF后,会和RD、RT值关联,RT区分不同VPN客户。

目前位置,站点间有了相互间路由,下一步数据传输。

VRF(Virtual Route Forwarding): VRF的目的是解决不同企业私网地址段相同,为了防止冲突,采用将相同私网地址放到不同的VRF表中。VRF区分不同CE端进来边界PE的相同私网路由,路由器的每一个VRF 都自动生成相应VRF表,比如show route vrf A ,show route vrf B。对于每一个VRF表,都具有路由区分符(Route Distinguisher:RD)和路由目标(Route Target:RT)两大属性。

RD(Route-Distinguisher): 8个字节的RD+4个字节的IPv4地址组成96位VPNv4路由,使不唯一的IPv4地址转化为唯一的VPN-IPv4地址,该VPNv4路由在ISP域内传递(区分),RD给某VRF里面的路由打上标签,进而实现地址的复用而不产生冲突。RD用来区分本地VRF,该属性仅本地有效。

RT(Route Tagert):BGP的扩展团体属性,它分成Import RT和Export RT,分别用于路由的导入、导出策略。也即RT是控制这个VRF里面可以发出和接受什么样的路由。RT具有全局唯一性,并且只能被一个VPN使用。

6.1.5 MPLS:两层标签

CE02发包给PE2,P路由器是不知道10.1.1.0/24路由的,因为P路由器是不知道客户路由的,P路由就会造成路由黑洞,这时就需要借助MPLS标签来解决路由黑洞问题了。

数据包即使压了标签送到了P,P如何区分是去往A还是去往B。这时MP-BGP除了发路由前缀VPN V4外,在给每条前缀捆绑一个标签,即PE1把标签和路由前缀一块发给PE2,当PE2发数据时,先压上PE1给的标签,这样当包交换到PE1的时候,PE1就知道这个IP包是给A还是给B,因为这个标签就是PE1分配的。

压入的标签对于P来说是无法识别的,在压入一层标签,两层标签:

内层标签:即VPN标签,由出栈PE路由器提供,通过MP-BGP分发和捆绑,用来区分去往哪个客户。

外层标签:LDP标签,或IGP标签,PE2路由下一跳,用户P间路由使用。

到PE1是外层标签弹出,就剩下内层标签,决定去往A还是B。

6.2 概念

6.2.1 VRF

全局路由器:全局路由表,和P交换运营商骨干网核心路由;

两VRF:连接两个客户,需要创建两个VRF,并将对应互联接口分配对应的VRF,从对应接口学到的路由放进对应的VRF表;

RD:区分重复地址+VPN V4前缀在MBGP中传递;

RT:区分哪些路由能进哪些VRF;

PE中OSPF100:和内部P以及PE之间交互,构建全局路由表;

PE中MBGP,至少两个地址族,address-family vpnv4,/ipv4:包括VPN V4,核对端PE交换VPNV4前缀;IPV4 vrf abc则是从VRF ABC中,把VRF ABC重发布到BGP进程中,收到的路由传给对端PE。

VRF定义:

RD值:IPV4进入VRF的路由进入BGP地址族,变成VPNV4传递时,加入前缀:

RT值:输出,即V4路由进入VRF,VPNV4的BGP传递时,RT作为扩展COMMUNITY传递,路由传出去是粘贴的值;输入,对端传过来的路由,只收扩展COMMUNITY为为输入的RT值。

6.2.2 P网络路由

6.2.3 MP-BGP

6.2.4 RD

区分地址以及承载MPBGP

64位+32位

地址重叠+MPBGP支持;

PE1右边接口属于全局路由接口,运行CORE IGP;

VRF表则是两端CE学过来的客户路由,PE1路由器通过粘贴在VRF中配置的RD值,将VRF中的路由变成VPN V4前缀。

PE1和PE2建立IBGP邻居关系,更新给PE2了,BGP路由可以携带很多BGP路由属性,其中有一个扩展COMMUNITY路由属性值,为RT,携带VRF中配置的导出RT值。

将96位VPNVE前缀剥离,还原为IPV4,给哪一个VRF,需要根据导入RT值。

6.2.5 RT

6.3 MPLS VPN-路由模型

6.3.1 CE路由器

客户边界路由器

CE只和P交互,屏蔽骨干信息,对外一朵云

6.3.2 P路由器

不参与用户路由交互,不运行BGP(会造成潜在的路由黑洞,需要借助MPLS),只参与数据层面转发

6.3.3 PE路由器

递归的下一跳需要通过IGP走

6.3.4 VPN V4路由路径

CE和PE间交换:静态路由或者动态路由协议(IGP:OSPF,EIGRP等;EBGP)

从CE学到的路由放入该接口关联的VRF表中

如果路由是通过静态或者IGP协议学到的,则需要重发布进BGP,如果是通过EBGP学到的,则不需要重发布。

该标签是PE分配的,用来决定给A还是给哪个CE。

根据IMPORT RT值对应的才能进入VRF表

进入PE的VRF表

通告给CE

6.3.5 MP-BGP

RD RT信息

6.3.6 数据层面

首先IP包进入数据包的入栈路由器,查VRF的CEF表,至于查全局的CEF表还是VRF的CEF表,主要看接口是否滑到了VRF中。

通过查询VRF的CEF表,给IP包压入两层标签:内层标签为VPN标签,目的是为了把包送到出栈路由器,同时出栈路由器知道该包是给哪个VPN客户;外层标签也成为IGP标签或LDP标签,由LDP分配,是为了避免P路由黑洞,用于内层数据在MPLS网络中传输。

6.3.7 报文转发示例

CE通过动态路由更新到了PE,更新了RD值,配置了LOOPBACK接口,骨干网运行了OSPF

VPNV4前缀:2345:6:10.11.1.0,还会携带标签和RT值。

LDP部分

MPBGP部分

两层标签,两个协议完成

开始数据层面转发

查VRF的CEF表,指示压两层标签,内层标签有EXGRESS路由器给的(通过MPBGP传递过来的);外层标签是IMGRESS相连的P路由器给的,是为EXGRESS的LOOPBACK地址分配的标签。

标签包到P路由器后,只处理外层标签,查询P的FLIB表,转到P,P然后POP外层标签,变成只有一层标签的标签包给EXGRESS,把内层标签500到本地查找,发现和哪个CE关联,再弹出内层标签后,发给CE。

发表回复