MPLS LDP Label Filtering Example

Rene,

MPLS is all new to me, so I’m using your website primarily to learn, but of course, supplementing with other websites. I came across the term FEC (Forwarding Equivalence Class) and after reading about it, it seemed like an important topic to learn in the beginning.

I searched networklessons.com for “Forwarding Equivalence Class” or FEC but didn’t get any results related to MPLS (“fec” had hits, but that’s because it picked up words that had the letters “fec” in them).

Is there a reason the MPLS course doesn’t cover this term?

Thanks,

Buck

Hello Buck

Although there are no lessons that include this feature, take a look at this post that further describes it along with further links to relevant Cisco documentation.

I hope this has been helpful!

Laz

Loved this explanation, thanks Laz!

1 Like

Greeting,

I enabled LDP label filtering on each of the core routers in my network, but how do I disable the filtering? I’ve removed the access-list and the two commands needed to get it going. I’ve already restarted each device, but I still do not see a label for each path show up when I enter “sh mpls forwarding-table”.

Thanks,
Chris

Hello Christopher

Remember that when you configure LDP label filtering, you first disable all LDP advertising using the no mpls ldp advertise-labels command, and then you specify which labels will be advertised using an access list and the mpls ldp advertise-labels command.

By the sound of your description, it seems that the no mpls ldp advertise-labels command is still active on your routers. In order to remove this, you must enter:

mpls ldp advertise-labels

This reenables the advertising of the labels. Make sure that this is indeed the case, but let us know if you have any other issues…

I hope this has been helpful!

Laz

It this required in real environment, do we use this. By looking into the topic i guess it should be used this might help us for visibility/tracing etc.

Hello Wali

Yes, this is something you will typically see in a real environment. Within an MPLS network, an ISP will have some parts of their network where they do not want to share labels, where it is simply not necessary.

I hope this has been helpful!

Laz

Hello,

what is the difference between the below 2 commands?

1. mpls ldp label
    allocate global {prefix-list <name> | host-routes}

2. mpls ldp advertise-labels for <ACL for prefix> to <ACL for LDP peer>

From my understanding, they both achieve same result. The first one looks better because it doesn’t even allocate local labels. The second one has the advantage to filter outbound labels to specific LDP peers (rarely used in production environment).

Are there any other advantages/disadvantages of using one or another?

Hello Ilias

The mpls ldp label command enables a feature called local label allocation filtering, which selectively allocates local labels for a subset of the prefixes learned from the IGP. The purpose of this command is to keep the size of the local label space low, as well as to limit the number of advertisements to peers. This in turn increases the scalability for especially large networks.

The mpls ldp advertise-labels command does not affect the number of bindings internally on the MPLS router, but simply affects what is advertised. This reduces the number of advertisements to peers, but does not affect the local allocation of labels.

As in the case that you posted, the result may be the same as far as what MPLS neighbors see, but there is a difference as far as how the local router records the remote label bindings.

For more information about local label allocation filtering, take a look at this CIsco documentation:

For more info about the mpls lda advertise-labels command, take a look at this informative Cisco learning network thread:
https://learningnetwork.cisco.com/s/question/0D53i00000KssJoCAJ/mpls-ladp-advertiselabel-for

I hope this has been helpful!

Laz

Thanks a lot for explanation

I’m doing some config validation for my job and I noticed the globals look quite different from your examples. I’m not sure if it’s because these routers I’m working on are running XR. Just wondering if there’s anywhere on your site that covers this, thanks.

mpls ldp
 log
  neighbor
  nsr
  graceful-restart
  session-protection
 !
 nsr
 graceful-restart
 igp sync delay on-session-up 10
 router-id <router ID>
 session protection
 address-family ipv4
  label
   local
    allocate for host-routes
    advertise
     interface Bundle-Ether13
     interface Bundle-Ether14
     interface TenGigE0/1/1/1

Hello Jonathan

In your post, you shared the global default values from your IOS XR implementation. Can you clarify which global configuration parameters in Rene’s lesson you are comparing them with? Rene doesn’t have any of these values in the included configurations. In the configurations you see in the lesson, Rene only posts the commands that are modified. Any default values are not indicated anywhere in the lesson.

Now having said that, yes there are several differences in the default values of the global config for Cisco IOS routers and IOS XR routers. Some of the most important include:

  1. Transport Address:
    • IOS: The highest IP address on the router is used by default.
    • IOS XR: Uses the address of the interface through which the peer is reachable.
  2. LDP Discovery:
    • IOS: LDP is enabled on all interfaces by default when you enable MPLS.
    • IOS XR: You need to specify the interfaces under the LDP configuration.

There may be more differences, but you will have to take a look at Cisco documentation to confirm them. Is there any specific global default config command that you would like to examine further?

I hope this has been helpful!

Laz

No, nothing else. I think I figured it out. I just wasn’t sure if any of Rene’s lessons covered the XR configs.

1 Like