Chapter 9: MPLS Architecture
MPLS Components
-
Control plane - Maintains routing and label information exchange between neighbors
-
Data plane - Forwards traffic
Label Stacking
MPLS label structure:
-
Label (20 bits) - Label values 0 through 15 are reserved; 16 is the first value available for use.
-
Experimental CoS (3 bits) - The Experimental CoS field is undefined in RFC 3031; Cisco uses this field for class of service (taken from IP precedence values).
-
Bottom of Stack Indicator (1 bit) - Indicates end of the label stack
-
TTL (8 bits) - Time to live
In frame mode MPLS, labels are inserted between the layer 2 and layer 3 headers.
In cell mode MPLS (over ATM), VPI/VCI fields are used to carry label information.
Some instances require stacked labels:
-
MPLS VPN - Multi-Protocol BGP (MPBGP) propagates VPN information, which is added to packets preceding the original MPLS label.
-
MPLS TE - MPLS Traffic Engineering relies on information conveyed by RSVP to establish tunnels, and added to packets as a label preceding the original label.
-
MPLS VPN and TE - A label is added for VPN and for TE, resulting in a stack of at least three labels in the packet.
MPLS identifies the upper-layer protocol by replacing the layer 2 header field with an MPLS-specific value. For example, in Ethernet, 0x0800 (IP) would be replaced with 0x8847 (MPLS-IP).
Label Allocation
Label Distribution Protocol (LDP) is used to advertise labels to neighboring LSRs (functioning as a routing protocol).
-
Label Information Base (LIB) - Stores label-to-prefix tables; control plane
-
Label Forwarding Information Base (LFIB) - Maintains forwarding database from LIB; data plane, comparable to the FIB
Label distribution can occur in two ways:
-
Unsolicited - An update is triggered by a convergence event
-
On-demand - An LSR actively requests an update from its neighbor
Interim packet propagation occurs when an LSR has no label associated with a packet's destination, and falls back to CEF switching (IP routing).
Penultimate Hop Popping (PHP) occurs when an LSR realizes it is the second-to-last router in the LSP, and assigns a packet the reserved label value of 3 (imp-null, implicit null). When the next LSR receives the packet, it knows immediately to discard the label and perform a CEF lookup.