01-26-2018 03:17 PM - edited 03-01-2019 03:15 PM
Hi experts,
I am trying to run MPLS on a VRF. I mean that the interfaces forming LDPs are in the VRF. In my config it is called "LTE". It is an ASR router and here is my config
mpls label protocol ldp mpls ldp password required mpls ldp vrf LTE password option 25 for PE-LOOPBACKS key-chain pason-ldp-pw mpls ldp graceful-restart mpls ldp label allocate global prefix-list PE-LOOPBACKS mpls ldp discovery hello interval 60 mpls ldp discovery hello holdtime 180 mpls ldp advertise-labels vrf LTE for PE-LOOPBACKS mpls ldp router-id vrf LTE Loopback12 force
So everything seems to work fine except the "mpls ldp lable / allocate global xxx". Will this one also affect the label allocation in the VRF? How would I know? For example, this 198.18.4.221/32 is not in the PE-LOOPBACKS prefix-list. But if I check the binding, I still see imp-null. Should it just be null or should it just not show at all? Sorry I just don't know what it should look like even if it worked.
#sho mpls ldp bindings vrf LTE 198.18.4.221 32 lib entry: 198.18.4.221/32, rev 278 local binding: label: imp-null remote binding: lsr: 10.135.0.154:0, label: 163
Also the config has the "global" and that concerns me. I was hoping also to see "allocate <vrf>" but it is not available. The "global" sounds like it only controls the lable allocation for the global VRF.
Anyway please help me with the config. Am I missing anything here?
Thanks!
Difan
01-27-2018 12:51 AM
Hello Difan,
you have a Carrier supporting Carrier Scenario CSC and you want to limit label allocation in vrf LTE only for those of loopbacks in customer provider / sub provider.
From another thread we know you are using an IOS XR router.
To correctly perform filtering for LDP in IOS XR you need the following:
you need to disable label allocaton for all prefixes
and you configure label allocation according to the prefix list.
This is different from IOS where you just need to apply the filter.
So you need something like
no mpls ldp advertise-labels vrf LTE
and then
mplsl ldp advertise-labels vrf LTE for PE-LOOPBACKS
in the appropriate context.
We discovered this some years after migrating Cisco 12000 IOS to Cisco 12000 IOS XR. We had the same problem.
About the global keyword: as far as I know there is a single MPLS label space in a node either that you are in GRT either you are in a VRF. This is the main reason for performing label filtering to achieve scalability.
The label space is limited to 20 bit unsigned integer with first 15 values reserved for example IPv4 implicit-null is label 3.
note: I couldn't check the correct syntax of the proposed command in current IOS XR but the logic is the one I have explained above.
Hope to help
Giuseppe
01-29-2018 08:36 AM
Thank you Giuseppe. Apologize that keep forgetting to mention my router platform...
Also appreciate the proper name (CSC) for this setup. When I was doing lookup on goolge with MPLS and VRF, all came back was MPLS VPN stuff.
Most importantly I missed the "no mpls ldp advertise" config! That could be critical.
However I am still confused with this "allocation" config. My understanding is that with above command you control what you "advertise". So all prefixes would still have the lables assigned however only certains one are advertised... But with the allocation, some prefixes won't even have a lable assigned. Is the understanding correct?
Thanks!
Difan
01-31-2018 01:58 AM - edited 01-31-2018 02:04 AM
Hello Difan,
thanks for your kind remarks and yes the correct name of the scenario is CSC.
You actually need in my humble opinion two different prefix-lists one for allocation that is the act of locally assigning a label to a prefix and one to be used in VRF LTE.
see the following link from ASR9000 MPLS command reference IOS XR 6.x
It explains that the default behaviour is to allocate labels to each route/prefix learned in the local node (thiis is for sure true for GRT global routing table prefixes).
So in order to achieve the scalability objective you should:
use the sequence of commands for filltering only customer ISP loopbacks in LTE VRF and use a form of different filtering with the label allocate command because in this case you need to assign a label to all loopbacks PE nodes of the TOP service provider (the one providing CSC service to the other one. Because if you filter them you break MPLS services on the TOP service provider, Then eventually you can also allow the IP address block corresponding to the PE loopbacks in the sub / customer service provider.
So be careful on filtering and take in consideration the possible use of host-routes keyword that allows to allocate MPLS labels only for /32 prefixes that are typically the loopbacks.
You are correct that we need to prevent unnecessary local allocation of labels to achieve the best scalability however you need to be sure of what you are doing as I have explained above.
About CSC you can consider to read the config guide chapter in the link below again for ASR9000
Hope to help
Giuseppe
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide