MPLS LDP Entropy Label Support

Load balancing is an important tool for engineering traffic across an MPLS network. The MPLS LDP Entropy Label Support feature describes methods of improving load balancing across MPLS networks using entropy labels.

Information About MPLS LDP Entropy Label Support

Overview of MPLS LDP Entropy Label

Prior to the MPLS LDP Entropy Label Support feature, at each MPLS hop, a deep packet inspection (DPI) is performed to determine the load balancing. With the introduction of MPLS LDP Entropy Label Support feature, at the ingress interface where MPLS is encapsulated, a DPI is performed to generate an entropy label. At the transit node, there is no need for DPI. The load balancing is done on the entropy label.

The entropy label provides ways of improving load balancing by eliminating the need for DPI at transit Label Switching Routers (LSRs). To eliminate DPI, the ingress LSR of an MPLS label switched path extracts the appropriate keys from a given packet, inputs them to the load balancing function, places the result in an additional label termed entropy label, and as a part of the MPLS label stack, the LSR pushes onto that packet. The transit LSRs use the label stack of the MPLS packet to perform load balancing.

If the transit LSR does not support LDP Entropy Label Capability (ELC), the transit LSR will propagate the label mapping message with the ELC flag so that the ingress LSR will add the entropy label. Any transit LSRs that do not support entropy label will ignore the entropy label and will load balance based on traditional DPI techniques.

Benefits of MPLS LDP Entropy Label Support

Each transit LSR along the path of a given LSP has to try to infer the underlying protocol within an MPLS packet to extract appropriate keys for load balancing. If the transit LSR is unable to infer the MPLS packet’s protocol, it will use the topmost (or all) MPLS labels in the label stack as keys for the load-balancing function. The result may be an extremely inequitable distribution of traffic across equal cost paths exiting a LSR. This is because MPLS labels are fairly coarse-grained forwarding labels that describe a next hop, or provide some demultiplexing or forwarding function, and do not describe the packet’s underlying protocol.

For example, an ingress LSR, a Provider Edge (PE) device has detailed knowledge of a packet’s contents, typically through a priority configuration of the encapsulations that are expected at a given Provider Edge-Customer Edge interface (IPv4, IPv6, VPLS, etc.), thus ensuring a more even distribution of load balancing for a given flow instead of overloading any particular path. The entropy label is protocol independent, it provides a unified way of load balancing without looking into the protocol header.

LDP Entropy Label Capability Signaling

Entropy Label Capability (ELC) is signaled from egress provider-edge (PE) device to ingress PE device. The egress LSR for a FEC initiates ELC by adding ELC Type Length Value (TLV), if configured, in the label mapping message that it sends to the peers. The presence of the ELC TLV in a label mapping message indicates to ingress LSRs that the egress LSR can process entropy labels for the associated LDP tunnel.

If the entire downstream peers have signaled entropy capability, ELC is propagated, else, it is not added in the label mapping message, and regular load balancing is used.

By configuring entropy labels, ingress LSR enables pushing of Entropy Label Indicator (ELI)/Entropy Label (EL). The ELI/EL value is pushed onto the label stack, if EL is enabled and downstream LSP is EL capable. The LDP processes the ELC TLV and sets EL capability flag accordingly for each LSP.

At the transit and egress LSR, LDP signals ELC, which indicates the ability to process entropy labels to upstream peers if ELC is received from downstream peers for all the next hops in a route.

How to Configure MPLS LDP Entropy Label Support

Enabling MPLS LDP Entropy Label Support

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. mpls ip
  4. mpls ldp entropy-label [label-value]
  5. end

DETAILED STEPS

  Command or Action Purpose

Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:


Device# configure terminal

Enters global configuration mode.

Step 3

mpls ip

Example:


Device(config)# mpls ip

Configures MPLS hop-by-hop forwarding globally.

  • The mpls ip command is enabled by default; you do not have to specify this command.

  • Globally enabling MPLS forwarding does not enable it on the device interfaces. You must enable MPLS forwarding on the interfaces as well as for the device.

Step 4

mpls ldp entropy-label [label-value]

Example:

Device(config)# mpls ldp entropy-label 7

Enables entropy label on the egress PE device.

Step 5

end

Example:


Device(config-router)# end

Returns to privileged EXEC mode.

Verifying MPLS LDP Entropy Label Support

SUMMARY STEPS

  1. enable
  2. show mpls ldp bindings [ip-address | mask] [detail]
  3. show mpls infrastructure lfd lte [label-value]
  4. show mpls forwarding-table [label-value]
  5. ping mpls ipv4 [ip-address | mask] entropy-label [label-value]
  6. traceroute mpls [ip-address | mask] entropy-label [label-value] [verbose]
  7. traceroute mpls multipath [ip-address | mask] entropy-label [label-value] [verbose]

