MPLS VPN 是一种虚拟专线服务。通过 MPLS VPN,CE 可以直接把未经再封装、访问另一个客户园区的数据包发送给运营商边界路由器(这里称为 PE)。PE 为该数据包打上相应的标签,然后发送给连接另一个园区的 PE,最后另一个园区的 PE 将数据包的标签去除后发给另一个园区的 CE。
MPLS VPN 的基本原理
在 PE 上可以将连接 CE 的接口绑定到某个 VRF 路由表上,这样客户园区的私网路由条目就会被放入 VRF 路由表而不是主路由表中。PE 连接不同客户的 CE 使用不同的 VRF 路由表,不同 VRF 路由表通过 RD(路由标识符)来本地唯一识别。当路由器收到 CE 发送的数据时,会查找连接该 CE 接口对应的 VRF 路由表并进行转发。
在 PE 与 PE 之间建立 VPNv4 地址簇的 BGP 邻居,以及为 VRF 路由表设置相应的导入和导出 RT(路由目标),即可通过 VPNv4 BGP 表实现 PE 间 VRF 路由条目的交互。其中,导出 RT 为将本 VRF 路由表中的路由条目加入到 VPNv4 BGP 表时要携带的 RT;导入 RT 为将 VPNv4 BGP 表中携带哪些 RT 的路由条目加入到本 VRF 路由表中。(RD 和 RT 的格式都是 xx:xx)
VPNv4 BGP 可以为本地 VRF 路由表中的路由条目分发标签并共享给邻居。但是,运营商内一般只有 PE 以及路由反射器(此处不考虑)运行了 VPNv4 BGP,且它们之间并不是直连建立邻居的。没有运行 VPNv4 BGP 的路由器将不能识别 VRF 路由条目的标签。需要 PE 为 CE 发来的数据包打上双重标签。其中,外层标签是由 LDP 分发的、去往另一个 PE(VPNv4 BGP 邻居)的下一跳对应的标签;内层标签是由 VPNv4 BGP 分发的 VRF 路由条目标签。这样沿途没有运行 VPNv4 BGP 的路由器只需查看外层标签即可正常转发客户园区的数据包。然后当客户园区的数据包到达另一台 PE 时,PE 通过查看数据包的内层标签即可确定该数据包应查找哪个 VRF 路由表进行转发。

