Mpls A Mini-Course: July 2018
Mpls A Mini-Course: July 2018
a mini-course
Presented by:
Yaakov (J) Stein
CTO
July 2018
MPLS Slide 3
Buses (e.g., Ethernet LANs)
not for for me!! not for not for
me me me
Bus topologies are only practical for very small networks (LANs)
Ethernet fixes this by defining a bridge that can filter traffic
Packet Switched Networks contain Network Elements (routers, switches)
that perform two distinct functions :
• forwarding (data plane component)
• routing (control plane component)
From the forwarding point of view
there are two different types of Packet Switched Network:
• ConnectionLess (e.g., IP)
• Connection Oriented (e.g., ATM, MPLS???)
MPLS Slide 5
Connectionless Forwarding
host host
CL forwarder (router)
A PSN is connectionless (CL) if
• no setup is required before sending a packet
each router makes an independent forwarding decision
• packets are self-describing
packet inserted anywhere will be properly forwarded
Note:
– the address must have global significance
– IP only runs between routers
it relies on a L2 protocol (Ethernet, PPP) from router to host
MPLS Slide 6
IP Routing
• Distance Vector (Bellman-Ford), e.g. RIP
– send <addr,cost> to neighbors
– routers maintain cost to all destinations
– need to solve “count to problem“
• Path Vector, e.g. BGP
– send <addr,cost,path> to neighbors
– similar to distance vector, but w/o “count to problem“
– like distance vector has slow convergence*
– doesn’t require consistent topology
– can support hierarchical topology => exterior protocol (EGP)
• Link State, e.g. OSPF, IS-IS
– send <neighbor-addr,cost> to all routers
– determine entire flat network topology (Dijkstra’s algorithm)
– fast convergence*, guaranteed loopless => interior routing protocol (IGP)
*convergence time is the time taken until all routers work consistently
before convergence is complete packets may be misforwarded, and there may be loops
MPLS Slide 7
IP Forwarding
IPv4 and IPv6 are CL PSNs
MPLS Slide 8
Connection Oriented Forwarding
CO forwarder (switch)
1 1
2 2
3 3
4 4
5 5
each forwarder maintains forwarding table (or table per input port)
control component:
• route must be set-up (table must be updated) before data sent
• set-up may be manual or signaled
• once route no longer needed it should be torn-down
MPLS Slide 9
CO Forwarding
CO addresses need not have global significance
by using locally defined addresses:
• addresses are smaller in size
• lookup is faster
• no need for global allocation mechanism (purchasing, DHCP)
• no need to maintain global database
L2 forwarding is based on address read and swap
12 17 23
Note:
when addresses are purely local
CO forwarding is often called called L2 (link layer) forwarding
MPLS Slide 10
CO Forwarding Table
input port input address output port output address
1 21 2 21
1 37 1 21
2 12 5 12
3 5 5 12
4 15 3 37
MPLS Slide 12
Forwarding Equivalence Classes
MPLS Slide 13
Forwarding Equivalence Classes
Simple routers typically search for IP prefix
and immediately perform forwarding
e.g., the UNIX router LSDB Dijkstra returns forwarding information
Today’s routers decouple (as much as possible)
• routing protocol(s) (building LSDB, RIBs)
• building FIB
• packet parsing/classification/search
• forwarding decision
All packets that are to be forwarded in the same way
are grouped together to form a FEC
Thus the search algorithm returns a FEC label
and then a second lookup is performed
to find the forwarding information
MPLS Slide 14
Equivalence Classes
In set theory we define an Equivalence Class as:
set of elements that can be considered equivalent for some purpose
Theorem reflexive: a~a
symmetric : a ~ b b ~ a
any equality relation (e.g., common features) transitive : a ~ b and b ~ c a ~ c
Example:
equality modulo 3 for positive integers
A = B (mod 3) if and only if A = 3a + c and B = 3b + c
or (A-B) divides by 3
there are three equivalence classes :
{ 0, 3, 6, 9, 12, … }
{1, 4, 7, 10, 13, …}
{2, 5, 8, 11, 14, … }
note that every positive integer is in exactly one EC
MPLS Slide 15
Forwarding Equivalence Classes
A FEC is the set of all packets that are to be treated in the same way
By the theorem every packet belongs to one unique FEC
So the router’s forwarding job is now :
1) parse packet
2) search and classify packet as belong to a particular FEC
3) forward based on FEC’s forwarding information
Packets in the same FEC should follow the same path
but in IP this is not directly enforced
since each successive router reclassifies the packet’s FEC
If the router could insert information into the packet
informing the next router of its FEC
• this would save a lot of processing at the following routers
• the subsequent forwarding would be CO instead of CL
Unfortunately, this is impossible (without label switching)!
MPLS Slide 16
FECs
MPLS Slide 18
Problems with IP routing
IP is great – but not perfect !
• scalability
– router table overload
– routing convergence slow-down
– increase in queuing time and routing traffic
– problems specific to underlying L2 technologies
• hard to implement load balancing
• QoS and Traffic Engineering
• problem of routing changes
• difficulties in routing protocol update
• lack of VPN services
MPLS Slide 19
Scalability
When IP was first conceived, scalability was not a problem
but as number of hosts increases, routing shows stress
Simplistic example
– N hosts
– each router serves M hosts
– each router entry takes a bytes
hence
– router table size a N ~ N
– N / M ~ N routers (more routers => slower convergence)
– packet processing time* ~N (since have to examine entire table)
– ~N routers send to ~N routers tables of size ~N
so routing table update traffic increases ~N 3 (or ~N 4 )
MPLS Slide 20
L2 Backbone Doesn’t Help!
Instead of expensive and slow IP routers
operators once used faster and cheaper ATM switches in core
ATM
Classical IP
over ATM
MPLS Slide 24
VPN Services
192.115.243.19 192.115.243.79
IP
192.115.243.19
MPLS Slide 25
Label Switching
MPLS Slide 26
Solution - Label Switching
CO forwarder (switch) CL forwarder (router) LSR
MPLS Slide 27
Where is it?
Unlike TCP, the label switching CO layer lies under the CL layer
If there is a broadcast L2 (e.g. Ethernet), the CO layer lies above it
higher layers
layer 3 (e.g. IP)
label switching (layer 2.5) shim header
layer 2 (e.g. ethernet)
physical layer
MPLS Slide 28
Labels
A label is a short, fixed length, structure-less address
The following are not labels:
• telephone number (not fixed length, country-code+area-code+local-number)
• Ethernet address (too long, note vendor-code is not meaningful structure)
• IP address (too long, has fields)
• ATM address (has VP/VC)
Not an explicit requirement, but normally only local in significance
Label(s) added to CL packet, in addition to L3 address
Layer 2.5 forwarding
• requires a flow setup process and signaling protocol
• may find a different route than the L3 forwarding
– and thus support higher granularity FECs
• may be faster than L3 forwarding
MPLS Slide 29
Label Switching Architecture
downstream direction
upstream direction
Label Switched Path
L3 link L3 link
ingress egress
L3 router Label Edge Router Label Edge Router L3 router
Label Switched Routers
ATM VC
VC VP
VC
MPLS Slide 33
Label Stacks
since labels are structure-less, the label space is flat
label switching can support arbitrary levels of hierarchy
by using a label stack
top label
another label
yet another label
bottom label
MPLS Slide 34
Example Uses of Label Stack
MPLS Slide 35
Fast ReRoute
IP has no inherent recovery method (like SDH)
in order to ensure resilience we can provide local detours
swap swap
+
push swap 14 pop
11
13 11 from here on
no difference! *
11
protection LSP
* label space per LSR
not per input port MPLS Slide 36
Label Switched VPNs
C C C
C CE
CE
C AC C
AC
customer 1 network P P P customer 2 network
PE PE
P P
AC
AC
C C C
C provider network CE
CE
C C
Key
C Customer router customer 1 network
customer 2 network CE Customer Edge router
P Provider router
PE Provider Edge router
MPLS Slide 37
Label Switched VPNs (cont.)
If customers 1 and 2 use overlapping IP addresses
C-routers have inconsistent tables egress PE
Ingress PE (LER) inserts two labels egress CE
IP header
Only PEs know about customers payload
P-routers see only the label of the egress PE-router
– P-routers don’t see IP addresses, so there is no ambiguity
– they don’t know about VPNs at all
– no need to understand customer configuration
– smaller tables
– no rerouting if customer reconfigures
Ingress PE router only knows about CE routers
– no need to understand customer configuration (C-routers)
MPLS Slide 38
PWE 3
P P
router router
PE P
PE
native router router router native
service
service
A tunnel may
P
contain many router
PWs
MPLS
MPLS Slide 41
MPLS history
Many different label switching schemes were invented
• Cell Switching Router (Toshiba) <RFC 2098,2129>
• IP Switching (Ipsilon, bought by Nokia) <RFC 2297>
• Tag Switching (Cisco) <RFC 2105>
• Aggregate Route-based IP Switching (IBM)
• IP Navigator (Cascade bought by Ascend bought by Lucent)
MPLS Slide 42
MPLS
MPLS Slide 43
MultiProtocol Label Switching
(everything)
MPLS
Ethernet SDH/OTN
(GFP, HDLC)
legacy
(ATM, FR)
MPLS Slide 44
MPLS Shim Header
Label (20b) TC(3b) S(1b) TTL (8b)
MPLS Slide 47
MPLS flavors
We now distinguish four flavors of MPLS :
1. plain vanilla MPLS (usually with LDP, perhaps with RSVP-TE for FRR)
not true CO – pinned to route not to NEs
used in Internet core
2. MPLS for L3VPN services (RFC 4364 <ex-2547> using BGP)
used to deliver VPN services to businesses
3. MPLS-TE (currently with RSVP-TE)
true CO with resource reservation
used when SLA guarantees given
4. MPLS-TP (usually with management system, can use RSVP-TE)
does not assume the existence of IP forwarding plane
does not require control plane – can work with management OSS
implements OAM and APS functionality
MPLS Slide 48
Special mechanisms
MPLS Slide 49
Penultimate Hop Popping
PH
IP link
I E CE
MPLS domain
MPLS Slide 51
Entropy Labels
Ethernet and IP enable load balancing using LAG and ECMP
which map flows based hashing header fields
MPLS labels have no spare information = entropy
and peeking under the MPLS requires DPI (warning - layer violation)
One approach is to use multiple different labels for the same FEC
but that increases control plane complexity
RFC 6790 defines entropy labels (and RFC 6391 defines a FAT PW)
• ingress LER hashes IP header fields as for ECMP
• it pushes an entropy label
• it pushes the Entropy Label Indicator (reserved label 7)
• it pushes the MPLS transport label
RFC 8012 defines ping and traceroute mechanisms
based on entropy labels
MPLS Slide 52
FAT PW and Entropy Labels
The Flow Aware Transport PW label and the entropy label
• are never signaled (but their capability is signaled)
• are used as key for ECMP-like hashing
• packets in a single flow share the same entropy label
• are slightly different in format and placement
MPLS Slide 53
I need a label
I allocated 13
A 13 data B
MPLS Slide 54
Data and control planes
control plane
MPLS Slide 55
Label Distribution Protocols
When an LSR creates/removes a FEC - label binding
it needs to inform other LSRs of its decision
MPLS allows piggybacking label distribution on routing protocols
– protocols already in use (don’t need to invent or deploy)
– eliminates race conditions (when route or binding, but not both, defined)
– ensures consistency between binding and routing information
– only for distance vector or path vector routing protocols (not OSPF, IS-IS)
– not all routing protocols are sufficiently extensible (RIP isn’t)
– has been implemented for BGP-4
MPLS WG invented a new protocol LDP for “plain” label distribution
– messages sent reliably using TCP/IP
– messages encoded in TLVs
– discovery mechanism to find other LSRs
… and extended RSVP to LSPs for QoS - RSVP-TE
New approaches use OpenFlow (SDN) and OSPF (for segment routing)
MPLS Slide 56
LER Architecture
control plane
IP IP routing protocols
IP routers
routing
tables label binding and
distribution protocols
free label table
LSRs
MPLS
labeling procedure forwarding
table
MPLS Slide 57
All the Tables
FEC table FEC protocol input port handling
MPLS Slide 58
Binding and Distribution Options
label binding (assignment)
– per port or per LSR label space
– control driven vs. data driven (traffic driven)
– liberal vs. conservative label retention
MPLS Slide 59
Per Port Label Space
LSR may have a separate label space for each input port (I/F)
or a single common label space
or any combination of the two
Separate labels spaces means separate forwarding tables per port
ATM LSR had only per port label spaces (leads to interleave problem)
per port label spaces increases number of available labels
common label space facilitates several MPLS mechanisms (e.g. FRR)
MPLS Slide 60
Control vs. Data Driven
there are two philosophies as to when to create a binding
data-driven (traffic-driven) binding (Toshiba CSR, Ipsilon IP-Switching)
automatically create binding when data packets arrive
(from first packet?, after enough packets? when tear LSP down?)
control-driven binding (Cisco Tag Switching, IBM ARIS)
create binding when routing updates arrive
(only update when topology changes? update upon request?)
MPLS Slide 61
Liberal vs. Conservative Retention
A advertises label B
B is previous hop LSR
A
but C retains label anyway
later routing change makes C the previous hop C
C immediately can start forwarding
MPLS Slide 62
Downstream vs. Upstream
downstream
A 13 data B
MPLS Slide 64
Independent vs. Ordered
independent binding (Tag Switching)
– each LSR makes independent decision to bind and distribute
ordered binding (ARIS)
• egress LSR binds first and distributes binding to neighbors
• LSR that believes that it should be the penultimate LSR
binds and distributes to its neighbors
• binding proceeds in orderly fashion until ingress LSR is reached
LSRs must agree upon mode to be used
B sees that it is egress LSR for 192.115.6
B allocates label 13
B distributes label to C and D 13
C distributes label to E
D 192.115/16
B A
E C 13
MPLS Slide 65
LDP tasks
A label distribution protocol is a signaling protocol
that can perform the following tasks:
MPLS Slide 66
Label Distribution Protocols
Label distribution can be performed using various protocols
There are presently the following options:
• Management protocols
• LDP
– MPLS-enhanced IP networks
– used as basis for PWE3 control protocol
• BGP4-MPLS
– mainly for RFC 4364 VPNs
• RSVP-TE
– traffic engineering support
• CR-LDP
– constraint based (no longer recommended by IETF)
MPLS Slide 67
LDP and BGP
slides for those who love protocols
MPLS Slide 68
LDP vs. BGP
both use TCP for reliable transport (LDP uses UDP for hellos)
both are hard-state protocols
both use TLV format for parameters
BGP LDP
multiprotocol (IPv4, IPv6, IPX, MPLS) MPLS only
highly complex protocol simpler protocol
provides routing / label distribution only label distribution
built-in autodiscovery mechanism no built-in autodiscovery
MPLS Slide 69
LDP
Major focus of the IETF MPLS WG was the design of LDP
based on similar TDP from Cisco
LDP sets up a bidirectional LDP session
both sides can request or advertise labels
LDP usually uses TCP
– needs reliable transport (e.g. what happens if miss a binding)
– needs in-order delivery (e.g. binding+withdrawal)
– hard to develop new reliable transport protocols
– single acknowledgement timer for session
– piggybacking ACK on data packets
Use UDP for discovery (hello) messages
Periodic keepalive messages (if not received, session terminated)
All messages encoded in TLV (Type Length Value) form
MPLS Slide 70
LDP Setup
Hello (UDP)
Discovery
Hello (UDP)
Initialization (TCP)
Session
Initialization (TCP)
MPLS Slide 71
Discovery Phase
• LSR periodically multicast transmits hello to “LDP discovery” UDP port
– to “all routers on subnet” multicast group
– to preconfigured IP address (when not all LSRs on same subnet)
(extended discovery) “targeted LDP”
• LSRs listen on this UDP port for hello messages
• Hello message contains:
– hold time
– LSR Identifier
• when LSR receives Hello from another LSR
– it opens a TCP connection to that other LSR (if needed)
or (for extended discovery)
– it unicast transmits a hello back to the other LSR
• LDP session can now be established
MPLS Slide 72
Session Initialization
MPLS Slide 73
Distribution Messages
• label mapping
– downstream LSR advertisement of a label mapping for a FEC
two FEC types: host address, IP address prefix
• label withdrawal
– reverse of mapping message
– downstream LSR informs upstream LSR
that it has revoked a previous binding
– upstream LSR can not longer use the label
• label release
– upstream LSR informs downstream LSR
that it no longer needs a binding
– typically when downstream is no longer next hop
and operating in conservative retention mode
MPLS Slide 74
Request Messages
In dod mode upstream LSR must request binding
Upstream LSR sends label request message when:
– FEC in FEC table
next hop LSR is LDP peer
FEC not in forwarding table
– FEC next hop changes
upstream LSR doesn’t have a mapping from new next hop
– receives FEC label request from upstream LDP peer
next hop LSR is LDP peer
upstream LSR doesn’t have a mapping from next hop
Upstream LSR sends label request abort message when:
– upstream LSR needs to revoke request before satisfied
for example, next hop LSR for FEC has changed
MPLS Slide 75
Notifications
There are two types of notifications:
– error notifications (fatal errors - terminate session)
– advisory notifications (status messages)
LSR sends notification messages when:
– received LDP message with unsupported protocol version
– received LDP message with unknown type
– KeepAlive timer expired
– session initialization fails due to unacceptable parameters
– etc.
MPLS Slide 76
LDP state machine
• LSR periodically transmits hello UDP messages
– multicast to “all routers on subnet” group
– targeted to preconfigured IP address
• LSRs listen on this UDP port for hello messages
• When LSR receives hello from another LSR
– it opens a TCP connection to that other LSR
or (for extended discovery)
– it unicast transmits a hello back to the other LSR
• LSR with higher ID sends session initialization
• Other LSR LDP accepts (sends keepalive) or rejects
• Informative or keepalive messages sent
3.2
MPLS Slide 77
LDP packet format
header (10B)
version – presently 1
length - PDU length, excluding version and length fields
LDP-ID – identifies label space of sending LDP peer
– LSR-ID(4B) globally unique LSR ID
– label space ID (2B) for per-port label spaces
(zero for per-platform label spaces)
message TLVs – zero or more message TLVs (see next page)
MPLS Slide 78
LDP message TLVs
mandatory optional
type length message-ID parameter parameter
U
(15b) (2B) (4B) TLVs TLVs
(variable) (variable)
MPLS Slide 80
LDP parameter (sub)TLVs
type length
U F
(14b) (2B) value
FEC element 1
…
there may be more than one FEC element for mapping messages only
the FEC elements are not themselves TLVs (no length needed),
instead
– wildcard FEC (0x01)
– prefix FEC (0x02) + address family (IPv4, IPv6, Ethernet, E.164, etc.) +
prefix length in bits + prefix
– host address FEC (0x03) + address family + length + address
MPLS Slide 82
Generic Label TLV
type (2B)
length (2B)
U=0 F=0 type=0x0200
MPLS Slide 83
Status TLV
type (2B)
length (2B)
U F type=0x0300
E F status code data (30b)
MPLS Slide 84
Example full message -
label mapping
mapping message length=24 message-ID
U=0 type = 0x0400 (2B) (4B)
label = 17
MPLS Slide 85
BGP4 Label Distribution
BGP peers exchange VPN routes
can easily associate a label with these routes
all BGP procedures are immediately available for use
for label distribution messages
BGP4 is a very extensible protocol
– multiprotocol extensions support address families
(originally for IPv4,IPv6, etc)
– MPLS defines a new address family
MPLS Slide 86
BGP
header (19B)
MPLS Slide 87
BGP state machine
MPLS Slide 88
BGP OPEN
MPLS Slide 89
BGP UPDATE
WR len withdrawn PA len path NLRI
routes attributes
(2B) (2B) (var) (var)
(var)
Withdrawn Routes – list of routes no longer to be used (NLRI format- see below)
Path Attributes – route specific information (see next page)
Network Layer Reachability Information – (classless) routing information
len prefix
(1B) (variable)
MPLS Slide 90
BGP UPDATE - Path Attributes
flags type code
(1B) (1B)
flags
O – optional/well-known bit
if 1 must be recognized by all BGP implementations
if W=1 and unrecognized attribute, BGP sends notification and session closed
T – transitive/nontransitive bit
if 1 and attribute unrecognized it is passed along, else silently ignored
well-known attributes are always transitive
type code
ORIGIN, AS_PATH, NEXT_HOP, MED, LOCAL_PREF,
AGGREGATOR, COMMUNITY, ORIGINATOR_ID…
MPLS Slide 91
BGP NOTIFICATON
MPLS Slide 92
MPLS-TP
MPLS Slide 93
Background
IP is the most popular packet-switched protocol
MPLS and Ethernet are the most popular server layers under IP
but neither is a transport network
MPLS Slide 94
Characteristics of transport networks
1. High availability
1. Fault Management OAM
2. Automatic Protection Switching
2. Efficient utilization, SLA support, and QoS mechanisms
1. high determinism
2. Connection Oriented behavior
3. Performance Management OAM
3. Management plane (optionally control plane)
1. configuration management similar to traditional
2. efficient provisioning of p2p, p2m and m2m services
4. Scalability - must scale well with increase in
1. end-points
2. services
3. bandwidth
MPLS Slide 95
Possible solutions
MPLS Slide 96
MPLS-TP
MPLS-TP is a profile of MPLS, that is
• it reuses existing MPLS standards
• its data plane is a (minimal) subset of the full MPLS data plane
• it interoperates with existing MPLS (and PWE) protocols
without gateways
MPLS Slide 98
The APS issue
MPLS-TP requires linear and ring protection mechanisms
Similar to what happened in OAM
the IETF and ITU developed different APS
The ITU adapted Ethernet APS mechanisms to MPLS
The IETF developed new mechanisms with the same functionality
The mechanisms can not interoperate
MPLS Slide 99
Planes
TP supports static provisioning via management plane
a control plane (CP) is defined but not mandatory to use
TP networks can be configured and operate w/o IP forwarding
TP’s data plane is physically/logically separated from
management/control planes
Data plane continues to operate normally (forwarding, OAM, APS)
even if the management/control plane that configured it fails
TP can always distinguish user packets from control/management
GACh message
States
Down – just created or no connectivity
Init – during 3-way handshake (set-up or tear-down)
Up – connectivity
AdminDown – administratively down for indefinite period
does not imply lack of connectivity!
My Discriminator
Your Discriminator
Desired Min TX Interval
Required Min RX Interval
Required Min Echo RX Interval
MPLS Slide 115
BFD control packet – explanations
Vers : version = 1
Diag : diagnostic code specifying the reason for the last state change
0 -- No Diagnostic 1 -- Control Detection Time Expired
2 -- Echo Function Failed 3 -- Neighbor Signaled Session Down
4 -- Forwarding Plane Reset 5 -- Path Down
6 -- Concatenated Path Down 7 -- Administratively Down
8 -- Reverse Concatenated Path Down 9-31 -- Reserved
Sta: current BFD session state as seen by the transmitting system
0 – AdminDown 1 -- Down 2 -- Init 3 -- Up
P: Poll. Sender requests verification of connectivity or of parameter change, expects an “F” packet in reply
F: Final Sender is responding to a received poll.
C: Control plane independent - sender BFD in data plane, continues to function even if control plane fails
A: Authentication present
D: Demand – sender wishes to operate in Demand mode, asks remote not to send control packets
M: Multipoint - for p2mp applications
Detect Mult : Detection time multiplier (e.g., 3). Number of Tx intervals for detection in async mode
Length : length of packet in bytes
My Discriminator : unique nonzero value used to demux BFD sessions between the same endpoints
Your Discriminator : discriminator received from the remote or zero if unknown
Desired Min TX Interval : minimum interval (msec) that can send
Required Min RX Interval : minimal interval (msec) that can receive
0 means do not send periodic control packets.
Required Min Echo RX Interval : minimum supported interval (msec) between received echo packets
if zero, echo mode is not supported.
from draft-ietf-mpls-tp-cc-cv-rdi
CC packet
LR
Vers RES Msg Type Flags Refresh
Timer
FM
TLV Length TLVs message
Optional TLVs
Request : NR, SF, SD, manual switch, forced switch, lockout, WTR, DNR
PT = Protection Type : uni 1+1, bidi 1+1, bidi 1:1/1:n
R = Revertive
FPath = which path has fault Path = which data path is on protection channel
MPLS Slide 131
Linear protection – ITU style
from RFC 7347 (Pre-standard Linear Protection Switching)
END=0
CE CE
Pseudowires
network network
A B
NS A header(s) NS B header(s)
native SP native
service service
network network network
SP headers
customer customer
network leased line network
customer provider
customer
network network
network
tunnel
MPLS Slide 143
Emulation Edge to Edge
customer customer
network native service link or path network
edge to edge
provider
NS link network
customer NS link
customer
network network
emulated link
P P
router router
Attachment P PE Attachment
PE
router router Circuit
Circuit router
P
router
C C C
C CE
CE
C C
C C C
C provider network CE
CE
C Key C
C Customer router
customer 2 network CE Customer Edge router customer 1 network
P Provider router
PE Provider Edge router
MPLS Slide 147
Pseudowire Emulation
Edge to Edge
PWE3
Customer
Edge
provider’s
(CE) PSN Customer
Edge
Customer
Edge Provider Provider (CE)
Edge Edge
(CE)
(PE) (PE) Customer
Customer Edge
native
Edge service
native Pseudowires AC (CE)
(CE) service
AC (PWs)
CE CE
CE CE
P P
router router
PE PE
P
native router router native
router
service service
AC tunnel AC
P
containing router
many PWs
P routers use the tunnel label to forward the PW packet to the egress PE
The inner label is never used as an MPLS label
• no forwarding decisions based on it
• only used by PE to connect to the correct native service port
But this changes in MultiSegment PWs
MPLS Slide 153
Generic PWE packet format
PSN / multiplexing
PW payload
tunnel PW control
Payload
label(s) label word
L2TPv3 PSN
IP header (5*4 B)
session ID (4 B)
optional cookie (4 or 8 B)
control word (4 B)
Payload
The ACh has been extended for MPLS-TP (to become the GACh)
P P P P
T-PE S-PE T-PE
P P P P P P
PE PE
P P
PE PE
P P P
MPLS Slide 166
LDP extensions
RFC 4447 does not define any new LDP messages
It defines 2 new FEC types (see next page)
• PWid FEC (128)
• Generalized ID FEC (129)
FEC 129
– used when autodiscovering PW end-points
– each end-point has Attachment Identifier (see next page)
TDM PWs
0 64 kbps
* 30 * 24
* 24
1 E1 2.048 Mbps T1 1.544 Mbps J1 1.544 Mbps
*4 *4 *4
*4 *7 *5
* 4 *6 *3
multiframe
MPLS Slide 173
TDM transport types
PSN / multiplexing
0 0 0 0 / FORMID (4 b)
– was used to indicate TDMoIP mode (AAL1, AAL1 - CAS, AAL2, HDLC)
– ensures differentiation between IP and MPLS PSNs
Flags (4 b)
– L bit (Local failure)
– R bit (Remote failure)
– M field (2 b)
Length (6 b) used when packet may be padded by lower layer
Sequence Number (16 b) used to detect packet loss / misordering
Octet aligned mode for T1 (24 bytes plus one bit per frame)
TDM frame TDM frame TDM frame TDM frame TDM frame
1 1 1 2 2 2 3 3 3 4 4 4 5 5 5
PSN layers
Optional RTP header
CEP Control Word
CEP CW
E1 flags4 structure ptr13 Suppressable Sequence Number 14
WAN
not Ethernet
Ethernet header
• removed at ingress, and
• new header added at egress
This is not transparent Ethernet LAN interconnect
• Ethernet LANs with many higher layer packet types
can’t be interconnected
• raw L2 Ethernet frames can not be sent
MPLS Slide 184
Tunneling Ethernet frames
Users with multiple Ethernet sites may want to connect their LANs
so that all locations appear to be on the same LAN
This requires tunneling of all Ethernet L2 frames (not only IP)
between one LAN and another
The entire Ethernet frame needs to be preserved
(except perhaps the FCS, which may be regenerated at egress)
Ethernet Ethernet
X
Ethernet inside X
tunnel PW control
single Ethernet Frame
label label word
AC AC
CE PE PE CE
provider
network
AC
CE PE
PE AC CE
PE CE
CE PE
? PE
L2VPN: MPLS network → giant switch
L3VPN: MPLS network → giant router
CE
CE CE
Other PW types