DETAILED STEPS


Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

show mpls ldp bindings [ip-address | mask] [detail]

Displays the total counts of advertised-to and remote-binding peers in IP address sort order, with remote bindings in tabular format.

Example:


Device# show mpls ldp bindings 172.16.0.0/32 detail  

lib entry: 172.16.0.0/32, rev 59, chkpt: none, elc
	 local binding: label: 20001 (owner LDP) 
		  Advertised to:
		  1.1.1.1:0				                 3.3.3.3:0
remote binding: lsr: 1.1.1.1:0, label: 10003 checkpointed, elc 
remote binding: lsr: 3.3.3.3:0, label: 30004 checkpointed, elc

Step 3

show mpls infrastructure lfd lte [label-value]

Displays information about the Label Forwarding Database (LFD).

Example:


Device# show mpls infrastructure lfd lte 7

7 [table 0]
    ldm: No LDM, LTE Broker 
    flags: nsf (0x1)
    plist: NONIP (0x7F45AAD23120) entropy 
    output chain:
       label implicit-null() 
       entropy label indicator

Step 4

show mpls forwarding-table [label-value]

Displays the MPLS packets that are forwarded with an entropy label indicator label (value of 7).

Example:


Device# show mpls forwarding-table 7

    Local	     Outgoing	    Prefix	           Bytes Label	       Outgoing	    Next Hop
    Label	     Label	       or Tunnel Id	     Switched	          Interface
    7	         Pop          Label	entropy	    7468	              Exception

Step 5

ping mpls ipv4 [ip-address | mask] entropy-label [label-value]

Displays the MPLS label switched path (LSP) connectivity.

Example:



Device# ping mpls ipv4 172.16.0.0/32 entropy-label

Sending 5, 72-byte MPLS Echos to 172.16.0.0/32,
           timeout is 2 seconds, send interval is 0 msec, 
           over default entropy label:
Type escape sequence to abort.
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms 
 Total Time Elapsed 4 ms

Example:



Device# ping mpls ipv4 172.16.0.0/32 entropy-label 20 

Sending 5, 72-byte MPLS Echos to 172.16.0.0/32,
           timeout is 2 seconds, send interval is 0 msec, 
           over entropy label 20:
Type escape sequence to abort.
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms 
 Total Time Elapsed 4 ms

Step 6

traceroute mpls [ip-address | mask] entropy-label [label-value] [verbose]

Displays MPLS label switched path (LSP) routes that the packets actually take when traveling to their destinations.

Example:



Device# traceroute mpls ipv4 172.16.0.0/32 entropy-label verbose 

Tracing MPLS Label Switched Path to 172.16.0.0/32, timeout is 2 seconds
       over entropy, default start label 
Type escape sequence to abort.
 
0 192.168.2.20 192.168.2.30 MRU 1500 [Labels: 20001/7/524288 Exp: 0/0/0]
L 1 192.168.2.20 192.168.22.30 MRU 1500 [Labels: 30004/7/524288 Exp: 0/0/0] 1 ms, ret 
code 8
L 2 192.168.2.20 192.168.33.30 MRU 1500 [Labels: implicit-null/7/524288 Exp: 0/0/0] 2 
ms, ret code 8
! 3 192.168.43.2 1 ms, ret code 3


Example:



Device# traceroute mpls ipv4 172.16.0.0/32 entropy-label 20 verbose  

Tracing MPLS Label Switched Path to 172.16.0.0/32, timeout is 2 seconds
       over entropy, start label 20 
Type escape sequence to abort.
0 192.168.12.1 192.168.12.2 MRU 1500 [Labels: 20001/7/20 Exp: 0/0/0]
L 1 192.168.12.2 192.168.22.2 MRU 1500 [Labels: 30004/7/20 Exp: 0/0/0] 1 ms, ret code
8
L 2 192.168.23.2 192.168.42.2 MRU 1500 [Labels: implicit-null/7/20 Exp: 0/0/0] 1 ms,
ret code 8
! 3 192.168.43.2 1 ms, ret code 3

Step 7

traceroute mpls multipath [ip-address | mask] entropy-label [label-value] [verbose]

Displays multiple MPLS label switched path (LSP) routes from an egress device to an ingress device.

Example:



Device#traceroute mpls multipath ipv4 172.16.0.0/32 entropy-label verbose 

Starting LSP Multipath Traceroute for 172.16.0.0/32
     over entropy, default start label

Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface,
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no label entry,
  'P' - no rx intf label prot, 'p' - premature termination of LSP,
  'R' - transit router, 'I' - unknown upstream index,
  'l' - Label switched with FEC change, 'd' - see DDMAP for return code,
  'X' - unknown return code, 'x' - return code 0

