1.RD:Route Distinquishers
1)介绍
- 让BGP可以区分重复的路由前缀,确保唯一性
- 路由前缀不再是普通的IPv4地址,而是RD+IPv4地址 (称为VPNv4地址=96 bits)
- 每个VRF (VPN实例) 都必须配置至少一个RD
2)VPNv4和IPv4 地址族
- 在IPv4地址加上RD之后,就变成VPNV4地址族了。而原来的标准的地址族就称为IPv4。
- VPNv4 地址族主要用于PE路由器之间传递VPN路由。
- VPNv4地址只是存在于MP-BGP的路由信息和PE设备的私网路由表中,也就是只是出现在路由的发布学习过程中。
- 在VPN数据流量穿越供应商骨干时,包头中没有携带VPNv4地址
VPNV4 Address = Route Distinguisher + IPv4 地址
3)RD长度为64 bits (8 Bytes) ,格式如下:
MPLS VPN配置命令 (华为篇)
如何在网络传递过程中区分冲突路由:
将VPN路由发布到全局路由表之前,使用一个全局唯一的标识和路由绑定,以区分冲突的私网路由。这个标识被称为RD (Route Distinguisher)。
RDs: Usage in an MPLS VPN
- The RD has no special meaning.
- The RD is used only to make potentially overlapping IPv4 addressesglobally unique.
- The RD is used as a VPN identifier, but this design could not support alltopologies required by the customers.
2.RT:Router Targets
- 扩展的团体属性
- 控制VPNv4路由信息的发布和接收 (区分VPN Customer)
- 跟在VPNv4前缀后面被一起传递,一条路由可以附加多个RT值
- 本质就是用于每个VPN实例对于路由的喜好和取舍方式
- Export Target:在本地PE将从与自己直接相连的Site学到的VPN-IPv4路由发布给其它PE之前,为这些路由设置Export Target属性。
- lmport Target:PE在接收到其它PE路由器发布的VPN-IPv4路由时,检查其Export Target属性,只有当此属性与PE上VPN实例的ImportTarget属性匹配时,才把路由加入到相应的VPN路由表中。
- 也就是说,RT定义了一条VPN路由可以为哪些Site所接收,以及PE可以接收哪些Site发送来的路由。
- 配置原则:本端的Export Target=对端的mport Target 本端的Import Target=对端的Export Target
RT的灵活应用:由于每个RT Export Target与import Target都可以配置多个value,接收时是“或”操作,所以就可以实现非常灵活的VPN访问控制。
VPN路由的引入问题:
- RD不能解决VPN路由正确引入VPN的问题。
- 我们需要一种类似于Tag的标识。这个标识由人工分配,发送端PE发送时打上标识接收端PE收到后,根据需要将带有相应标识的路由引入VPN。
- RT属性用于将路由正确引入VPN,有两类VPN Target属性,Import Target和Export Target,分别用于VPN路由的导出与导入。
VPN路由引入问题的优化
RD和RT的区别和比较:
RDs allow BGP to advertise and distinguish between duplicate IPv4 prefixes. The concept is simple: Advertise each NLRI (prefix) as the traditional IPy4 prefix, but add another number (the RD) that uniquely identifies the route.
To best understand how MPLS uses RIs, first consider a more general definition of the purpose of RIs, followed by an example of the mechanics by which PEs use the RT:
MPLS uses Route Targets to determine into which VRFs a PE places IBGP-learned routes.
使用RT而不直接用RD作为BGP扩展团体属性的原因在于:
- 一条VPNv4路由只能有一个RD,但可以关联多个RT; BGP如果携带多个扩展团体属性,可以提高网络的灵活性和可扩展性。
- RT用于控制同一PE上不同VPN之间的路由发布。即同一PE上的不同VPN之间可以设置匹配的RT来实现路由的互相引入。
3.MPLS VPN报文转发过程
外层标签用来指示如何到达BGP下一跳;内层标签表示报文的出接口或者属于哪个VPN。
私网Label:
- RT属性和RD前缀顺利解决了私网路由的学习和撤销中存在的问题,然而因为VPN地址的冲突在数据转发过程也将遇到困难。
- 需要在数据报文中增加一个标识,以帮助PE判断该报文是去往本地的那个VPN。
- 由于MPLS支持多层标签的嵌套,这个标识可以定义成MPLS标签的格式,即私网Label。
- (1) Site 1发出一个目的地址为 1.1.1.2的P 报文,由CE1将报文发送至PE 1。
- (2) PE 1 根据报文到达的接口及目的地址查找 VPN 实例表项,匹配后将报文转发出去,同时打上内层和外层两个标签。
- (3) MPLS 网络利用报文的外层标签,将报文传送到 PE 2(报文在到达 PE 2前一跳时已经被剥离外层标签,仅含内层标签)
- (4) PE2 根据内层标签和目的地址查找 VPN 实例表项,确定报文的出接口,将报文转发至 CE2.
- (5) CE2根据正常的P 转发过程将报文传送到目的地。
公网隧道的建立:
- 启动公网IGP路由协议,PE之间互相可达,如PE1学到PE2的loopback地址路由;
- 公网启动MPLS,PE之间建立可达的MPLS 隧路径如图PE1有到PE2的MPLS隧道。
本地VPN的建立:
- PE上设立本地VPN,根据用户业务互访需求设置各VPN的RD,RT属性;
- 将与用户相连的接口与对应的用户VPN进行绑定。
本地私网路由学习:
- PE上设立本地VPN,将与用户网络相连的接口与VPN进行绑定并根据用户组网需求设置各VPN的RD、RT属性。
- PE与CE之间运行路由协议多实例,将用户本地的路由学习到PE对应VPN的路由表。
私网路由的传递----本地路由封装
- PE之间建立MP-BGP邻居,PE2将本地的私网路由信息进行封装,根据用户设计封装RD,RT,并分配私网标签,封装后的路由信息传递给MP-BGP邻居PE1。
私网路由的传递:
- PE设备接收到MP-BGP路由信息后,根据RT信息决定接收到哪个VPN的私网路由表。
MPLS VPN工作过程总结:
MPLS VPN路由的传递过程:
CE与PE之间的路由交换;VRF路由注入MP-BGP的过程;公网标签的分配过程;MP-BGP路由注入VRF的过程。
MPLS VPN数据的转发过程:
CE设备到PE设备的数据转发;公网设备上的数据转发;PE设备到CE设备的数据转发。
1)CE与PE之间的路由交换
PE与CE之间可以通过静态路由协议交换路由信息,也可以通过动态路由协议 (如:RIP,OSPF,ISIS,BGP等) 交换路由信息。
2)VRF路由注入MP-BGP的过程
VRF中的IPv4路由被添加上RD,RT与标签等信息成为VPN-IPv4的路由放入到MP-BGP的路由表中,并通过MP-BGP协议在PE设备之间交换路由信息。
3)公网标签的分配过程
- MPLS协议在运营商网络分配公网标签,建立标签隧道,实现私网数据在公网上的转发。
- PE之间运行的MP-BGP协议为VPN路由分配私网标签,PE设备根据私网标签将数据正确转发给相应的VPN。
4)MP-BGP路由注入VPN的过程
- PE2在接收到PE1发送的VPNv4路由后将检查路由的扩展团体属性,将携带的Export Target值与本端VPN的Import Target值比较,数值相同则将路由引入VPN的路由表实现路由的正确导入。
5)CE设备到PE设备的数据转发
- 数据从CE4转发给PE2,在PE2设备上需要查找VPN2的路由表,确定数据进行标签转发后,再查找下一跳与出接口,根据分配的标签进行MPLS的封装。
6)公网设备上的数据转发
- 数据包在公网上转发时,通过MPLS协议已建立好的标签隧道将数据报文转发到PE1。转发过程中,只改变公网标签。
7)PE设备到CE设备的数据转发
- PE1收到剥离公网标签的数据包后,根据私网标签查找转发数据包的下一跳,将数据包正确发送给相应VPN客户。
MPLS VPN总结图: