OECG – Appendix C

594 Words. Plan about 2 minute(s) to read this.

You might want to peruse some of this before going any further. If you’re totally new to MPLS (as I am), the more different perspectives you can get on the basics, the better. I feel like a total n00b right about now, and I don’t think of myself as a stupid guy.

The Basics

  • Multiprotocol Label Switching (MPLS) architecture is a description of what it takes to perform “label switching”. The idea is to combine the zippiness of L2 switching with the connectionless flexibility of L3 routing.
  • MPLS assigns a label to a packet, with subsequent forwarding decisions being made by upstream MPLS routers based on the label. The forwarding decision is called “label swapping”.
  • While this might sound like any other L2 technology, MPLS shines with its ability to carry a stack of labels with a packet. Using label stacks, you can perform tasks like Traffic Engineering, connectionless VPNs, fast-reroute around network problems, etc.
  • MPLS architecture functions in 2 planes:
    • The forwarding (or data) plane uses a label-forwarding database to forward packets based on their label.
    • The control plane maintains label-forwarding information (bindings) among a groups of label switches. All MPLS nodes run an IP routing protocol to exchange this information.
  • An MPLS router uses the IP routing table to perform label binding exchanges. In these exchanges are contained labels for specific IP subnets found in the IP routing table. The exchange is accomplished via Tag Distribution Protocol (TDP, Cisco proprietary, and fading away according to cisco.com documentation) or Label Distribution Protocol (LDP), the IETF standard that Cisco claims to be heading towards.
  • The control process uses the labels it exchanges with other MPLS nodes to create the Label Forwarding Table, which is used by the forwarding process to move labeled packets through the MPLS network.

MPLS Architecture

  • Label Switch Router (LSR) – any switch or router that distributes labels and makes packet forwarding decisions based on labels is an LSR. Label distribution allows an LSR to distribute its label bindings to other LSRs.
    • Edge-LSR – performs label imposition (push) or label disposition (pop).
      • Imposition is prepending a label to packet at ingress before forwarding to an MPLS neighbor.
      • Disposition is the opposite, i.e. removing a label at egress before forwarding to a device not in the MPLS domain. Any device with a non-MPLS neighbor is an edge-LSR (sort of a border router).
      • Edge-LSRs use a normal IP forwarding table + label information to add or remove labels from IP packets, and then forward to the non-MPLS switch or router.
    • ATM-LSR – an ATM switch acting as an LSR. Uses MPLS protocols to establish VCs.
    • ATM edge-LSR – a border MPLS router that connects to an ATM-LSR.
  • Label Imposition
    • An LSR must know where a packet is going, and thus what label or label stack to prepend to the packet.
    • LSRs use Forwarding Equivalence Classes (FECs). Think of a FEC as a group of IP packets that will be fowarded the same way, via the same path. A FEC might be a destination subnet, but could also be other kinds of classification, like DSCP value or all destination prefixes reachable via the same egress BGP router.
    • Unlike traditional IP forwarding (every hop makes an individual L3 forwarding decision), a packet is assigned an MPLS FEC once: at the edge-LSR. This FEC assignment is known as a label.
    • As mentioned before, the label is prepended to the packet. Therefore, when the packet arrives at the next hop, the LSR will forward based on the label, as opposed to a re-examination of L3 headers.

Ethan Banks writes & podcasts about IT, new media, and personal tech.
about | subscribe | @ecbanks