One document matched: draft-heinanen-mpls-vpn-00.txt
Internet Engineering Task Force Juha Heinanen
INTERNET DRAFT Telia Finland, Inc.
Expires June 1998 December 1997
VPN support for MPLS
<draft-heinanen-mpls-vpn-00.txt>
Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as ``work in progress.''
To learn the current status of any Internet-Draft, please check the
``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
ftp.isi.edu (US West Coast).
Abstract
This document discusses the need to include support for Virtual
Private Networks in MPLS and gives a high-level description on how it
can be accomplished.
1. Introduction
The Framework for MPLS document [1] contains a long list of benefits
that MPLS has as compared to conventional router backbones. For some
reason it doesn't include easy support for Virtual Private Networks
(VPNs) as one of them. Either VPN support is one of the best kept
secrets of the MPLS design team or the authors of the framework
document have not considered VPN support as an issue worth
mentioning.
Intranets are one of the fast growing ways to deploy the TCP/IP
protocol suite. In order to provide Intranet services to its (best
paying) customers, ISPs must be able to address the problems of
security and use of non-unique, private IP addresses [2]. It turns
Heinanen VPN Support for MPLS [Page 1]
INTERNET DRAFT December, 1997
out that MPLS, due to its Layer 2, virtual circuit nature, provides a
simple and efficient solution to these important problems.
In conventional router backbones, IP packets are forwarded based on
destination IP addresses, which must be unique within the backbone.
It would not help to have a separate forwarding table for each VPN,
since there is no VPN identifier in the IP packet header that could
be used to select the correct forwarding table. MPLS backbone
routers, on the other hand, can benefit from a separate routing table
per VPN, since the tables are not used to forward IP packets, but to
control label distribution. In MPLS backbones it is enough that the
destination addresses are unique at the ingress LSRs, which attach
the labels to the IP packets. This is the key observation that
allows efficient implementation of VPNs in the MPLS environment.
The following sections discuss various ways to support VPNs over an
MPLS backbone. It is assumed that customer VPN sites communicate
with the MPLS backbone either using static routes and LDP or BGP and
that within the MPLS backbone either OSPF and LDP or IBGP are used to
distribute the reachability and label binding information.
2. Virtual Private Networks (VPNs)
In this document the term VPN is used to denote a set of customer
sites that connect to the MPLS backbone and form a Closed User Group
(CUG). A site may advertise a set of "streams" [3] to the other
members of a CUG. This allows the other CUG members (and only them)
to send IP packets to those streams. The advertised streams need
only be unique within the CUG(s) to which the site belongs to.
A site can at the same time be a member of more than one CUG and also
be connected to the public Internet. In the latter case, the site
advertises (some of) its streams without associating them with any
CUG. The public Internet can thus be considered to be a special CUG
that does not have any CUG identification.
CUGs are identified within MPLS backbones using unique CUG
identifiers. A CUG identifier can be constructed, for example, by
appending an integer that uniquely identifies a CUG with a single
MPLS backbone to an IP address owned by that backbone. Between a
customer site and an MPLS backbone, a CUG can be identified using a
CUG index, which is an integer that uniquely distinguishes the CUG
among all CUGs defined over that link.
3. Distribution of VPN bindings to and from the MPLS backbone
When a customer site is connected to an MPLS backbone, the
corresponding interface of the backbone LSR is configured with a list
Heinanen VPN Support for MPLS [Page 2]
INTERNET DRAFT December, 1997
of CUG identifiers that correspond to the CUGs that the customer site
belongs to and with a mapping that describes the correspondence
between these CUG identifiers and the CUG indexes used over the link
between the customer LSR and the backbone LSR.
IP routing between the customer site and the MPLS backbone is assumed
to be based either on static routes or BGP.
If static routes are used, then the Label Distribution Protocol (LDP)
[3] needs to be turned on between the customer LSR and the backbone
LSR for advertisement of the label bindings. In order to support
VPNs, the LDP advertisement message need to be extended with the CUG
index so that the two LSRs know which VPN an advertisement belongs
to. Since the LDP advertisements also carry stream information,
manual configuration of static routes in the two LSRs would not be
necessarily needed.
If BGP is used between the customer site and the MPLS backbone, then
the label bindings are included in BGP advertisements by extending
BGP with label and CUG index attributes. The LDP would thus not need
to be turned on between the customer LSR and the backbone LSR.
When the above configuration tasks have been completed, the customer
LSR and backbone LSR use either LDP or BGP to inform each other what
streams are available for each VPN and what labels have been bound to
them. The backbone LSR checks that the customer site really is a
member of the VPN before it accepts a label binding from the customer
LSR. Correspondingly, before a backbone LSR distributes a label
binding to a customer LSR, it checks to see that the customer site is
really configured to belong to the same VPN as the advertised label
binding.
If the customer site belongs to only one VPN, it should not be
bothered with the knowledge of the VPNs. In that case, the only VPN
is configured as the default VPN to the corresponding interface of
the backbone LSR and the two LSRs don't include a CUG index in their
advertisements to each other.
4. Distribution of VPN bindings within the MPLS backbone
When a backbone LSR learns a label binding from a customer site, it
must somehow make the stream (and a corresponding label binding)
known to the other CUG members. This chapter covers the cases where
either OSPF and LDP or IBGP is used to distribute the label bindings.
If the MPLS backbone is using OSPF and LDP to distribute the routing
information and label bindings, the backbone LSR that learns a
binding from a customer LSR injects the stream together with the
Heinanen VPN Support for MPLS [Page 3]
INTERNET DRAFT December, 1997
corresponding VPN identifier to its OSPF process. The VPN identifier
allows the OSPF process to construct for each VPN its own routing
table. This is needed, because the VPNs may use overlapping, private
IP addresses. How the VPN identifier is associated with the stream
in the OSPF advertisement is left for further study. One possibility
is to use the Opaque LSA option [4].
In addition to injecting the stream to its OSPF process, the backbone
LSR also advertises a corresponding label binding to its peers within
the MPLS backbone. This advertisement is otherwise normal except
that also the CUG identifier is included in the advertisement
message.
If the MPLS backbone is using IBGP to distribute the label bindings,
then it suffices that a backbone LSR that learned a binding from a
customer LSR injects the binding together with the CUG identifier to
its IBGP process. This requires that BGP is extended with two
attributes: one for the CUG identifier and one for the label. The
details of these extensions are left for further study.
5. Security considerations
As shown in this document, MPLS can be used to implement secure VPNs
over a single MPLS backbone where the VPNs are fully isolated from
each other in terms of both visibility and packet forwarding. The
security is accomplished by manually associating a set of unique CUG
identifiers to the customer interfaces of the backbone LSRs.
The CUG identifiers limit the distribution of both reachability and
label information. If a customer site has not received a label for a
particular destination, it has no means to send packets to that
destination provided that the LSRs assign the labels so that they are
unique per interface, not per LSR.
Manual configuration of the CUG identifiers is always subject to
human error. However, configuration of a single CUG identifier once
per interface is a much simpler process than configuration of a list
of IP address prefixes, since the latter need to be modified each
time a new customer site is added to or removed from the VPN.
6. Summary
This document has argued that VPN support should be an essential part
of the MPLS protocol. Easy and efficient support for VPNs is seen as
the killer application for MPLS without which the whole MPLS effort
is hard to justify. It is therefore suggested that the MPLS working
group incorporates VPN support in its current work plan.
Heinanen VPN Support for MPLS [Page 4]
INTERNET DRAFT December, 1997
References
[1] Callon, R., et al, "A Framework for Multiprotocol Label
Switching". draft-ietf-mpls-framework-02.txt.
[2] Rekhter, Y., et al, "Address Allocation for Private Internets".
RFC 1918, Feb 1996.
[3] Feldman, Nancy, et al, "LDP Specification". draft-feldman-ldp-
spec-00.txt.
[4] Coltun, Rob, "The OSPF Opaque LSA Option". draft-ietf-ospf-
opaque-02.txt.
Acknowledgements
I would like to thank Rob Coltun for listening to my initial ideas
and Yakov Rekhter for pointing out the importance of IBGP.
Author Information
Juha Heinanen
Telia Finland, Inc.
Myyrmaentie 2
01600 VANTAA
Finland
Phone +358 303 944 808
Email jh@telia.fi
Heinanen VPN Support for MPLS [Page 5]
| PAFTECH AB 2003-2026 | 2026-04-22 15:19:16 |