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.

Finding Feature Information

Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tool and the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the feature information table.

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.

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 ActionPurpose
    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 4mpls 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

      Cisco IOS XE Release 3.17S

      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.