Type escape sequence to abort.
LL!
Path 0 found,
output interface Et0/0 nexthop 10.10.1.2
source 10.10.1.1 destination 127.0.0.0
  0 10.10.1.1 10.10.1.2 MRU 1500 [Labels: 19/7/524288 Exp: 0/0/0] multipaths 0
L 1 10.10.1.2 10.10.2.2 MRU 1500 [Labels: 23/7/524289 Exp: 0/0/0] ret code 8 multipaths 2
L 2 10.10.2.2 10.10.5.2 MRU 1500 [Labels: implicit-null/7/524289 Exp: 0/0/0] ret code 8 multipaths 1
! 3 10.10.5.2, ret code 3 multipaths 0
L!
Path 1 found,
output interface Et0/0 nexthop 10.10.1.2
source 10.10.1.1 destination 127.0.0.0
  0 10.10.1.1 10.10.1.2 MRU 1500 [Labels: 19/7/524288 Exp: 0/0/0] multipaths 0
L 1 10.10.1.2 10.10.3.2 MRU 1500 [Labels: 16/7/524288 Exp: 0/0/0] ret code 8 multipaths 2
L 2 10.10.3.2 10.10.8.2 MRU 1500 [Labels: implicit-null/7/524288 Exp: 0/0/0] ret code 8 multipaths 1
! 3 10.10.8.2, ret code 3 multipaths 0

Paths (found/broken/unexplored) (2/0/0)
Echo Request (sent/fail) (5/0)
Echo Reply (received/timeout) (5/0)
Echo Reply (received/timeout) (5/0)
Total Time Elapsed 18 ms

Example:



Device#traceroute mpls multipath ipv4 172.16.0.0/0 entropy-label 700 verbose
 
Starting LSP Multipath Traceroute for 172.16.0.0/32
     over entropy, start label 700
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface,
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no label entry,
  'P' - no rx intf label prot, 'p' - premature termination of LSP,
  'R' - transit router, 'I' - unknown upstream index,
  'l' - Label switched with FEC change, 'd' - see DDMAP for return code,
  'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
LL!
Path 0 found,
output interface Et0/0 nexthop 10.10.1.2
source 10.10.1.1 destination 127.0.0.0
  0 10.10.1.1 10.10.1.2 MRU 1500 [Labels: 19/7/700 Exp: 0/0/0] multipaths 0
L 1 10.10.1.2 10.10.2.2 MRU 1500 [Labels: 23/7/701 Exp: 0/0/0] ret code 8 multipaths 2
L 2 10.10.2.2 10.10.5.2 MRU 1500 [Labels: implicit-null/7/701 Exp: 0/0/0] ret code 8 multipaths 1
! 3 10.10.5.2, ret code 3 multipaths 0
L!
Path 1 found,
output interface Et0/0 nexthop 10.10.1.2
source 10.10.1.1 destination 127.0.0.0
  0 10.10.1.1 10.10.1.2 MRU 1500 [Labels: 19/7/700 Exp: 0/0/0] multipaths 0
L 1 10.10.1.2 10.10.3.2 MRU 1500 [Labels: 16/7/700 Exp: 0/0/0] ret code 8 multipaths 2
L 2 10.10.3.2 10.10.8.2 MRU 1500 [Labels: implicit-null/7/700 Exp: 0/0/0] ret code 8 multipaths 1
! 3 10.10.8.2, ret code 3 multipaths 0
Paths (found/broken/unexplored) (2/0/0)
Echo Request (sent/fail) (5/0)
Echo Reply (received/timeout) (5/0)
Echo Reply (received/timeout) (5/0)
Total Time Elapsed 47 ms


Additional References for MPLS LDP Entropy Label Support

Related Documents

Related Topic

Document Title

Cisco IOS commands

Cisco IOS Master Commands List, All Releases

Cisco IOS Multiprotocol Label Switching commands

Cisco IOS Multiprotocol Label Switching Command Reference

RFCs

RFC

Title

RFC 6790

The Use of Entropy Labels in MPLS Forwarding

Technical Assistance

Description

Link

The Cisco Support and Documentation website provides online resources to download documentation, software, and tools. Use these resources to install and configure the software and to troubleshoot and resolve technical issues with Cisco products and technologies. Access to most tools on the Cisco Support and Documentation website requires a Cisco.com user ID and password.

http://www.cisco.com/cisco/web/support/index.html

Feature Information for MPLS LDP Entropy Label Support

The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
Table 1. Feature Information for MPLS LDP Entropy Label Support

Feature Name

Releases

Feature Information

MPLS LDP Entropy Label Support

The MPLS LDP Entropy Label Support describes ways of improving load balancing across MPLS networks using the concept of entropy labels.

The following commands were introduced or modified: mpls ldp entropy-label, ping mpls, show mpls forwarding-table, show mpls infrastructure lfd lte, show mpls ldp bindings, traceroute mpls, traceroute mpls multipath .