在这篇文章《MPLS L3VPN为什么要使用两层MPLS标签?》中,Ricky提到“PE会给CE上来的路由分配MPLS标签,而且是一条VPN路由分配一个MPLS标签”,其实PE不仅仅可以针对每条VPN路由分配一个MPLS标签,还可以针对每个VRF分配一个MPLS标签。
这是MPLS L3VPN的实验拓扑,与文章《MPLS L3VPN为什么要使用两层MPLS标签?》中的一致:

如下图所示,因为PE默认是每条VPN路由分配一个MPLS标签,所以你会看到在R1上ping 172.16.7.6和172.16.8.6时,内层MPLS标签是不同的。172.16.7.0/24的内层MPLS标签是5001,172.16.8.0/24的内层MPLS标签是5002。

现在我们在R5上配置一条命令,让R5(PE)只针对每个VRF分配一个MPLS标签:
R5(config)#mpls label mode all-vrfs protocol bgp-vpnv4 per-vrf
注意:如果你只想让这条命令在PE下的某个VRF上生效,可以这么配:
R5(config)#mpls label mode vrf A protocol bgp-vpnv4 per-vrf
如下图所示,再在R1上ping R6上的三个LAN网段,你就会发现,内层MPLS标签就都是5006了:
注意:如果是在SP(服务提供商)方向里的CSC环境下,就不能让PE针对每个VRF分配一个MPLS标签了,否则会出错。
“SP(服务提供商)方向里的CSC环境下”,请问这是个什么网络场景?求解。
CSC 就是 Carrier Supporting Carrier ,运营商支持运营商的环境,具体可以 Google 一下 ~~