WOLF-LAB沃尔夫网络实验室中国网络精英的发源地!
24小时咨询热线:173-1636-2402

技术文档

Technical documentation

您当前位置: 首页 > 技术文档 > 详情

在学习HCIE Datacom的你必须要理解的-MPLS VPN基本概念

发布日期:2023-03-24 浏览次数:847 来源:WOLFLAB

在学习HCIE Datacom的你必须要理解的-MPLS VPN基本概念


关注WOLFLAB网络技术实验室,华为认证HCIE Datacom培训课程循环开班,需要学习考试的同学可以联系WOLFLAB,我们提供免费基础课学习资料及试听!

华为认证HCIE1.jpg


传统的VPN通过在所有站点间建立全连接隧道或者永久虚链路PVC(Permanent Virtual Circuit)的方式实现,不易维护和扩展,尤其是向已有的VPN加入新的站点时,需要同时修改所有接入此VPN站点的边缘节点的配置。

相比较传统的VPN,BGP/MPLS IP VPN更容易扩展和管理。新增一个站点时,只需要修改提供该站点业务的边缘节点的配置。

BGP/MPLS IP VPN支持地址空间重叠、支持重叠VPN、组网方式灵活、可扩展性好,并能够方便地支持MPLS TE,成为在IP网络运营商提供增值业务的重要手段,因此得到越来越多的应用。

图片1(44).png

BGP/MPLS IP VPN的基本模型由三部分组成:CE、PE和P。

CE(Customer Edge):用户网络边缘设备,有接口直接与服务提供商网络相连。CE可以是路由器或交换机,也可以是一台主机。通常情况下,CE“感知”不到VPN的存在,也不需要支持MPLS。

PE(Provider Edge):是服务提供商网络的边缘设备,与CE直接相连。在MPLS网络中,对VPN的所有处理都发生在PE上,对PE性能要求较高。

P(Provider):服务提供商网络中的骨干设备,不与CE直接相连。P设备只需要具备基本MPLS转发能力,不维护VPN信息。

PE和P设备仅由服务提供商管理;CE设备仅由用户管理,除非用户把管理权委托给服务提供商。

一台PE设备可以接入多台CE设备。一台CE设备也可以连接属于相同或不同服务提供商的多台PE设备。

 

MPLS VPN需要解决以下几个问题?

1、PE连接多个CE时,如何解决PE本地路由冲突的问题;

2、当从远端PE接收到相同的私网路由,我怎么去判断这是属于不同站点的私网路由呢;

3、当从远端PE接收到的私网路由,我怎么判断属于本端哪个站点呢;

4、当从远端PE收到私网报文时,我怎么判断该报文属于本端PE的哪个站点呢;

 

VRF:解决PE本地路由冲突的问题

VRF---VPN路由转发实例(VPN Routing & Forwarding Instance )

每一个VRF可以看作虚拟的路由器,好像是一台专用的PE设备。该虚拟路由器包括如下元素:

●一张独立的路由表,当然也包括了独立的地址空间;

●一组归属于这个VRF的接口的集合。

●一组只用于本VRF的路由协议。

对于每个PE,可以维护一个或多个VRF,同时维护一个公网的路由表(也叫全局路由表),多个VRF实例相互分离独立。

其实实现VRF并不困难,关键在于如何在PE上使用特定的策略规则来协调各VRF和全局路由表之间的关系。

 

VRF的早期设计思想VLAN

交换机一个mac地址只能关联一个接口,有了vlan的概念就是同一个vlan下,一个mac地址只能关联一个接口;

一台交换机不同的vlan,mac地址表象是独立的,也就相当于一个vlan一个交换机;

一台交换机不同的接口如果属于不同的vlan可以学习到相同的mac地址;

trunk接口可以学习到多个相同的mac地址,因为trunk接口可以承载多个vlan的流量;

举例:

图片1(45).png

[SW1]dis mac-address

MAC address table of slot 0:

-------------------------------------------------------------------------------

MAC Address    VLAN/       PEVLAN CEVLAN Port            Type      LSP/LSR-ID  

               VSI/SI                                              MAC-Tunnel  

-------------------------------------------------------------------------------

aaaa-aaaa-aaaa 10          -      -      GE0/0/1         dynamic   0/-         

aaaa-aaaa-aaaa 20          -      -      GE0/0/2         dynamic   0/-         

-------------------------------------------------------------------------------

Total matching items on slot 0 displayed = 2 

 图片1(46).png

SW1和SW2之间起trunk,此时在SW2的g0/0/3口上看mac地址如如下:

[SW2]dis mac-address

MAC address table of slot 0:

-------------------------------------------------------------------------------

MAC Address    VLAN/       PEVLAN CEVLAN Port            Type      LSP/LSR-ID  

               VSI/SI                                              MAC-Tunnel  

-------------------------------------------------------------------------------

aaaa-aaaa-aaaa 10          -      -      GE0/0/3         dynamic   0/-         

