SIGCOMMeBook2013v1 Chapter6 PDF
SIGCOMMeBook2013v1 Chapter6 PDF
SIGCOMMeBook2013v1 Chapter6 PDF
Summary
This chapter is devoted to Virtual Private Networks (VPNs) designed with Multi Protocol Label Switching
(MPLS) [14, 15, 1], one of the most elusive protocols of the network stack. Saying that MPLS is “elusive” is
not overemphasizing: starting from its arduous fitting within the ISO/OSI protocol stack, continuing with its
entangled relationships with several other routing and forwarding protocols (IP, OSPF, MP-BGP, just to name
a few), and ending with the complex technicalities involved in its configuration, MPLS defies classifications
and challenges easy descriptions.
On the other hand, and in a seemingly contradictory way, the configuration of VPNs with MPLS is
rather simple and elegant, despite the complexity of the underlying architecture. Also, MPLS flexibility
and maintenance ease make it a powerful tool, and account for its ubiquity in Internet Service Providers’
networks.
The chapter is organized as follows. Section 1 gives a brief introduction and motivation behind the
concept of Virtual Private Network and explains why Layer 3 MPLS VPNs are by far the most popular
widespread kind of VPNs deployed today.
In Section 2 we introduce the reader to basic concept and terminology about Label Switching (also
known as Label Swapping) and Virtual Private Networks.
Section 3 gives a high-level step-by-step description of an MPLS VPN. This is based on three main
ingredients: an any-to-any IP connectivity inside the network, a signalling mechanism to announce customer
IP prefixes, and an encapsulation mechanism, based on MPLS, to transport packets across the network.
Section 4 explores in detail the complex interplay between IP and MPLS that is at the basis of MPLS
VPNs.
More technical details about dynamic routing and connecting to the Internet, advanced usage of routing,
and preserving IP-specific per-hop behavior are provided in Section 5.
Strengths and limitations of MPLS VPNs are discussed in Section 6. The same section proposes further
readings on the subject.
The reader who is interested in getting only a high-level understanding on how MPLS VPNs work can
read Sections 1, 2, and 3. An indepth view of MPLS VPNs can be gained by reading Sections 4 and 5.
L. Cittadini, G. Di Battista, M. Patrignani, “MPLS Virtual Private Networks”, in H. Haddadi, O. Bonaventure (Eds.),
Recent Advances in Networking, (2013), pp. 275-304. Licensed under a CC-BY-SA Creative Commons license.
1.1 The Need for Virtual Private Networks
The concept of Virtual Private Networks (VPNs) is essential in today’s networks and will probably become
paramount in tomorrow’s networks, yet it is sometimes considered too advanced to be covered in a network-
ing course. This apparently contrasts with the simplicity of the concept of a VPN: in its most generic form,
a VPN is a closed (“Private”) group of nodes that want to be connected in a network (“Network”) and are
willing to use virtual connections, or pseudowires (“Virtual”) instead of physical connections.
Such a definition captures the essence of a VPN from the perspective of the customer. A network provider
has a slightly different abstraction about a VPN, mostly because she has a different interpretation of the
keyword “Network”: within the graph that represents her own network, she needs to provide connectivity to
a subset of the nodes. Despite being seemingly very easy, each of the other two keywords that appear in the
definition hides a fair amount of complexity that is not obvious at first glance.
Virtual Where in the ISO/OSI stack does virtualisation happen?
Private Is there any authentication mechanism? Does the VPN need to preserve confidentiality of the
messages?
Each of these questions has many possible answers, which is the reason why there are so many different
types of VPNs in today’s networks. For example, a peer-to-peer network can be seen as a VPN where pseu-
dowires are transport sessions, there is no authentication amongst nodes and no traffic encryption, and the
topology of the network is defined by a dynamic algorithm. At the opposite side of the spectrum we have
optical networks, which can be seen as VPNs where pseudowires are light paths through optical switch-
ing devices, there is no authentication and no encryption, and the network topology is defined by simply
configuring arbitrary pseudowires among the nodes.
In the context of VPNs, the term “virtualisation” indicates the technology that is used to multiplex traffic
from multiple VPNs on the same underlying network topology. The most important feature of a VPN
technology is what multiplexing technique is used and at which layer of the protocol stack. In general,
pushing the multiplexing component down to the lower layers of the protocol stack (e.g., the physical or
data-link layer) implies a higher implementation cost compared to the higher layers (e.g., the transport
or application layer). For example, deploying an optical network to be able to run arbitrary pseudowires
between two computers is several orders of magnitude more expensive than connecting those two computers
to the Internet and writing a software that establishes a tunnel between them. On the other hand, multiplexing
is transparent to upper layer protocols: for this reason, multiplexing at lower layers in the stack allows us to
support a wider fraction of the protocol stack.
The most common layers where multiplexing happens are layer 2 and layer 3. A layer 2 VPN (L2VPN)
transports packets of a specific layer 2 protocol and hence, thanks to the layered architecture of the protocol
stack, is capable of supporting any kind of layer 3 protocol. L2VPN technologies join the nodes belonging
to the same VPN within the same broadcast domain. For example, with a L2VPN, all nodes in the VPN
could participate in the same VLAN and exchange Ethernet packets. We refer the reader to [3] for a detailed
discussion of requirements for L2VPNs, and to [2] for a reference model of L2VPNs and a discussion of the
main functional components. Analogously, a layer 3 VPN (L3VPN) transports packets of a specific layer
3 protocol and hence is capable of supporting any kind of layer 4 protocol. Nodes belonging to the same
L3VPN can exchange IP packets that are routed through a provider network. We refer the reader to [8]
for a detailed discussion of requirements for L3VPNs, and to [7] for a reference model of L3VPNs and a
discussion of the main functional components.
1.2 Layer 3 VPNs and MPLS
Layer 3 VPNs are by far the most popular of VPNs deployed today. One reason is that layer 3 offers a
good trade-off between deployment cost and transparency to end hosts. Another, perhaps stronger reason
is that, as the Internet converged towards today’s everything-over-IP scheme, it seemed natural to place the
multiplexing component at the highest layer that supports transporting IP packets1 .
Despite a variety of technologies to realize virtual layer 3 services, most L3VPNs are based on the Multi
Protocol Label Switching protocol (MPLS). The popularity of an L3VPN technology strongly depends on
its ability to meet the demands of customers, providers, and vendors:
Customers’ needs: Typical VPN customers (e.g., private companies, public administrations, etc.) have
several geographically distributed sites and would like to have a unique IP network connecting all of
them. Besides mere connectivity, they have other requirements: (i) they want to keep their own IP
addressing plan for all the sites; (ii) they want their traffic to be logically separated from the traffic
of other customers that happen to use the same shared infrastructure; and (iii) they want guaranteed
quality of service.
Providers’ targets: Providers have invested lots of resources in building their own network backbone.
Since they have an existing infrastructure with many distributed PoPs (Points of Presence) connected
to the backbone, they would prefer to sell pseudowires rather than physical connections to their cus-
tomers. Among multiple techniques to implement pseudowires, providers prefer those that involve
lower configuration efforts, which usually implies lower maintenance costs. Moreover, they want the
implementation to be scalable with respect to the number of customers: the amount of state to keep in
the core of the network should only depend on the network topology, not on the number of customer
VPNs.
Vendors’ strategies: No network technology can be easily deployed without meeting the strategies of net-
work device producers and vendors, whose immediate aim is to sell many machines (possibly expen-
sive carrier-grade routers) and, in the long run, to drive the shift from a variety of old technologies for
VPNs (e.g., ATM or Frame Relay) to new technologies that are simpler to manage and hence have the
potential to grow the vendor’s market share.
After having introduced MPLS terminology and having given an overview of its main building blocks,
in Section 6 we discuss the extent to which MPLS is able to meet the above requirements.
Throughout this chapter we will refer to a very simple scenario (see Fig. 1) where a provider has a network
infrastructure with three PoPs (in Turin, Milan, and Rome) and offers connectivity to two customers. Cus-
tomer 1 has two sites and has an IP addressing plan that allocates the 200.1.6.0/24 to its site in Milan and
the 10.0.0.0/24 to its site in Rome. Customer 2 has two sites too and has an IP addressing plan that allocates
the 10.0.0.0/24 to its site in Turin and the 193.1.1.0/24 to its site in Rome. Observe that the two customers
have overlapping IP address space.
We will use the sample scenario to illustrate most of the concepts introduced in this chapter. The text
that describes and refers to the sample scenario will be framed into shaded boxes like the one that encloses
this paragraph. The configuration language is that of a leading router vendor and references can be found
in [9].
1 We are recently observing a similar convergence trend at layer 2 with Ethernet: consequently, in the last few years there has been
Table 1: Structure of the forwarding table in the “forwarding by network address” approach.
Figure 2: A label switching network (where labels are not swapped at each hop).
Table 2: Structure of the forwarding table in the “forwarding by label swapping” approach with per-interface
label scope.
Figure 3: A label switching network (where labels are swapped at each hop).
Table 3: Structure of the forwarding table in the “forwarding by label swapping” approach with per-router
label scope.
are represented with colors). Packets with a red label belong to the flow from router A to router B of Fig. 2.
If a packet with a red label enters interface 1 of router E, it will exit from interface 2 with the same label.
If the label switching technologies followed the approach of Fig. 2 they would have the advantage that
labels do not have to be changed at each hop. On the other hand, if they did they would have the big
drawback of requiring a centralized control of the assigned labels, as labels should be unique for the entire
network. Fig. 3 shows what actually happens in label switching networks, where labels are swapped at each
hop. This choice requires that labels are unique for each router or for each interface only and does not need
a centralized control. Fig. 4 illustrates the forwarding table of a router. Independent of whether labels are
swapped at each hop or not, the forwarding paths towards the same destination node typically form a tree
rooted at the destination node itself, even though this is not mandatory.
More formally, the operations performed by a label switching router can be summarized as follows.
When the packet arrives at the router, the router extracts (pops) the label from the header, looks the label
value up in its forwarding table, and finds (i) the egress interface the packet should be forwarded to, and
(ii) a new label to apply (push) to the packet.
A forwarding process based on labels rather than destination addresses poses challenges to the cor-
responding routing protocols. In fact, the instances of flow traversing the network might be much more
volatile than the addressing scheme used to identify their destinations. Before transmitting a new flow, a
route from its source to its destination has to be computed and a new label has to be assigned to each leg of
the route. As observed before, in order to facilitate the task of picking a new, unused, label, labels are not
required to be unique for the entire network but are required to be unique for each router or for each interface
only. This is why they have to be changed at each hop. Depending on whether labels have a per-interface
or per-router scope, the forwarding table is structured as in Table 2 or Table 3, respectively. Observe that
such a simple structure for forwarding tables allows efficient lookups (e.g., by using a hash table or a direct
access table).
Label switching is not a unique feature of MPLS and it is not necessarily implemented at the network
level of the protocol stack: other protocols, notably ATM and Frame Relay, traditionally adopt the same
Figure 4: A label switching network where the forwarding table of a router is shown.
Layer 3 IP
Layer 2.5 MPLS
Layer 2 Ethernet, Frame relay, ATM, PPP, etc
Layer 1 Physical layer
forwarding mechanism. Initially, the reason to prefer label switching was performance: looking up a label
value in the forwarding table was much faster than looking up an IP address. Besides the fact that labels
can take values in a much smaller range than IP addresses, label values can be looked up exactly, while IP
addresses need to be looked up by the longest matching prefix. However, modern routers use extremely
specialized hardware (e.g., content-addressable memories) and very efficient data structures (e.g., tries) to
implement their forwarding tables, in such a way that the performance gain of label switching over forward-
ing by destination address is now believed to be no longer an argument.
Figure 7: The evolution of the MPLS label stack as a packet traverses several routers that perfom random
push and pop operations.
• a ToS field (3 bits) which is used to discriminate different levels of quality of service (QoS) and to
carry explicit congestion notifications (ECN);
• a bottom-of-stack field (1 bit) which is set to 1 when the record is the last record in the stack; and
• a TTL field (8 bits) which is decremented at each hop, similarly to the TTL field in the IP header.
When an MPLS-enabled router receives a packet, it can perform three different operations: (i) push a
label onto a (possibly empty) stack, (ii) pop a label from the stack (possibly resulting in an empty stack),
or (iii) swap the top label of the stack, which can be seen as a pop operation followed by a push operation.
Figure 7 shows the evolution of the MPLS label stack as a packet traverses several routers that perform
random push and pop operations.
MPLS-VPN terminology uses specific names to distinguish routers that do not understand labels at all,
routers that push (or pop) labels, and routers that simply swap labels. Routers belonging to the first group are
called customer edge (CE) routers because they are not MPLS-enabled. Typically those are the customer’s
routers that need to be interconnected via an L3VPN. CE routers can only handle IP packets and are not
aware of the MPLS layer which is used to implement the VPN.
Routers belonging to the second group are called provider edge (PE) routers, or label edge routers
(LERs). They are placed at the edge of the MPLS backbone of the provider, have direct connectivity to the
CE routers, and act as the access point for the customer to the VPN. While they need to perform label swap
operations because they are part of the backbone, they spend most of their time pushing labels (when an IP
packet comes from a CE router) and popping labels (when an MPLS packet needs to be forwarded to a CE
router).
Routers belonging to the third group are called provider (P) routers, or label switching routers (LSRs).
They are in the core of the MPLS network. Since they do not interact directly with non-MPLS routers, they
Figure 8: Inside the provider’s infrastructure.
mainly perform label swapping operations in order to forward packets to other P or PE routers.
MPLS groups destinations into Forwarding Equivalence Classes (FEC). Packets that need to be for-
warded to the same CE using the same path and with the same quality of service belong to the same FEC.
Fig. 8 shows some details of the provider’s infrastructure of our scenario. It is both an MPLS network and
an IP network (it has an MPLS data plane and an IP data plane).
If we look at it from the MPLS point of view, we can distinguish CE, PE, and P routers. The small,
red routers placed at the customer premise in the corners of Fig. 8 are CE routers. CE routers are directly
attached to the blue routers at the edge of the provider premise, which are the PE routers (or LERs). Finally,
the grey routers in the core of the provider network are the P routers (or LSRs).
Since the provider network is also an IP network an IP address is given to the interfaces. To do this, our
provider exploits prefix 80.0.0.0/8. This prefix will not be announced outside the provider’s network. The
reason for the presence of label AS100 in the provider network will be explained soon.
The two CE routers serving Customer 1 are connected through a VPN called VPN1 (on the right side
of Fig. 8). The two CE routers serving Customer 2 are connected through a VPN called VPN2 (on the left
side).
Fig. 9 shows the loopback addresses assigned to the PEs of our example network. Also, we assume that
routers use OSPF to propagate reachability information of loopbacks of routers.
Configuring routers to fulfill Move 1 is straightforward. In our sample network, the configuration of
LER1 for Move 1 is as follows.
Figure 9: Loopbacks of PEs.
The first two lines assign an IP address to interface loopback0. The second pair of lines assign an IP
address to interface GigabitEthernet1/0 that connects LER1 with LSR1. The last two lines activate
OSPF protocol.
Fig. 10 shows the result of command show ip route performed on router LER1. Fig. 11 shows the
result of command show ip route performed on router LSR2. Command show ip route has the
effect of showing the control plane routing table of routers.
In order to force a more interesting routing in the following part of the example, we set OSPF weight
500 for a specific link, discouraging the use of that link by the IGP routing protocol, as shown in Fig. 12.
Fig. 13 shows a high-level illustration of how the BGP peerings with LER3 and LER2 can be used by LER1
to announce customer prefixes.
The first line starts the BGP configuration and states that the router belongs to AS100. Observe that all
the routers are supposed to belong to Autonomous System (AS) 100. This AS number will not be necessarily
propagated outside the provider’s network and is only needed to establish peerings between PEs.
The following lines specify the BGP peerings. The presence of the “vpnv4” address family identifies
LER2 and LER3 as MP-BGP neighbors of LER1.
It is extremely simple to configure a router to fulfill Move 3, because the LDP protocol can be safely run in
the default configuration, and enabling MPLS encapsulation on specific interfaces is a single command. The
configuration of LER1 for Move 3 is as simple as the following.
mpls label protocol ldp
interface GigabitEthernet1/0
ip address 80.1.1.1 255.255.255.252
mpls ip
Table 4: Structure of the forwarding table in the “forwarding by network address” approach with Virtual
Routing and Forwarding (VRF).
mapped to the correct VPN. A traditional IP data plane is unfit for this purpose since the IP address space of
customers can overlap. Hence, a PE router must be able to route packets based on both the IP address and the
specific VPN the packet belongs to. To accomplish this task, MPLS VPNs exploit a technique called Virtual
Routing and Forwarding (VRF) which allows a router to have multiple (virtual) routing tables, potentially
a separate virtual routing table for each network interface (either physical or logical). With this technique,
mapping a CE to the correct VPN is as easy as configuring the corresponding interface within a specific VRF
table. An MPLS inner label actually identifies a VRF instance.
One way to implement VRF while still maintaining a single forwarding table is using the ingress interface
as an additional input parameter in the forwarding table. In such an implementation, the organization of the
forwarding table of a router would be the one illustrated in Table 4. Observe that only the PE router needs
to support VRF. The CE router is configured with a plain eBGP configuration and is completely unaware of
the VRF implemented on the provider side.
Assigning an interface to a specific VRF instance is straightforward. In our sample network, we configure
router LER1 as follows.
interface GigabitEthernet2/0
ip vrf forwarding VPN1
ip address 10.0.0.1 255.255.255.0
interface GigabitEthernet3/0
ip vrf forwarding VPN2
ip address 193.1.1.1 255.255.255.0
Address 10.0.0.1 is the address assigned to the interface that connects LER1 to Customer 1, while
address 193.1.1.1 is assigned to the interface that connects LER1 to Customer 2.
Observe that, while a VPN-IP prefix uniquely identifies a destination, it provides no information about
the reachability of that destination. For this reason, MP-BGP messages associate VPN-IP prefixes with the
MPLS labels that should be used for forwarding.
ip vrf VPN1
rd 100:11
ip vrf VPN2
rd 100:22
Fig. 14 shows the output of command show ip bgp vpnv4 all on router LER1. This command
has the same effect of show ip bgp but it shows the routing entries related to IPv4 VPNs. In this case
the output highlights that LER1, in addition to its locally originated prefixes 10.0.0.0/24 with Route Distin-
guisher 100:11 and 193.1.1.0/24 with Route Distinguisher 100:22, knows two remote prefixes. Namely, it
knows 200.1.6.0/24 with Route Distinguisher 100:11 and 10.0.0.0/24 with Route Distinguisher 100:22.
Tagging IP prefixes with a VPN identifier is an easy solution, but it is suboptimal in a specific use case
which has seen increasing popularity recently: the so-called extranets. In its simple definition, an extranet
is simply a connection between two different VPNs that are guaranteed to have non-overlapping IP address
spaces. A realistic example might be a specific site of one customer that needs to connect to another specific
site of another customer. A naive implementation of extranets would define an ad-hoc VPN and assign it a
new RD value. However, this solution is undesirable because it creates multiple VPNs that have duplicate
entries, yielding a waste of router memory (to store the entries) and a waste of router’s CPU time (to process
update messages that are identical but for the RD value).
In order to overcome such limitations, MPLS decouples the concept of route distinguisher, which is
used to segregate the address space in multiple namespaces, from the concept of route target (RT) which is
another tag that is used to control which routes are imported in a given VPN and, similarly, which routes are
exported from a given VPN. The route target is transported by MP-BGP using extended communities. More
precisely, by exporting a route from a VPN we attach a user-defined RT community to all VPN-IP prefixes
belonging to that VPN. On the other hand, by importing a given RT into a VPN we accept that every route
having that RT value will be visible from the devices in that VPN.
Each VRF instance can be configured to import or export routes labelled with a specific Route Target value.
In our simple example, assuming that no extranet connectivity is required between Customer 1 and Customer
2, each VRF instance can simply import a single RT value, as the following configuration snippet of LER1
shows:
ip vrf VPN1
rd 100:11
route-target export 100:1000
route-target import 100:1000
ip vrf VPN2
rd 100:22
route-target export 100:2000
route-target import 100:2000
This means that all the prefixes of VPN1 announced via MP-BGP by LER1 to any other PE are tagged
with RT 100:1000. Also, any prefix that is tagged 100:1000 and is announced to LER1 via MP-BGP is
imported into the VRF of VPN1. The configuration for VPN2 is similar.
Route Targets provide network operators with the flexibility of leaking specific routes into specific VRF
instances, easing the deployment of extranets. Route Targets are transported in MP-BGP messages as ex-
tended BGP communities. For this reason, the configuration of MP-BGP peers needs to specify that the peer
supports extended communities (which are disabled by default).
router bgp 100
address-family vpnv4
neighbor 80.80.80.4 activate
neighbor 80.80.80.4 send-community both
neighbor 80.80.80.5 activate
neighbor 80.80.80.5 send-community both
exit-address-family
Figure 15: An MP-BGP signaling packet captured over the network.
To better understand the interplay between MP-BGP and the Route Targets, let us look at the content of an
MP-BGP packet captured in our network (see Fig. 15). Observe how the route target in the blue frame is
contained in the extended communities.
The announcements tells to the MP-BGP peer receiving it that the packets that will be received with the
inner MPLS label 24 (red frame in the picture) will refer to the specified route target and the specified route
distinguisher (green frame in the picture).
Figs. 16, 17, and 18 show the MPLS forwarding tables of some routers of our network.
3 This explanation assumes per-router label scope, which is the default for most router vendors. An alternative is per-interface label
scope, when the router can advertise different labels for each interface, which is used mostly on ATM interfaces.
Figure 17: The MPLS forwarding table of LSR1.
5 Advanced Topics
In this section we give more technical details about dynamic routing and connecting to the Internet, creat-
ing complex VPN topologies, and dealing with IP-specific features (e.g., MTU) that need extra care when
encapsulation is involved.
In our sample network, customer 1 would like to be able to create a new IP subnet in Rome, advertise the
new subnet to LER1 via an eBGP peering, and automatically make the customer site in Milan able to access
it. LER1 should receive the new route via eBGP, tag the route with the correct RD value, and advertise it in
MP-BGP. In order to do this, it suffices to configure an eBGP peering in the context of a VRF instance, as
the following configuration snippet of LER1 shows.
Figure 25: A configuration where a single customer has four sites: Site 2, 3, and 4 are only allowed to
exchange traffic with Site 1 in Rome.
A suitable use of Route Distinguishers and Route Targets allows sophisticated configurations like the one
shown in Fig. 25 where Rome is the main site and Turin, Milan, and Naples are the peripheral sites.
We can choose Route Distinguisher 100:1 for all four sites and split the customer VPN into three VPNs.
VPN1 is used to connect Turin with Rome, VPN2 is used to connect Milan with Rome, and VPN3 is used
to connect Naples with Rome.
For each VPN we define a distinct Route Target:
VPN1: 100:1000
VPN2: 100:2000
VPN3: 100:3000
The configuration of peripheral sites, like for example Turin, is as follows:
ip vrf siteTurin
rd 100:1
route-target import 100:1000
route target export 100:1000
In this way Rome imports all the Route Targets and exports all the Route Targets and is hence able to
communicate with all sites. On the other hand a peripheral site like Turin imports and exports Route targets
only with respect to Rome and hence is able to communicate with Rome only.
6 Summary
6.1 Strengths of MPLS VPNs
After having described the details of MPLS VPNs, we are able to discuss the extent to which the goals that
we stated in Section 1.2 are met.
By using Route Distinguishers and label stacks within the provider cloud, customers can retain their IP
address plan and the traffic belonging to different customers is properly segregated. Moreover, the configu-
ration of CE routers is completely unaware of MPLS-specific details. Since MPLS transports QoS informa-
tion by copying the ToS field from the IP header, MPLS VPNs can in principle provide different forwarding
treatment to different packets. However, the architecture of MPLS VPNs does not inherently support QoS,
because LSPs are simply built from the underlying IP plane. Other mechanisms (e.g., [4]) can be employed
to compute LSPs based on QoS features.
Providers are able to keep the configuration in the core of the network extremely simple and scalable: in
fact, the configuration of P routers does not depend on the number of deployed VPNs. Since the backbone is
only concerned with transporting packets from a PE to another, the sizeof the forwarding table of P routers
only depends on the number of PEs and does not depend on the number of prefixes of VPNs. Configuring a
new VPN implies modifying the configuration of the PE routers that are directly connected to the customer’s
sites. Moreover, such a configuration boils down to assigning a unique RD and RT and establishing eBGP
peerings with the CE routers.
• BGP know-how is needed to configure the customer CE. As discussed in Section 5.1, this sometimes
forces the carrier to provide also CE management.
• Customer CEs need to support BGP if eBGP peering are established with the PEs. This may not be
the case for cheap entry-level router models. As an alternative, BGP can be replaced by static routes
4 Observe that when the TTL in the MPLS header reaches 0 (e.g. in a traceroute), a P router does not know how to send the
corresponding ICMP error back to the sender, because it lacks information about VPNs. A naive yet effective solution is to generate
the ICMP packet and label-switch it to the egress PE anyway. The egress PE (which has information about VPNs) will then send the
ICMP packet back to the sender.
configured on PEs, sacrificing part of the flexibility that a dynamic routing protocol between CEs and
PEs provides.
• The P in the VPN acronym stands for “Private”. However, MPLS VPNs are only private at routing
level: no authentication, confidentiality, or integrity is provided by the architecture. For instance, the
provider can inspect all customers’ traffic in plaintext. Even worse, since the separation is enforced at
the routing level, it turns out that the ability of guaranteeing isolation within the same VPN actually
depends on the provider’s topology [6].
• The basic MPLS architecture lacks support for quality of service. QoS can usually be offered on top of
MPLS, e.g., by establishing LSPs which reflect traffic engineering policies. However, adding traffic
engineering and quality of service support comes at the cost of keeping more state in the network,
hence posing scalability concerns [12, 19].
• In most configurations, the customer and the provider share the job of maintaining a network, which
potentially complicates debugging routing and connectivity problems.
Acknowledgments
We thank the anonymous reviewers for constructive criticism and for suggestions that helped us improve
both the content and the presentation of this chapter. We also thank Mario Cola and Massimo Rimondini for
their help and friendship.
References
[1] A NDERSSON , L., M INEI , I., AND T HOMAS , B. LDP Specification. RFC 5036, 2007.
[2] A NDERSSON , L., AND ROSEN , E. Framework for Layer 2 Virtual Private Networks (L2VPNs). RFC
4664, 2006.
[3] AUGUSTYN , W., AND S ERBEST, Y. Service Requirements for Layer 2 Provider-Provisioned Virtual
Private Networks. RFC 4665, 2006.
[4] AWDUCHE , D., B ERGER , L., G AN , D., L I , T., S RINIVASAN , V., AND S WALLOW, G. RSVP-TE:
Extensions to RSVP for LSP Tunnels. RFC 3209, Dec. 2001.
[5] BATES , T., C HANDRA , R., K ATZ , D., AND R EKHTER , Y. Multiprotocol Extensions for BGP-4. RFC
4760, 2007.
[6] B USH , R., AND G RIFFIN , T. G. Integrity for virtual private routed networks. In In Proc. IEEE
INFOCOM (2003).
[7] C ALLON , R., AND S UZUKI , M. A Framework for Layer 3 Provider-Provisioned Virtual Private Net-
works. RFC 4110, 2005.
[8] C ARUGI , M., AND M C DYSAN , D. Service Requirements for Layer 3 Provider-Provisioned Virtual
Private Networks. RFC 4031, 2005.
[9] D E G HEIN , L. MPLS Fundamentals. Cisco Press, Dec. 2006.
[10] F ULLER , V., AND L I , T. Classless Inter-domain Routing (CIDR): The Internet Address Assignment
and Aggregation Plan. RFC 4632, 2006.
[11] M INEI , I., AND L UCEK , J. MPLS-Enabled Applications: Emerging Developments and New Technolo-
gies. Wiley, Oct. 2005.
[12] M INEY, I. Scaling considerations in MPLS networks. Nanog 35, 2005.
[13] M OHAPATRA , P., AND ROSEN , E. The BGP Encapsulation Subsequent Address Family Identifier
(SAFI) and the BGP Tunnel Encapsulation Attribute. RFC 5512, 2009.
[14] ROSEN , E., AND R EKHTER , Y. BGP/MPLS IP Virtual Private Networks (VPNs). RFC 4364, 2006.
[15] ROSEN , E., V ISWANATHAN , A., AND C ALLON , R. Multiprotocol Label Switching Architecture.
RFC 3031, 2001.
[16] T. W ORSTER , Y. R., AND ROSEN , E. Encapsulating MPLS in IP or Generic Routing Encapsulation
(GRE). RFC 4023, 2005.
[17] T OWNSLEY, M. MPLS over various IP tunnels. Nanog 30, 2004.
[18] VARGHESE , G. Network Algorithmics: An Interdisciplinary Approach to Designing Fast Networked
Devices (The Morgan Kaufmann Series in Networking). Morgan Kaufmann, Dec. 2004.
[19] YASUKAWA , S., FARREL , A., AND KOMOLAFE , O. An Analysis of Scaling Issues in MPLS-TE Core
Networks. RFC 5439, Feb. 2009.