cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1142
Views
5
Helpful
3
Replies

MPLS on VRF - lable allocation

Difan Zhao
Level 5
Level 5

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

3 Replies 3

Giuseppe Larosa
Hall of Fame
Hall of Fame

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

 

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

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

https://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/asr9k-r6-2/mpls/command/reference/b-mpls-cr-asr9000-62x/b-mpls-cr-asr9000-62x_chapter_01.html#wp1076676348

 

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

 

https://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/asr9k-r6-2/lxvpn/configuration/guide/b-l3vpn-cg-asr9000-62x/b-l3vpn-cg-asr9000-62x_chapter_010.html#concept_FAB365A954B24E7697A450A4C748FCFC

 

Hope to help

Giuseppe