拓扑说明
CE1 CE2分别为同公司的两个园区,通过营运商的PE P设备组成的MPLS VPN专线互联。
配置思路
1、配置运营商的底层IGP协议
2、配置运营商的MPLS LDP协议
3、配置运营商的MBGP协议
4、配置运营商PE上与园区互联的VRF
5、配置运营商PE上与园区互联的接入协议(IGP)
6、在运营商PE上将私网IGP与公网的MBGP中间双向重分布
CE1配置
hostname CE1
interface Loopback0
ip address 1.1.1.1 255.255.255.255
interface GigabitEthernet0/0
ip address 100.0.0.1 255.255.255.0
//配置CE接口IP LO0模拟下挂网络
router rip
version 2
network 1.0.0.0
network 100.0.0.0
no auto-summary
//园区与运营商PE互联采用RIP协议
CE2配置
hostname CE2
interface Loopback0
ip address 5.5.5.5 255.255.255.255
interface GigabitEthernet0/0
ip address 200.0.0.1 255.255.255.0
router rip
version 2
network 5.0.0.0
network 200.0.0.0
no auto-summary
PE1配置
hostname PE1
ip vrf A
rd 100:1
route-target export 2:2
route-target import 1:1
//配置与园区互联的VRF
ip cef
mpls ip
mpls label range 100 1000
mpls label protocol ldp
mpls ldp router-id Loopback0 force
//配置MPLS LDP
interface Loopback0
ip address 2.2.2.2 255.255.255.255
interface GigabitEthernet0/0
ip vrf forwarding A
ip address 100.0.0.2 255.255.255.0
interface GigabitEthernet0/1
ip address 23.0.0.2 255.255.255.0
mpls ip
//配置接口IP,对应绑定VRF,开启MPLS IP,这里需要注意如果LO0地址掩码不是32位,采用OSPF协议一定要修改网络类型,否则其他设备将不会有非32位掩码的路由条目和对应的标签。
router ospf 110
router-id 2.2.2.2
network 2.2.2.2 0.0.0.0 area 0
network 23.0.0.2 0.0.0.0 area 0
//配置运营商底层OSPF 协议
router rip
version 2
no auto-summary
address-family ipv4 vrf A
redistribute bgp 100 metric 1
network 100.0.0.0
no auto-summary
exit-address-family
//配置与园区互联的RIP协议,注意是VRF下宣告私网,重分布BGP VPNV4路由
router bgp 100
bgp router-id 2.2.2.2
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 4.4.4.4 remote-as 100
neighbor 4.4.4.4 update-source Loopback0
address-family ipv4
neighbor 4.4.4.4 activate
exit-address-family
address-family vpnv4
neighbor 4.4.4.4 activate
exit-address-family
address-family ipv4 vrf A
redistribute rip
exit-address-family
//配置PE之间的BGP VPNV4邻居,重分布来自与园区互联的RIP路由
P配置
hostname P
ip cef
mpls ip
mpls label range 100 1000
mpls label protocol ldp
mpls ldp router-id Loopback0 force
interface Loopback0
ip address 3.3.3.3 255.255.255.255
interface GigabitEthernet0/0
ip address 34.0.0.3 255.255.255.0
mpls ip
interface GigabitEthernet0/1
ip address 23.0.0.3 255.255.255.0
mpls ip
router ospf 110
router-id 3.3.3.3
network 3.3.3.3 0.0.0.0 area 0
network 23.0.0.3 0.0.0.0 area 0
network 34.0.0.3 0.0.0.0 area 0
//P设备不需要与PE设备之间建立BGP邻居,只需配置MPLS LDP标签转发即可。
PE2配置
hostname PE2
ip vrf A
rd 200:1
route-target export 1:1
route-target import 2:2
ip cef
mpls ip
multilink bundle-name authenticated
mpls label range 100 1000
mpls label protocol ldp
mpls ldp router-id Loopback0 force
interface Loopback0
ip address 4.4.4.4 255.255.255.255
interface GigabitEthernet0/0
ip address 34.0.0.4 255.255.255.0
mpls ip
interface GigabitEthernet0/1
ip vrf forwarding A
ip address 200.0.0.2 255.255.255.0
router ospf 110
router-id 4.4.4.4
network 4.4.4.4 0.0.0.0 area 0
network 34.0.0.4 0.0.0.0 area 0
router rip
version 2
no auto-summary
address-family ipv4 vrf A
redistribute bgp 100 metric 1
network 200.0.0.0
no auto-summary
exit-address-family
router bgp 100
bgp router-id 4.4.4.4
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 2.2.2.2 remote-as 100
neighbor 2.2.2.2 update-source Loopback0
address-family ipv4
neighbor 2.2.2.2 activate
exit-address-family
address-family vpnv4
neighbor 2.2.2.2 activate
exit-address-family
address-family ipv4 vrf A
redistribute rip
exit-address-family
CE2配置
hostname CE2
interface Loopback0
ip address 5.5.5.5 255.255.255.255
interface GigabitEthernet0/0
ip address 200.0.0.1 255.255.255.0
router rip
version 2
network 5.0.0.0
network 200.0.0.0
no auto-summary
配值完成后在P上检查
底层OSPF正常

MPLS LDP正常

PE1 查看BGP VPNV4邻居正常
show ip bgp neighbors 4.4.4.4

VRF正常

全局路由表没有私网路由

BGP VPNV4路由表私网路由正常传递
show ip bgp vpnv4 all

VRF A中私网路由正常传递
show ip route vrf A

在CE1查看私网路由传递正常,两园区互通正常

