Multiprotocol Label Switching
-Open standard per RFC 3031
-Previous Cisco proprietary tag switching
MPLS Overview – Multiprotocol
-can transport different payloads
--Ethernet, HDLC, PPP, Frame and ATM
-IPv4 & IPv6
MPLS is made up of two portions
Multiprotocol encap because it can transport different types payloads.
Including both layer 2 and layer 3 (there is also extensions to transport IPv6 over MPLS called 6PE)
MPLS Label Switching
-Traffic is switched between interfaces based on locally significant label values
-Similar to how a frame relay or ATM switch uses input/output DLCIs and VPI/VPCs
MPLS Label Format
-4 byte header used to switch packets
-RFC 3032 – MPLS label Stack Encoding
-- 20 bit label = locally significant to router
--3 bit EXP = Class of Service (QoS)
--S bit = Defines last label in the label stack (used by provide edge router)
--8 bit TTL = Time to live
Sits between the layer 2 and layer 3 encap.
How Labels work:
-MPLS Labels are bound to FECs
--Forward Equivalency Class
--IPv4 prefix for the CCIE purposes
Router uses MPLS LFIB to switch traffic
-Essentially CEF table + Label
-If traffic comes in IF1 with label X send it out IF2 with Label Y
Based on label value to an IPv4 prefix association in the network, the binding of the Label and the Prefix value is known as the FEC.
The FEC is used to switch the label between the routers CEF table which is now known as the LFIB – CEF + Label Value.
In IPv4 – we determine the destination based on the outgoing interface.
In MPLS the outgoing interface is based on the incoming label value. The routers in the MPLS transit path need to agree on what the locally significant labels are. The actual labels values can be used over and over because they are really only relevant to the local router.
MPLS Device Roles:
--Provider Edge Router / Label edge router - Exchange IPv4 routes from Provider to Customer.
Connects to Customer Edge (CE) devices
Receives unlabeled packets and adds label
-AKA label push or label imposition -- Ads labels to normal IP packet
In L3VPN performs both IP routing & MPLS lookups
Once in the Provider network
P / LSR devices
-Provider Router / Label Switch Routers (not attached to any customers)
Connects to Pes and / or other P routers
Switches traffic based only on MPLS label
Provider routers only switch traffic based on MPLS label.
Design – the advantage of running MPLS from the Service provider’s perspective, it reduces the load in the Control Plane of the SP core.
Label Push / Pop / Swap:
PE and P routers perform three major operations
Label push – Done by Provider edge – Adding label on packet on inbound packet
--AKA add label to incoming packet
--AKA label imposition
Label Swap - Normally done by the P router in the core of the SP network. Where we receive a packet inbound that already has a label assigned
-Replace a label on an incoming packet – the adding a new label as it’s sent out another interface.
Label POP - Where the packet exit’s the network – removes label and sends to customer.
-Remove a label from an outgoing packet
-AKA label disposition
In order for the routers to do the label switching, they first must agree on what the mappings are between the label numbers and the IP Prefixes. This is what’s considered the FEC. Label values are only locally significant so we don’t need information about the entire topology.
Most LDP will rely on underlying loop preventions like IGP – to know about the topology and keep it loop free.
The first of the protocols that advertise the Labe distribution are:
Legacy Cisco TDP and the open standard LDP.
Label dist –
Adjacent P/PE’s must agree on label pre FEC.
Label bindings can be dynamic through….
--Tag distribution protocol TDP
--Label Distribution protocol - LDP
Resource reservation Protocol
--used for MPLS traffic Engineering (MPLS TE)
Multiprotocol BGP (MP-BGP)
Standard per RFC 30306
--uses UDP port 646 to 18.104.22.168
Neighbor Adjacency – Once the neighbors discover each-other they use TCP
-TCP port 646 to remote LDP router-ID
Note: same logic as BGP using it’s loopback to source the TCP session.
Loopback logic is the same as for EX: OSPF
-Advertise FEC for connected IGP interfaces
-Advertise FEC for IGP learned routes.
LDP is an IGP based label dist protocol, this means that LDP will only advertise locally enable for IGP and IGP learned prefixes.
EX: SH IP ROUTE OISPF _ these will be advertised in the FEC
Globally - Ip cef
Globally - Mpls label protocol (LDP | TDP)
Interface - Mpls ip
#sh ip mpls ldp interface – interfaces running LDP
#sh mpls ldp Neighbor – shows ADJ status – verify peering
#sh mplds forwarding-table – eq of s hip route
#sh ip cef (internal) – how the router is encapsulation the packet. Label value, etc. Same info as forwarding table.
#debufg mpls packet.
NOTE: MPLS IP ant the interface level will enable the process. The new default is LDP old TDP.
Note: Since LDP is an IGP based Protocol, Once LDP is enabled on the per-link basis, we should see Label bindings for all the routes in the routing table. Any connected interface and learned from the IGP. Locally significant on a hop-by-hop- basis. These means the label will change on a Hop basic as negotiated by the routed and the prefix.
Once LDP is enabled all the – Assuming there’s nothing wrong with eh underlying transport – All the Label announcements should happen automatically
Penultimate Hop Popping (PHP)
Uses to remove labels on CE facing routers and connected routers. This is basically an optimization of the label lookup that says the device that is the next to last hop. Is automatically going to remove the top most label in the stack – before it is sent out to that neighbor.
Penultimate means next to last. (hop)
Normally last hop must….
--lookup MPLS label
--Pop MPLS label
--Lookup IPv4 Destination
PHP avoids extra lookup on last hop
Accomplished through Implicit NULL label advertisement for connected prefixes.
Note: Any time we show the MPLS forward-table, if there is a decimal value under the outgoing label values. This means that the destination is several HOPS away. For any destination that the local router is the next to last hop – we should see the words, “Pop Label” under the outgoing heading.
Note: if we see the “no label” it means that the traffic is being sent on a non LDP enabled interface. Normal IP interface).