News
发布日期:2023-03-24 浏览次数:1254 来源:WOLFLAB
在学习HCIE Datacom的你必须要理解的-MPLS VPN基本概念
关注WOLFLAB网络技术实验室,华为认证HCIE Datacom培训课程循环开班,需要学习考试的同学可以联系WOLFLAB,我们提供免费基础课学习资料及试听!
传统的VPN通过在所有站点间建立全连接隧道或者永久虚链路PVC(Permanent Virtual Circuit)的方式实现,不易维护和扩展,尤其是向已有的VPN加入新的站点时,需要同时修改所有接入此VPN站点的边缘节点的配置。
相比较传统的VPN,BGP/MPLS IP VPN更容易扩展和管理。新增一个站点时,只需要修改提供该站点业务的边缘节点的配置。
BGP/MPLS IP VPN支持地址空间重叠、支持重叠VPN、组网方式灵活、可扩展性好,并能够方便地支持MPLS TE,成为在IP网络运营商提供增值业务的重要手段,因此得到越来越多的应用。
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的流量;
举例:
[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
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所示。
注意:一台设备上不同的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中换了个说法就叫扩展团体属性。
网络搭建模型:
如果每个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培训技术,我们每周都会更新!