aaaa-aaaa-aaaa 20          -      -      GE0/0/3         dynamic   0/-         

-------------------------------------------------------------------------------

Total matching items on slot 0 displayed = 2 

 

RD和VPN-IPv4地址

传统BGP无法正确处理地址空间重叠的VPN的路由。假设VPN1和VPN2都使用了10.110.10.0/24网段的地址,并各自发布了一条去往此网段的路由。虽然本端PE通过不同的VPN实例可以区分地址空间重叠的VPN的路由,但是这些路由发往对端PE后,由于不同VPN的路由之间不进行负载分担,因此对端PE将根据BGP选路规则只选择其中一条VPN路由,从而导致去往另一个VPN的路由丢失。

PE之间使用MP-BGP(Multiprotocol Extensions for BGP-4,BGP-4的多协议扩展)来发布VPN路由,并使用VPN-IPv4地址来解决上述问题。

VPN-IPv4地址共有12个字节,包括8字节的路由标识符RD(Route Distinguisher)和4字节的IPv4地址前缀,如图4所示。

1679637765893168.png

注意:一台设备上不同的VRF只能配置一个RD值,且RD值在本地一定是不同的

 

VPN Target

BGP/MPLS IP VPN使用BGP扩展团体属性-VPN Target(也称为Route Target)来控制VPN路由信息的发布。

每个VPN实例关联一个或多个VPN Target属性。有两类VPN Target属性:

Export Target:本地PE从直接相连Site学到IPv4路由后,转换为VPN-IPv4路由,并为这些路由设置Export Target属性。Export Target属性作为BGP的扩展团体属性随路由发布。

Import Target:PE收到其它PE发布的VPN-IPv4路由时,检查其Export Target属性。当此属性与PE上某个VPN实例的Import Target匹配时,PE就把路由加入到该VPN实例中。

在BGP/MPLS IP VPN网络中,通过VPN Target属性来控制VPN路由信息在各Site之间的发布和接收。VPN Export Target和Import Target的设置相互独立,并且都可以设置多个值,能够实现灵活的VPN访问控制,从而实现多种VPN组网方案。

例如:某VPN实例的Import Target包含100:1,200:1和300:1,当收到的路由信息的Export Target为100:1、200:1、300:1中的任意值时,都可以被注入到该VPN实例中。

注意:如果设置了多个export那么发出的时候全部携带,接收的一端只要匹配住一个就行。

什么叫扩展的团体属性?

IPV4叫做团体属性,VPNV4中换了个说法就叫扩展团体属性。

 

网络搭建模型:

图片1(47).png

如果每个vpn instacne的RT是不一样的,RT能否充当RD呢?

理论上是可以的,但是为什么不这么做?

1、一台设备上不同的VRF只能配置一个RD值,且RD值在本地一定是不同的,而不同的VRF可以配置多个RT,且RT值可以是相同的;

2、因为可能携带多个RT,在判断是否是不是同一条路由不好判断;

3、RT本质上是BGP的团体属性,跟前缀不是放在一起的,收到设备不好处理,那我就专门设计一个RD跟前缀放在一起;

4、BGP在撤销路由的时候是不会携带属性的,只会携带前缀,又得修改BGP原有的机制;

 

公网标签:

本质是VPNV4路由在公网的下一跳,由MPLS domain中的LDP协议负责分配

私网标签:

方便PE接收到私网报文用于判断这个报文属于本端的哪个VPN实例的,由接收端PE通过MP-BGP协议发布该私网路由的时候分配的;

 

既然路由发布时已经携带了RD,可否就使用RD作为标识呢?

理论上讲肯定是可以的。但是RD一共有64个bit,太大了。这会导致转发效率的降低。所以只需要一个短小、定长的标记即可。由于公网的

隧道已经由MPLS来提供,而且MPLS支持多层标签的嵌套,这个标记定义成MPLS标签的格式。

 

VRF:在一台PE上虚拟出来的一个路由器,包括一些特定的接口,一张路由表,一个路由协议,一个RD和一组RT规则。

RT:表明了一个VRF的路由喜好,通过他可以实现不同VRF之间的路由互通,他的本质就是BGP的community属性。

RD:为了防止一台PE接收到远端PE发来的不同VRF的相同路由时不知所措,而加在路由前面的特殊信息。在PE发布路由时加上,在远端PE接收到路由后放在本地路由表中,用来与后来接收到的路由进行比较。

Label:为了防止一台PE接收到远端PE发给本地不同VRF的相同地址的主机时不知所措,而加在报文前面的特殊信息。由本地PE在发布路由时加上,远端PE接收到保存在相应的VRF中。

SITE:一个VRF加上与其相连的所有的CE的集合。

VPN:是一些SITE的集合,这些SITE由于共享了相同的路由信息可以互通。


HCIE Datacom培训课程联系网站客服预约免费试听

欢迎关注WOLFLAB(沃尔夫)网络实验室,了解更多关于HCIE Datacom培训技术,我们每周都会更新!

返回目录
在线咨询