MPLS Forwarding


MPLS forwarding works using few basic operations on a label. The core MPLS P routers only switch MPLS frames, while ingress and egress impose or dispose MPLS labels.

MPLS Frame Mode

  • Frame Mode is the most basic form of MPLS forwarding. Routers running BGP and MPLS will look at the BGP next_hop to forward using MPLS labels towards the next hop only.
  • Frame mode allows you to only run BGP on the edges and MPLS in the core without having any VRFs configured.
  • It can be used for Internet routing over an MPLS network without BGP in the code.
  • See the outputs below to verify MPLS Frame Mode forwarding.

Label Operations

  • MPLS enabled routers have a number of operations that they can perform to forward MPLS frames, these include:
    • Push - imposes a label on a frame already labeled or unlabeled. Imposition is performed by the ingress LER.
    • Pop - removes the topmost labels, forwarding depends if there is another label or if it is the last label.
    • Swap - switches one label with another, label to label forwarding. MPLS switching is preformed by the P routers.
    • Untag - removes all labels and uses IP forwarding method. Disposition is performed by the egress LER
    • Aggregate - for aggregate prefixes, label switching can not be performed. With Aggregate routes, the LSR strips labels and looks up in IP routing table to get the most specific route that matches for that IP destination address. Aggregate operation is also done on directly connected interfaces.

Load Balancing

  • Equal Cost Load balancing can be done with MPLS.
  • If a prefix has an equal cost using two routers with multiple links to each other, the outgoing label will be the same.
  • If a prefix has an equal cost using different router connections, the outgoing label will most likely be different.
  • Load balancing can't be performed on all paths if the prefix is reachable with a mix of MPLS forwarding and IP forwarding. Only labeled paths will be used and not IP forwarding paths. Using each one can cause potential problem with MPLS applications like MPLS VPNs or AToM. The problem is with unlabeled frames only using IP. With MLPS VPN the core P router don't know about IP destination but only LSPs. Usually that's a problem synchronizing IGP and LDP.
  • See the topology and outputs below for details.

Penultimate Hop Popping (PHP)

  • Before PHP was implemented each egress LSR had to lookup the topmost label in LFIB. It then had to pop the topmost label and lookup IP forwarding for the packet. The lookup in LFIB is a waist of time as all egress LSR will have to remove the label.
  • PHP improves the process by signal an implicit NULL label (value 3). With that label, LSRs one hop away pop the topmost label and forward it to the last egress LSR. It then just does a lookup for IP saving the LFIB lookup.
  • Enabled by default in Cisco's IOS.
  • The biggest disadvantage relates to QoS.

MPLS DiffServ Forwarding

  • Forwarding of MPLS frames can be different for MPLS that supports DiffServ.
  • The main challenges is how to map 64 DSCP values to 3 bit EXP bits. There are two methods the apply to resolving that issue:
    • E-LSP
    • L-LSP
  • See QoS MPLS Forwarding for more information on this topics.

Relevant Commands

mpls ldp explicit-null

Enables the usage of explicit null. Turns off PHP. The two optional parameters to and for specify for which LDP peer and for which prefixes respectively.

R1(config)#        mpls ldp explicit-null [to (acl) for (acl)]


rating: 0+x
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License