- [Presenter] Multiprotocol Label Switching or MPLS
is a method of packet forwarding technology
that we can use to control the flow
of network traffic and increase our speeds.
Typically, packet forwarding decisions with IP traffic
are made based on destination IP addresses,
but instead of that, MPLS uses labels
to make these decisions.
It's very flexible and efficient
and it supports many different services.
But here for the ENARSI Exam,
we want to focus on using MPLS with IP traffic.
First, we need to cover the important pieces that MPLS uses,
so let's break down the structures
within an MPLS enabled router.
We commonly refer to these routers
as an LSR, a Label Switch Router.
These routers perform routing based on labels
rather than other information.
If we take a typical router,
we know that there is a Control Plane and a Data Plane.
The Control Plane contains the RIB or the IP routing table,
and the Data Plane contains the FIB,
which is the IP forwarding table.
The RIB, or Routing Information Base,
contains routing information
learned by dynamic routing protocols
such as OSPF and BGP
or any statically designated routes.
So all information related to IP routing is stored here.
Anytime a routing protocol learns a new route,
that route is inserted into the RIB.
These routes are then copied into the FIB,
the Forwarding Information Base.
The FIB is used to make IP destination
prefix-based switching decisions,
so this table would contain the interface information
and the next hop information
for each reachable destination network prefix.
So Control Plane packets are destined to a router
or originating from the router itself,
while Data Plane packets would be any packets
that are meant to pass through the router
and those which are not destined for the router itself.
If we look at an MPLS enabled router,
or an LSR, in other words, a Label Switch Router,
we have some additional structures.
In the Control Plane, we have a LIB,
a Label Information Base,
and in the Data Plane we have an LFIB,
a Label Forwarding Information Base.
If we have multiple label switch routers
using labels for MPLS,
these labels are exchanged between LSRs using something
called the Label Distribution Protocol, or LDP.
The LSRs can also exchange routing information
between themselves as you would normally expect
using dynamic routing protocols,
and those are populated into the RIB
as with a normal router.
With the exchange of labels via LDP, however,
this information gets populated into the LIB,
the Label Information Base.
The LIB will select the best path based on this information
and will populate this
into the Label Forwarding Information Base, the LFIB.
This is also populated into the normal FIB.
If we have packets arriving that are unlabeled,
they will be forwarded using the FIB,
while labeled packets will be forwarded using the LFIB.
Here, we have multiple interconnected LSRs
within an MPLS domain.
So another important term to know is LSP,
the Label Switched Path,
and very simply this is just the accumulative path
that a label switched packet will take
through an MPLS network, and that is unidirectional,
it's only in a single direction.
Because LSPs are unidirectional,
if we have a complex network with multiple paths
between source and destination for our traffic,
it's possible that they can use two different LSPs
during round trip.
Now, typically this is not the case
because our dynamic routing protocols
will usually build symmetrical forwarding paths.
There are also a few terms to know
in regard to the router typology.
Of course, we have our LSRs in the public internet here,
our MPLS enabled label switch routers.
On the edge of this, we have Edge LSRs, or ELSRs.
We also refer to these as PE devices, Provider Edge devices.
These are routers that only have some interfaces
enabled for MPLS.
So for instance, the interfaces facing the provider LSRs
or the intermediate LSRs here,
those would be MPLS enabled,
while those facing the customer would not.
And edge router is a term you're likely familiar with
because that isn't a term that's specific to MPLS.
As for the labels themselves,
let's see what that looks like within a packet.
Here, we have a simplified look at a very typical packet
containing our payload, a Layer 3 IP Header,
and a Layer 2 Frame Header.
The MPLS label is a Shim Header
that is placed in between the IP and Frame Headers.
This Shim Header is 4 bytes, or 32 bits,
and that structure contains four fields inside.
The first 20 bits define the MPLS label number.
The following three bits are reserved
for quality of service.
There's a tiny 1 bit section used to indicate
if the label is on the bottom end of the stack,
or if multiple labels are being used.
So for example, MPLS VPNs,
those would use multiple labels,
so this would be necessary in that case.
And there's an 8 bit TTL value, a time-to-live value,
and that's used just as you would expect,
so that MPLS frames will be discarded
if they reach a 0 TTL value
before they get to their destination.
So that's an overview of MPLS.