Introduction
By default LDP will allocate a label for all IGP networks. When service providers are trying to scale their networks, not every route requires a local label. Local labels are required for MPLS forwarding with applications like MPLS VPNs. Other networks can use IP forwarding. With the MPLS LDP Local Label Allocation Filtering feature, LDP can be controlled which networks are used for local label binding.
Local Label Allocation Filtering
- This feature is different from MPLS LDP Label Filtering, as it does not control the advertised or incoming labels, but the locally generated ones.
- Filtering it done with prefix-list. ACLs are not permitted.
- To improve scalability only the PE loopback address should be used for MPLS forwarding.
- There are two option for this command:
- Allocate global Prefix-list - allocates local label for any routes that match the prefix-list.
- Allocate global Host-routes - only allocates local label for any IGP routes that are /32.
- Any prefixes that don't have locally generated labels will still have an entry in the LIB as long as they have remote bindings received (see example below)
- Remember that each LSR needs a local label for the PE's loopback not just the PE. If some P LSR don't have a local label, LSP will be broken. Use Traceroute MPLS to verify end to end LSP. See MPLS-Traceroute for more details.
Relevant IOS Commands
mpls ldp label
Enters the ldp local label allocation filtering configuration mode.
R1(config)# mpls ldp label
R1(config-ldp-lbl)#
allocate global
Command used to configure the MPLS LDP Local Label Allocation Filtering, works within the special configuration mode config-ldp-lbl.
There are 3 option (both are exclusive).
- Allocate global Prefix-list - allocates local label for any routes that match the prefix-list.
- Allocate global Host-routes - only allocates local label for any IGP routes that are /32.
- Allocate global <cr> - resets the filters to allow all.
R1(config-ldp-lbl)# allocate global prefix-list (prefix-list-name)
R1(config-ldp-lbl)# allocate global host-routes
R1(config-ldp-lbl)# allocate global
sh mpls ldp bindings local
Show only labels with local bindings assigned. Filters any bindings that only have remote and not local labels.
sh mpls ldp bindings local
debug mpls ldp binding filter
debug mpls ldp binding filter
Relevant XR commands
label local allocate for
RP/0/0/CPU0:XR11(config)#mpls ldp
RP/0/0/CPU0:XR11(config-ldp)#address-family ipv4
RP/0/0/CPU0:XR11(config-ldp-af)#label
RP/0/0/CPU0:XR11(config-ldp-af-lbl)#local
RP/0/0/CPU0:XR11(config-ldp-af-lbl-lcl)#allocate for 2
or
RP/0/0/CPU0:XR11(config)#mpls ldp
RP/0/0/CPU0:XR11(config-ldp)#address-family ipv4
RP/0/0/CPU0:XR11(config-ldp-af)# label local allocate for (acl)
allocate for host-route
RP/0/0/CPU0:XR11(config)#mpls ldp
RP/0/0/CPU0:XR11(config-ldp)#address-family ipv4
RP/0/0/CPU0:XR11(config-ldp-af-lbl-lcl)# allocate for host-routes