【【转】MPLS拓扑设计与VRF、RD、RT详解】
原文出自:https://blog.csdn.net/Mr_Bei/article/details/84376319
几个技术概念:
MPLS:多协议标签交换(Multi-Protocol Label Switching)
VRF:虚拟路由转发(Virtual Routing Forwarding)
RD:路由区分器(route distinguishers )
RT:路由标记(route-target)
拓扑示例
拓扑需求
在MPLS网络中,实现:
CE1的loopback0 ping通CE3的lookback0,不能ping通CE4
CE2的lookback0 ping通CE4的lookback0,不能ping通CE3
拓扑难点
CE1和CE2的lookback0的地址都是192.168.1.1,如何实现隔离
CE3发送的数据包都过MPLS网络到达PE1,PE1如何实现将数据包转发给CE1,而不转发给CE2
CE4发送的数据包都过MPLS网络到达PE2,PE1如何实现将数据包转发给CE2,而不转发给CE1
解决方法
VRF——VPN路由转发实例(VPN Routing & Forwarding Instance)
解决难点一:CE1和CE2的lookback0的地址都是192.168.1.1,使用VRF实现隔离。
作用:对LAN进行隔离,解决用户安全
1 | 命令解释:以PE1为例 |
思路解析:不同VRF之间相互隔离不通信,将PE1的f0/0接口划分进vrf A,PE1的f1/0接口划分进vrf B,这样CE1和CE2就被划分进不同的VRF中,他们之间无法通信,便实现了LAN之间的隔离。
RD——路由区分器(route distinguishers )
解决难点二:CE3发送的数据包都过MPLS网络到达PE1,PE1如何实现将数据包转发给CE1,而不转发给CE2;CE4发送的数据包都过MPLS网络到达PE2,PE1如何实现将数据包转发给CE2,而不转发给CE1,使用RD解决冲突。
作用:给客户端ipv4地址附加一个64bit的RD,使它们的地址不重叠,使得它变成全球唯一的地址,附加RD后的地址即是VPNv4地址。
附:能够支持IPv4地址外的地址族的BGP协议被称为multiprotocol BGP (MPBGP)。
1 | 命令解释:以PE1为例 |
思路解析:在VRF A的进程下,部署一个RD如1:1,当CE1的loopback0发送数据包达到PE1,192.168.1.1地址便会附加上RD为1:1这个团体属性,然后作为VPNv4地址,PE1与之间PE2转发的数据包地址便是1:1 192.168.1.1;
在VRF B的进程下,部署一个RD如2:2,当CE2的loopback0发送数据包达到PE1,192.168.1.1地址便会附加上RD为2:2这个团体属性,然后作为VPNv4地址,PE1与之间PE2转发的数据包地址便是2:2 192.168.1.1;
若PE1收到数据包,想转发给1:1 192.168.1.1,数据包便从f0/0口发出,
若PE1收到数据包,想转发给2:2 192.168.1.1,数据包便从f1/0口发出。
RT——路由标记(route-target)
解决难点三:在MPLS网络,CE1或CE2发送的数据包到达PE1后,PE如1何实现将数据包转发给PE2,使用RT实现对接。
作用:实现路由的导入和导出,让发送路由的PE知道发给哪些VPN客户,让接收路由的PE知道要把路由导入哪些VRF。
RT是一个扩展的BGP的团体属性,VPNV4路由在传递时是要带上这个属性。
RT值有两个,一个是export 导出RT,一个是import 导入RT。
发送端PE的export必须和接收端PE的import对应,只有对应上,接收端PE才会把vpnv4路由加入VRF路由表。
1 | 命令解释: |
思路解析:在PE1的VRF A部署了RT的export和import都为10:1,PE2的VRF B部署了RT的export和import也都为为10:1,PE1和PE2便成为了MPBGP邻居,PE1发送的MPLS数据包,PE2就能够准确接收,PE2回复的MPLS数据包,PE1也能准确接收,同理VRF B也是如此。