One document matched: draft-kompella-ccc-00.txt
Network Working Group K. Kompella
Internet-Draft Juniper Networks
Expires: August 13, 2005 J. Ospina
S. Kamdar
Cingular Wireless
J. Richmond
Electric Lightwave
G. Miller
MCI
February 9, 2005
Circuit Cross-Connect
draft-kompella-ccc-00
Status of this Memo
This document is an Internet-Draft and is subject to all provisions
of Section 3 of RFC 3667. By submitting this Internet-Draft, each
author represents that any applicable patent or other IPR claims of
which he or she is aware have been or will be disclosed, and any of
which he or she become aware will be disclosed, in accordance with
RFC 3668.
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."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on August 13, 2005.
Copyright Notice
Copyright (C) The Internet Society (2005).
Abstract
Kompella, et al. Expires August 13, 2005 [Page 1]
Internet-Draft Circuit Cross-Connect February 2005
Circuit Cross-Connect (CCC) was the ground-breaking design and
implementation of the transport of Layer 2 frames over Multi-Protocol
Label Switching (MPLS), which is now seen as an important application
of MPLS. Thus, documenting CCC is important from a historical point
of view. Furthermore, CCC is still in production in many networks,
providing yet another reason to document it. It is hoped that those
interested in this area will see where it started, how far we have
come, and the strengths and weaknesses of this particular approach,
and thereby gain some perspective of the area. If in the process
they get new insights for the future development in this area, that
is a bonus.
It should be emphasized that there is no intent to propose this
document as a rival standard to the work being done in the PWE3 and
L2VPN Working Groups.
Kompella, et al. Expires August 13, 2005 [Page 2]
Internet-Draft Circuit Cross-Connect February 2005
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. History and Motivation . . . . . . . . . . . . . . . . . . . . 5
3. Design and Implementation . . . . . . . . . . . . . . . . . . 7
3.1 Control Plane . . . . . . . . . . . . . . . . . . . . . . 7
3.1.1 Actions on the PE . . . . . . . . . . . . . . . . . . 8
3.1.2 Protocol Changes . . . . . . . . . . . . . . . . . . . 9
3.1.3 Fault Reporting . . . . . . . . . . . . . . . . . . . 9
3.2 Data Plane . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.1 Frame Relay . . . . . . . . . . . . . . . . . . . . . 10
3.2.2 PPP, HDLC and Ethernet . . . . . . . . . . . . . . . . 11
3.2.3 ATM AAL/5 PDUs . . . . . . . . . . . . . . . . . . . . 12
3.2.4 ATM Cells . . . . . . . . . . . . . . . . . . . . . . 13
4. Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.1 Enhancements to CCC . . . . . . . . . . . . . . . . . . . 15
4.2 Operational Issues . . . . . . . . . . . . . . . . . . . . 17
4.3 Provisioning Model . . . . . . . . . . . . . . . . . . . . 18
4.4 Security . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.4.1 Configuration . . . . . . . . . . . . . . . . . . . . 19
4.4.2 Data Plane . . . . . . . . . . . . . . . . . . . . . . 20
5. Case Studies . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.1 CCC in Mobile Operator Networks . . . . . . . . . . . . . 21
5.2 CCC in Carrier Networks for ATM Trunk Applications . . . . 22
5.3 CCC as a Core Convergence Technology in Carrier
Networks . . . . . . . . . . . . . . . . . . . . . . . . . 23
6. Security Considerations . . . . . . . . . . . . . . . . . . . 25
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.1 Normative References . . . . . . . . . . . . . . . . . . . 26
7.2 Informative References . . . . . . . . . . . . . . . . . . 26
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 26
Intellectual Property and Copyright Statements . . . . . . . . 28
Kompella, et al. Expires August 13, 2005 [Page 3]
Internet-Draft Circuit Cross-Connect February 2005
1. Introduction
An important application of MPLS is the "convergence" of Layer 2
networks, i.e., a means of transporting Layer 2 frames over an MPLS
infrastructure. Circuit Cross-Connect (CCC) is the first
instantiation of this technology that was deployed in production
networks; as such, it is important to document the design and
implementation of CCC.
Being an early implementation of the idea of Layer 2 convergence over
MPLS as well as an early MPLS application, CCC didn't have the
benefit of many techniques that today are taken for granted, for
instance, label stacking. To understand this, and other aspects of
the design of CCC, it is useful to review the intended application of
CCC. Section 2 covers the history and motivation of CCC. Section 3
describes the design and implementation details of CCC. Section 4 is
a discussion of the strengths and weaknesses of CCC, and how more
recent progress in the PWE3 and L2VPN WGs addresses some of the
weaknesses. Finally, Section 5 provides several case studies of CCC
deployments in production networks, and feedback on its
effectiveness.
Kompella, et al. Expires August 13, 2005 [Page 4]
Internet-Draft Circuit Cross-Connect February 2005
2. History and Motivation
CCC was first conceived in 1998 by Tony Li, brainstorming on the
relationship on the "connection-orientedness" of RSVP-TE-based MPLS
with more traditional connection-oriented technologies, such as ATM
and Frame Relay. The impetus to translate this musing into
deployable code came from a service provider who wanted to migrate
from an ATM backbone to an MPLS backbone. Most of the access
circuits into the backbone were Frame Relay and ATM virtual circuits
carrying IP traffic intended to be terminated and forwarded as IP
packets. These posed no problem for the migration. However, a small
number of important ATM access circuits were provisioned across the
ATM backbone ("edge-to-edge"); these had to be transported *as ATM*,
not terminated and forwarded as IP.
CCC was the solution Tony Li, Der-Hwa Gan and Kireeti Kompella came
up with. Normally, a router on receiving ATM cells would first
reassemble them into ATM AAL5 frames. The router would then take
note of the incoming Virtual Circuit (VC) identifier, and then parse
the Layer 2 header (usually SNAP-encoded) to determine the type of
Layer 3 payload being carried. If the frame is an IP packet, then
information from the IP header would be extracted so as to forward
the packet.
For the case of Layer 2 transport, what was proposed instead is that
the re-assembled ATM frames be transported as MPLS packets, without
regard to the contents of the IP header, nor indeed the type of Layer
3 header. Each ATM VC maps one-to-one to an RSVP-TE label-switched
path (LSP) as follows. The ingress label-switching router (LSR)
receives cells from the ATM network, assemble these into an ATM
frame, modifying it as needed, and then encapsulate it within an MPLS
packet. The egress LSR unpacks the ATM frame from the MPLS packet,
and re-constitute the ATM frame. Then, the egress LSR segments the
frame into cells, and forward these to the ATM network. In the core
of the network, the MPLS packets containing ATM frames are treated as
any other MPLS packets, i.e., they are simply label switched.
The net result is that the backbone can be pure MPLS, which was the
desired outcome. Any ATM (or Frame Relay) VCs that were provisioned
edge-to-edge as a native Layer 2 connection is mapped to MPLS. The
intelligence to do this rested solely with the edge LSRs (or LERs);
transit LSRs had no need to parse or forward ATM cells or frames.
It was visualized at the time that this technique would only be used
for a small number of VCs network-wide: a few tens to a few hundreds.
This has indeed been borne out in some scenarios, but as the idea
caught on, it became evident that the CCC approach had scaling issues
if thousands or tens of thousands of VCs had to be so transported.
Kompella, et al. Expires August 13, 2005 [Page 5]
Internet-Draft Circuit Cross-Connect February 2005
Nonetheless, the basic idea was immensely appealing, leading to
serious effort to address the scaling and other issues.
In any case, CCC as proposed satisfied the requirements of the
service provider. Kompella worked on a more detailed design and then
an implementation of CCC. Support for the transport of Frame Relay,
PPP and HDLC was part of JunOS 3.2, released in March 1999.
Subsequently, several enhancements were released, most notably, the
transport of ATM AAL/5 PDUs (February 2001), individual ATM cells
(May 2001) and Ethernet frames (May 2001). Another significant
milestone was the notion of Translational Cross-Connect (TCC), which
allowed connections between unlike media (e.g., ATM to Ethernet),
released in February 2002.
Kompella, et al. Expires August 13, 2005 [Page 6]
Internet-Draft Circuit Cross-Connect February 2005
3. Design and Implementation
We will use the termninology defined in [2] and other places; the
figure below is also taken from [2], with some modifications.
|<-------------- Emulated Service ---------------->|
| |
| |
V +----+ +----+ V
+-----+ AC1 | PE1|==================| PE2| AC1' +-----+
| |----------|....... CCC Tunnel 1 .......|----------| |
| CE1 | | | | | | CE2 |
| |----------|....... CCC Tunnel 2 .......|----------| |
+-----+ ^ AC2 | |==================| | AC2' ^ +-----+
^ | +----+ +----+ | ^
| | Provider Edge 1 Provider Edge 2 | |
| | | |
Customer | | Customer
Edge 1 | | Edge 2
| |
| |
native service native service
AC Attachment Circuit
CE Customer Edge device
PE Provider Edge device
Figure 1: CCC reference model
There are two main aspects to the design of CCC:
control plane: how a given AC is associated with LSPs at the ingress
and egress LSRs, and how the ingress and egress synchronize the
connection; and
data plane: how a AC (for each Layer 2 type) is encapsulated inside
MPLS, and what modifications (if any) are made at the ingress and
egress LSRs.
3.1 Control Plane
At the time that CCC was developed, only unidirectional LSPs were
defined in the protocol specifications; thus this was the approach
taken for CCC. (To date, this approach has been retained by all
mechanisms for the transport of Layer 2 circuits over MPLS.) This
meant that two RSVP-TE LSPs were needed for each CCC connection, a
"transmit" LSP to accept Layer 2 packets arriving at the LSR, to be
encapsulated in MPLS and sent to the remote PE; and a "receive" LSP
to deliver MPLS-encapsulated Layer 2 frames, to be re-constituted and
sent to the Layer 2 network. Note that from the point of view of the
Kompella, et al. Expires August 13, 2005 [Page 7]
Internet-Draft Circuit Cross-Connect February 2005
other end of the CCC connection, the roles of transmit and receive
LSPs are reversed.
The association of an AC to a transmit and receive LSP was done by
explicit provisioning on the PEs, using the following configuration
stanza:
attachment circuit: <subinterface>
transmit LSP: <name of transmit LSP>
receive LSP: <name of receive LSP>
This instructed the PE to splice the subinterface (i.e., virtual
circuit) to the named transmit and receive LSPs.
The transmit and receive LSPs were signaled using RSVP-TE ([1]).
There were two reasons for this. The first reason was that between a
given pair of LSRs, any number of independent RSVP-TE LSPs can be
defined and identified, whereas with LDP there can only be one LSP
between a pair of LSRs, and even if there were several, there is no
easy way of distinguishing them. The second was RSVP-TE offered many
features that were deemed important for carrying Layer 2 traffic,
such as traffic engineering ([3]), call admission control and fast
reroute ([7]).
The choice to identify transmit and receive LSPs by name was dictated
by usability. RSVP-TE LSPs were identified by name in the
configuration, and so using this name seemed the most user-friendly
approach. However, this simple approach had a drawback: if several
LSPs with the same name (say "foo") terminated at a given LSR, and on
that LSR, a connection was defined with receive LSP named foo, there
was no way to disambiguate among all the LSPs named foo. However,
while this problem was solvable (e.g., by using RSVP sessions as
identifiers), the result would not be human-readable, and this idea
was discarded. In practice, using LSP names has not been an issue.
In fact, as can be seen in the case studies below, using LSP names
can be a benefit, allowing one to quickly and easily identify the
LSPs transporting a given circuit.
3.1.1 Actions on the PE
A PE on which a configuration stanza like the one above is present
must perform the following four actions:
1. signal and set up the transmit LSP (say with label T);
2. check whether it is the egress for an LSP whose name matches the
receive LSP name (and also to make sure such an LSP is given a
real label R, not an implicit or explicit null);
3. check that the given subinterface exists and is up;
4. if the above three steps succeed, establish the cross-connection.
This involves:
Kompella, et al. Expires August 13, 2005 [Page 8]
Internet-Draft Circuit Cross-Connect February 2005
1. instructing the forwarding plane to take the Layer 2 frames
or cells received on the subinterface, modify them as
explained in Section 3.2, push the transmit label T, and
encapsulate the result as an MPLS packet; and
2. instructing the forwarding plane that for packets received on
the receive LSP (i.e., with label R), the label should be
popped, the packet modified as in Section 3.2 and the result
forwarded out the subinterface.
3.1.2 Protocol Changes
When CCC was first implemented, there was only one minor change to
the RSVP-TE implementation. Typically, the egress LSR of an RSVP-TE
LSP sent back either an implcit or explicit null to its upstream
neighbor. The change made (only to the implementation, not to the
protocol specification) was that the egress of a RSVP-TE LSP that was
a receive LSP of some CCC connection had to send back a "real" label
so that the connection could be established in the data plane. (The
reason a real label is needed (as opposed to an explicit or implicit
null label) is to identify packets as belonging to the receive LSP.)
In later implementations, though, a new (undocumented) RSVP object
was introduced. This object (among other things) allowed a PE to
signal the local state of an AC to the remote end, for the purposes
of Operations, Administration and Management and fault reporting.
These are important to CCC because they are vital functions of the
Layer 2 services that CCC was designed to emulate.
3.1.3 Fault Reporting
CCC's successful deployment brought with it several new requirements.
Primary among them was a means of debugging CCC connections. There
were already commands that one could run on a PE to determine the
local status of a connection. However, an administrator could not
determine the status of the remote end of the connection without
logging in to the other PE. More significantly, the CE devices
needed to know what the overall circuit status was, either to report
it or to take corrective action.
Fault reporting devolved into two components: one or both of the
unidirectional RSVP-TE LSP being down, and an attachment circuit at
either end being down. Information about the former was available to
both PEs, as this was part of the RSVP-TE protocol. Information
about the attachment circuit, however, depended on the Layer 2
encapsulation.
For PPP and HDLC, keepalives were sent from CE to CE. Thus, if an
attachment circuit were to go down, the other CE would find out when
Kompella, et al. Expires August 13, 2005 [Page 9]
Internet-Draft Circuit Cross-Connect February 2005
keepalives timed out. This was acceptable if a detection time of the
order of tens of seconds was tolerable; however, in some
circumstances, a faster mechanism was required.
For Frame Relay and ATM, keepalives (such as LMI or ILMI) were
generally terminated on the PE. This meant that, unlike PPP and
HDLC, the remote CE could not find out the status of the other
attachment circuit. The solution was that a PE, on learning that its
local attachment circuit (or the link) was down, signals this through
RSVP-TE to its peer. This also solved the problem of quicker
notification for PPP attachment circuits in the case where the link
failed. A PE generally discovered a link failure very quickly; it
could then signal this to the other PE, which in turn relays it to
the remote CE, instead of the remote CE having to wait for keepalives
to time out.
3.2 Data Plane
In order to carry Layer 2 frames across the MPLS backbone, a format
had to be defined for these frames when encapsulated in MPLS. The
format was decided based on the requirements at both ends. As these
requirements varied with the type of Layer 2 frame, each Layer 2 had
its own format. In what follows, the processing required for each
type of Layer 2 AC is detailed for ingress (i.e., before entering the
transmit LSP) and egress (i.e., after leaving the receive LSP).
3.2.1 Frame Relay
On ingress, Frame Relay PDUs belonging to the CCC sub-interface are
identified by the DLCI they carry. The DLCI is then mapped either
directly or via a cookie to the outgoing transmit LSP. The DLCI is
then stripped from the Frame Relay PDU, the corresponding label
pushed on the PDU, and the Layer 2 header appropriate to the outgoing
MPLS interface put on the packet. Note that in so doing, some
information in the DLCI (such as the FECN/BECN and DE bits) is
discarded.
Pictorially:
Kompella, et al. Expires August 13, 2005 [Page 10]
Internet-Draft Circuit Cross-Connect February 2005
+------+------------+---------------+
| DLCI | NLPID/SNAP | Layer 3 frame |
+------+------------+---------------+
| \ /
| --------------------------
| |
| |
| -------------
V |
cookie -- mapping -- |
| |
| |
V v
+-----------+-------+--------------------+
| L2 header | label | Frame without DLCI |
+-----------+-------+--------------------+
Figure 2: Frame Relay PDUs Encapsulated as CCC
At the egress PE, an MPLS packet arrives with the label allocated by
the egress PE for the receive LSP for the connection. The egress PE
then maps the label into the appropriate DLCI for the egress Frame
Relay subinterface and pop the L2 header and label. Then the egress
DLCI is prepended to the remainder of the frame, with zeros used for
the control bits, thus re-constituting an entire Frame Relay PDU.
Note that the egress DLCI need not be the same as the ingress DLCI;
thus the CCC connection acts exactly as a Frame Relay switch would
for the DLCI, i.e., switching an ingress DLCI on the ingress port to
a possibly different egress DLCI on an egress port.
There is a variant of Frame Relay CCC called "Frame Relay port mode".
In this mode, all Frame Relay traffic except that on DLCI 0 and DLCI
1023 (which are special DLCIs carrying control information) are
mapped to a single transmit LSP. In this mode, the DLCI is not
stripped on ingress, nor added at egress. The two modes have
different characteristics. The 'normal' Frame Relay mode allows
greater flexibility, since each DLCI can go to a different
destination PE and port. Also, DLCI switching is possible. Port
mode, on the other hand, requires less configuration and a single
pair of LSPs. DLCI switching at egress is not possible with port
mode.
3.2.2 PPP, HDLC and Ethernet
For PPP, HDLC and Ethernet, a CCC connection maps all traffic on a
physical port to a transmit LSP. On ingress, all framing information
is removed from the received frame. For PPP and HDLC, this includes
flags, the Frame Checksum and bit or byte stuffing. For Ethernet,
Kompella, et al. Expires August 13, 2005 [Page 11]
Internet-Draft Circuit Cross-Connect February 2005
this includes the inter-packet gap, the preamble, the Frame Checksum
and possible pad octets. The resulting Layer 2 PDU is mapped by port
number to a transmit label.
Pictorially:
+------------------------------------------+
port | Layer 2 PDU, without framing information |
num +------------------------------------------+
| \ /
| ----------------------------------------
| |
| |
| -------
V |
mapping ------------- |
| |
| |
V v
+-----------+-------+--------------------+
| L2 header | label | Layer 2 PDU |
+-----------+-------+--------------------+
Figure 3: Frame Relay PDUs Encapsulated as CCC
At the egress PE, an MPLS packet arriving with the label allocated by
the egress PE for the receive LSP for the connection is mapped to the
appropriate egress port for the connection. The L2 header and label
are removed and the frame is sent out the egress port. Framing bits
and bytes are added in the process of transmission.
A variant of Ethernet allows one to partition an Ethernet port into
subinterfaces by Virtual LAN (VLAN) identifiers. The operation is
largely the same as for non-VLAN Ethernet. The only difference is
that on ingress, the mapping to a transmit label is based on
<physical port number + VLAN ID> instead of just physical port
number.
3.2.3 ATM AAL/5 PDUs
On ingress, ATM cells belonging to a VC carrying AAL/5 data are first
re-assembled into a Protocol Data Unit (PDU). The PDU contains only
the data within the cells; there is also an external cookie that
identifies the VC (or equivalently, the subinterface). When an
entire PDU is available, the cookie (i.e., the subinterface) is
mapped to the outgoing transmit LSP, the corresponding label pushed
on the PDU, and the Layer 2 header appropriate to the outgoing MPLS
interface put on the packet. Pictorially:
Kompella, et al. Expires August 13, 2005 [Page 12]
Internet-Draft Circuit Cross-Connect February 2005
cell cell cell cell cell cell cell cell
header data header data header data header data
+----+------+ +----+------+ +----+------+ +----+------+
|VC1 | | |VC1 | | ... |VC1 | | |VC1 | |
+----+------+ +----+------+ +----+------+ +----+------+
| \ / \ / \ / \ /
| ---- ---- ---- ----
| | | | |
| | | | |
| ------------- ---- ------ -----------
V | | | |
cookie -- mapping -- | | | |
| --- | | -----
| | | | |
V v v v v
+-----------+-------+------- ... -------+
| L2 header | label | ATM AAL/5 PDU |
+-----------+-------+------- ... -------+
Figure 4: ATM AAL/5 PDUs Encapsulated as CCC
At the egress PE, an MPLS packet arrives with the label allocated by
the egress PE for the receive LSP for the connection. The egress PE
then maps the label into the appropriate VC for the egress ATM
subinterface, pop the L2 header and label, and segment the AAL/5 PDU
into ATM cells. On each cell, it prepends an ATM cell header with
the egress VC. Note that the egress VC need not be the same as the
ingress VC; thus the CCC connection acts exactly as an ATM switch
would for the VC, i.e., cell-switching an ingress VC on the ingress
port to a possibly different egress VC on an egress port.
3.2.4 ATM Cells
In ATM cell mode, a CCC connection takes one or more cells, all
belonging to a single VC (or VP, for VP-based cell-mode switching),
modifies the ATM header, and encapsulates the ATM cell with modified
header as MPLS, and sends it out over the transmit LSP. This mode
can be used for any Adaptation Layer (AAL1-5).
The number of cells that are bundled together in a single MPLS packet
depends on the delay and jitter that can be tolerated on the CCC
connection. Typically, this is specified by an upper bound on the
number of cells and the time from receiving the first cell to
transmitting the MPLS packet.
Kompella, et al. Expires August 13, 2005 [Page 13]
Internet-Draft Circuit Cross-Connect February 2005
cell cell cell cell cell cell cell cell
header data header data header data header data
+----+------+ +----+------+ +----+------+ +----+------+
|VC1 | | |VC1 | | ... |VC1 | | |VC1 | |
+----+------+ +----+------+ +----+------+ +----+------+
\ | / \ / \ / \ /
--------- --------- --------- ---------
| | | | |
| | | | |
| ------------- ---- ------ -----------
V | | | |
cookie -- mapping -- | | | |
| --- | | -----
| | | | |
V v v v v
+-----------+-------+------- ... --------+
| L2 header | label | cell1 | | celln |
+-----------+-------+------- ... --------+
Figure 5: ATM Cells Encapsulated as CCC
At the egress PE, an MPLS packet arrives with the label allocated by
the egress PE for the receive LSP for the connection. This label
identifies the CCC connection. The egress PE removes the label,
fixes the ATM header, and sends the packet over the outgoing ATM
interface.
Kompella, et al. Expires August 13, 2005 [Page 14]
Internet-Draft Circuit Cross-Connect February 2005
4. Discussion
CCC has been very successful, both as a tool for Service Providers as
well as to demonstrate that transporting Layer 2 over MPLS was a
viable and useful technology. This led to several enhancements to
the original implementation. At the same time, some drawbacks came
to light, which necessitated a rethinking of some of the design.
This section examines both aspects of CCC, the enhancements and the
drawbacks, and presents some solutions to the latter.
4.1 Enhancements to CCC
As is often the case, deployment meant refinement and new features.
The most straightforward of these was the addition of new types of
Layer 2 encapsulations: the original implementation only dealt with
ATM AAL/5 PDUs, Frame Relay, PPP and HDLC. Later, cell-mode ATM,
Virtual Path switching for ATM and Ethernet were added. Within
cell-mode ATM, the ability to put several cells (from the same VC, or
even from different VCs) into a single MPLS packet improved the
transport efficiency of the encapsulation.
From a management point of view, two topics were discussed: fault
reporting (already described) and simplified configuration. The
former was implemented. The latter was what is now called
"single-sided signaling". It consisted of having yet another
(optional) clause in the configuration stanza for CCC: "<remote
subinterface>". The theory was that RSVP-TE signaling would carry
this information to the remote end, where a connection would be
established for the named subinterface without a corresponding
configuration stanza. However, on reflection, this "solution"
created more problems than it solved. First, making sure that the
remote subinterface was correct was difficult; making a connection on
the wrong subinterface was a serious matter. Second, the resultant
asymmetric provisioning usually made management harder rather than
easier. Third, creating connections with no configuration whatsoever
violated the principle of least surprise. Finally, the provisioning
model for CCC was inherently complex; it was decided to solve this
problem completely rather than offer a quick fix (see Section 4.3).
Furthermore, there were requests for improved QoS with CCC. In the
control plane, this meant doing Call Admission Control and managing
bandwidth, functions that RSVP-TE already provided. In the data
plane, this required mapping information in the Layer 2 header of
Layer 2 frame to the MPLS label. This took two forms: for ATM (Frame
Relay), the Cell Loss Priority (Discard Eligible) field in the ATM
(Frame Relay) header was mapped to one of the EXP bits in the label
to indicate whether this frame should be dropped ahead of others in
the case of congestion. For Ethernet, this meant mapping the 802.1p
Kompella, et al. Expires August 13, 2005 [Page 15]
Internet-Draft Circuit Cross-Connect February 2005
bits in a Virtual LAN tag to the EXP bits in the label.
Finally, there was an important innovation, the notion of "Layer 2.5"
connections, also called Translational Cross-Connect (TCC). Unlike
CCC connections, which require the same Layer 2 type at each end of
the connection, TCC connections can have different types of Layer 2,
but can only carry IPv4 packets. In TCC, the forwarding of the
packet is based entirely on the Layer 2 header (e.g., the Frame Relay
DLCI), just as in in CCC; IP header information is not used for
forwarding decisions. However, what is carried with the MPLS packet
is just the IP payload.
cell cell cell cell cell cell cell cell
header data header data header data header data
+----+-------+ +----+-------+ +----+-------+ +----+-------+
|VC1 | | |VC1 | | |VC1 | | |VC1 | |
+----+-------+ +----+-------+ +----+-------+ +----+-------+
| \ / \ / \ / \ /
| ----- ----- ----- -----
| | | | |
| | | | |
| -------------- ---- ------- -------------
V | | | |
cookie -- mapping -- | | | |
| --- | | ----
| | | | |
| v v v v
| +----------- ... ---+
| | SNAP | IP payload | ATM AAL/5 PDU
| +----------- ... ---+
| ____/ ____/
v / /
+-----------+-------+---- ... ---+
| L2 header | label | IP payload |
+-----------+-------+---- ... ---+
Figure 6: ATM AAL/5 PDUs Encapsulated as TCC
At the egress PE, an MPLS packet arrives with the label allocated by
the egress PE for the receive LSP for the connection. The egress PE
then maps the label into the appropriate Layer 2 address (Frame Relay
DLCI, ATM VC, Ethernet VLAN) [if any] for the egress subinterface,
pop the L2 header and label, and encapsulate the IP payload with the
Layer 2 header for the egress subinterface.
Kompella, et al. Expires August 13, 2005 [Page 16]
Internet-Draft Circuit Cross-Connect February 2005
+-----------+-------+---- ... ---+
| L2 header | label | IP payload |
+-----------+-------+---- ... ---+
| \ \
________| \ \
| \ \
| \ \
v +---------+---- ... ---+
Ethernet | Eth hdr | IP payload |
port +---------+---- ... ---+
Figure 7: TCC Frames Decapsulated into Ethernet
If the egress subinterface was Ethernet, encapsulating the outgoing
IP packet required knowing the MAC address of the CE connected over
that Ethernet. This MAC address could be be obtained by doing a
proxy ARP on behalf of the remote CE; another option was to configure
this MAC address statically. Both options were implemented.
4.2 Operational Issues
Several operational issues were discovered during deployment. The
first was that CCC was tied to RSVP-TE as the tunnel LSP setup
protocol, whereas most providers were using LDP. The second was that
since CCC did not use label stacking, every CCC connection on a PE
consumed an RSVP-TE LSP. With label stacking, a single LSP, whether
signaled using RSVP-TE or LDP, can simultaneously carry multiple
connections, as well as other traffic. This approach had serious
scaling concerns for the control plane. Another problem often
encountered was that the MTU for the subinterfaces at either end of a
connection didn't match. Finally, as has been mentioned before,
provisioning was cumbersome.
Perhaps because of these operational issues, CCC wasn't used much as
a technology for providing Layer 2 VPNs to end customers. Rather, it
was used as an infrastructure technology within the service
provider's network.
Other issues were discussed as well, although they didn't pose
operational problems. For example, several bits in the Frame Relay
header (such as the Forward and Backward Explicit Congestion
Notification) were simply discarded; some felt that this was
technically inaccurate. Also, no effort was made to ensure that the
two subinterfaces in a connection had the same Layer 2 type. Also,
while one could create a connection that spanned IGP areas or
Autonomous Systems, doing so required allowing RSVP-TE across the
area/AS boundary.
Kompella, et al. Expires August 13, 2005 [Page 17]
Internet-Draft Circuit Cross-Connect February 2005
4.3 Provisioning Model
The provisioning model for CCC was as follows:
1. Provision an RSVP-TE (transmit) LSP. Implicitly, this does two
things: define the remote end, and provide a key to tie the
connection on this PE to the connection on the remote PE (via the
LSP name).
2. Provision a connection, tying a subinterface to the transmit and
receive LSPs.
3. Do the same at the other end of the connection.
Essentially the same provisioning model was adopted by the PWE3
Working Group (see [2] and [8]), where for each end of a pseudowire,
one must state what the remote endpoint is, and give an identifier
for the remote end to make the connection ("VC ID"); and both ends
must be provisioned.
This model is acceptable for a small number of connections, or for a
relatively static environment. Thus, CCC was well suited to a
network infrastructure: define the connections once, then leave them
alone. However, for a dynamic environment where connections are
defined, removed or changed frequently, or an environment where a lot
of connections are needed, CCC is a poor fit. An example of such an
environment is a Layer 2 VPN offered as a service to an end customer.
Every new customer means several new connections to be defined;
existing customers may also require adding, removing or moving
connections.
Analyzing this further, we realized that the latter environment
required the following features:
1. Autodiscovery: one should NOT have to define the endpoint of each
connection. This is especially important when there are several
related connections (such as for a Layer 2 VPN); it reduces an
O(N^2) configuration task to O(N), where N is the number of sites
in the VPN. Furthermore, autodiscovery eliminates potential
security breaches arising from misconfiguration (see
Section 4.4).
2. VPN Identifier: if one is provisioning a VPN, all the connections
in that VPN, no matter on which PE, should immediately identify
themselves as being in the same VPN. This helps troubleshooting
immensely.
3. Regular Topologies: one should be able to provision regular
topologies (such as full mesh, hub-and-spoke, dual-hub-and-spoke
and ring) easily and intuitively. It is acceptable for
non-regular topologies to require more complex provisioning.
4. Inter-AS scenarios: being able to provision a VPN across multiple
ASes is vital for today's carriers.
Furthermore, this had to be coupled with label stacking (to scale the
Kompella, et al. Expires August 13, 2005 [Page 18]
Internet-Draft Circuit Cross-Connect February 2005
control plane, and to allow non-RSVP-TE tunnels).
The solution we came up with is documented in [9] and [5]. Briefly,
this solution adapts the mechanisms defined for IP VPNs ([6]) to
address the needs of Layer 2 VPNs, and in so doing meets the four
requirements laid out above. Furthermore, reusing the concepts of IP
VPNs minimizes both the learning curve and the provisioning burden
for Layer 2 VPNs. This is especially true for the provisioning of
inter-AS VPNs. BGP-based Layer 2 VPNs have been deployed in a number
of carriers.
4.4 Security
The primary security issue with CCC is that wrong connections may be
made. Since CCC's provisioning model is manual (i.e., no protocols
are involved in making the connection), the concern is
misconfiguration. This can happen in two ways.
4.4.1 Configuration
In the figure below, suppose one wants to connect interface intf1
from CE A1 to interface intf3 on CE A2 using LSPs 'PE1-PE2:A' and
'PE2-PE1:A'. Then one would need a configuration stanza like the
following on PE 1:
attachment circuit: intf1
transmit LSP: PE1-PE2:A
receive LSP: PE2-PE1:A
and on PE 2:
attachment circuit: intf3
transmit LSP: PE2-PE1:A
receive LSP: PE1-PE2:A
CE A1 +------+ +------+ CE A2
\ intf1 | | <=== LSP PE2-PE1:A ==== | | intf3 /
\_____ | PE 1 | ==== LSP PE1-PE2:A ===> | PE 2 | _____/
_____ | | <=== LSP PE3-PE1:B | | _____
/ | | ===> LSP PE1-PE3:B | | \
/ intf2 +------+ +------+ intf4 \
CE B1 CE C1
Figure 8: CCC Security Issues
If one mistyped 'intf2' instead of 'intf1' in the above, CE B1 could
get connected to CE A2, which is a potential security breach. The
other mis-connnection that could happen is that one types 'PE1-PE3:B'
as the transmit LSP on PE1. Then data from CE A1 goes to some CE
hanging off PE3. This too could lead to a breach of security;
however, as this is only a partial connection, it will likely be
Kompella, et al. Expires August 13, 2005 [Page 19]
Internet-Draft Circuit Cross-Connect February 2005
found quickly, and in fact the underlying network layers may detect
the problem.
This problem is exacerbated if multiple connections are needed among
a set of CEs (i.e., a VPN). There is no a priori relationship among
the various connections; one could enforce an LSP naming scheme that
alleviates the problem, but CCC offers no features on this front.
This provided yet another incentive to pursue a different
provisioning model for Layer 2 VPNs, namely that described in [9].
The introduction of a construct that can be used as a common VPN
identifier across all connections in a VPN helps prevent
misconfiguration in the first place, and eases troubleshooting if one
does occur.
4.4.2 Data Plane
CCC does not offer authentication or encryption services, although
they are not precluded. CCC does offer isolation, that is, packets
from one connection are delivered only to the remote endpoint (CE)
for that connection. CCC relies on MPLS properties for this: if an
LSP is set up correctly in the control and data planes, packets
traversing that LSP will be delivered to its egress, and will not be
mixed up with packets from another LSP. This is the same isolation
property that Frame Relay or ATM virtual connections have.
If the MPLS control and/or data plane is compromised, this isolation
property is no longer guaranteed. Securing the MPLS control and data
planes is beyond the scope of this document; however, others have
addressed these issues (see [1] and [4].)
Kompella, et al. Expires August 13, 2005 [Page 20]
Internet-Draft Circuit Cross-Connect February 2005
5. Case Studies
CCC has been quite a success despite the issues discussed above. The
main deployment has been in Service Provider infrastructure networks,
unlike Layer 2 over MPLS (PWE3 and Layer 2 VPNs), which is primarily
viewed as a service offered to end customers. What follows is the
overview of a few deployments of CCC in such an infrastructural role.
5.1 CCC in Mobile Operator Networks
For mobile operators that have IP/MPLS networks, CCC can be used to
fulfill ATM-cell and frame-relay transport requirements for nodes
that lack IP transport capabilities. In addition to the cost savings
incurred by doing this, CCC allows mobile operators to take advantage
of features typically offered by RSVP signaled MPLS LSPs. Features
such as fast-reroute, traffic-engineering and per-lsp-statistics can
then be applied to mobile service offerings.
CCC can be used to provide ATM transport for the current 3G-R99/UMTS
offerings while maintaining QoS requirements. The IUcs and IUps
interfaces can be mapped to different logical or physical interfaces
which are in turn mapped to separate egress service queues and MPLS
LSPs. The MPLS packets that carry the IUcs ATM cells can have their
EXP markings set differently than those MPLS packets that are
carrying IUps. This ensures that quality of service is maintained
across the mobile operator's MPLS network. The use of MPLS
fast-reroute also ensures that failure recovery times are within tens
of milliseconds making this technology a viable option to carry voice
service:
------ ----- -----
| UMTS |---IUps---| | | |----IUps---SGSN
| RNC | | LSR |------------| LSR |
| |---IUcs---| | | |----IUcs---Media
------ ----- ----- Gateway
<--ATM---> <---MPLS---> <---ATM--->
Figure 9: CCC Used to Interconnect RNC Islands
CCC can also be used to provide a layer two frame-relay network for
the Gb interfaces between the BSC and SGSN nodes for GPRS and EDGE
services. The benefit here is for increased transport consumption
efficiency and cost reduction in a mobile operator's network. This
is achieved by statistically multiplexing Gb DS0's from multiple BSCs
onto the mobile operator's MPLS network:
Kompella, et al. Expires August 13, 2005 [Page 21]
Internet-Draft Circuit Cross-Connect February 2005
--- ----- ----- ---
BSC--| D | ch | | | | ch | D |---SGSN
| A |--DS3--| LSR |-----------| LSR |--DS3--| A |---SGSN
BSC--| C | | | | | | C |
| S | | | | | | S |
--- ----- ----- ---
<--FR--> <--MPLS--> <--FR-->
Figure 10: CCC Used to Interconnect DACSs
5.2 CCC in Carrier Networks for ATM Trunk Applications
CCC can be used to transparently carry ATM traffic across an IP/MPLS
backbone. Using CCC in this fashion allows the end-node ATM switches
to use proprietary signaling mechanisms and exchange information as
they would over a direct connection. The ATM switches themselves
will not see the intermediate routers, and the routers will
discreetly stitch the ATM ports together to create a seamless Layer 2
ATM connection between those ATM switches.
ATM MPLS ATM
ATM SW <---> LSR <------> LSR <---> ATM SW
|________________|
CCC RSVP LSP
Figure 11: CCC Used to Interconnect ATM Trunks
CCC not only offers Layer 2 VPN capabilities, but also comes with the
advantages of using RSVP signaled LSPs - such as RSVP EROs, FRR, and
LSP statistics. Specifying EROs allows for specific LSP engineering
in the network, which is advantageous for mapping ATM traffic between
core POPs. By associating ATM traffic to a particular/preferred
IP/MPLS backbone link, it is then possible to force the LSP to fail
should the IP/MPLS link fail. This RSVP signalled feature is
important if the MPLS reroute is not preferred in situations where
the ATM switches themselves are running a PVC-reroute routing
protocol.
If required, the MPLS network can also perform the reroute during a
primary link failure using MPLS fast-reroute (FRR) which in turn
provides recovery times of within tens of milliseconds. Two other
key drivers for selecting the CCC/RSVP are per-LSP statistics and
selective LSP naming. Collection of per-LSP statistics allows for
close monitoring and utilization graphing of the CCC LSPs. Selective
LSP naming allows for the provisioning of specific LSP names that can
indicate what the CCC LSP is used for, its origin and its endpoint,
Kompella, et al. Expires August 13, 2005 [Page 22]
Internet-Draft Circuit Cross-Connect February 2005
or various other unique values that can be added to the name field.
CCC can also be combined with class-of-service properties to provide
a complete ATM solution, both in terms of transport as well as
traffic priority and protection.
5.3 CCC as a Core Convergence Technology in Carrier Networks
CCC can also be used as the foundation for a form of convergence of
multiple networks in a Service Provider environment, which, although
simplistic, offers good isolation and several other benefits. Many
established Service Providers have multiple purpose-built networks
that offer different services to customers (e.g., ATM, frame relay,
IP VPN, public Internet), but whose infrastructure is located in the
same central offices and whose transmission circuits largely follow
the same physical paths. Historically, the chief sharing of
resources among these networks was at the SONET level, with each
network consuming its own SONET circuit, and no ability to share
bandwidth dynamically among the networks aside from the statically
provisioned OC-n circuits.
CCC offers the ability to trunk multiple disparate services across a
common high-speed core using simple and effective Layer-2 separation.
This approach is not new, in that overlay networks (e.g., IP-over-ATM
and IP-over-frame-relay) have been built on a large scale for many
years. However, CCC allows this simple approach to be extended while
preserving the familiar concept of operations and provisioning that
Service Providers understand and have been comfortable with for a
long time. The distinct legacy networks can maintain their separate
edge devices, but become "client networks" of a shared core by
substituting their wide-area circuits for an appropriately-selected
mesh of CCC connections across the core. This design maintains
strong isolation of the individual overlay networks via Layer 2 VCs,
and there is no control-plane interaction among the client networks
either with the core or with each other; the hand-off is a statically
provisioned Layer 2 virtual circuit. This characteristic is
important in reducing shared fate and ensuring that misbehavior or
failure in one network cannot affect the others or the core. In
addition, because CCC is simple and does not require much in the way
of control plane itself (no BGP, for example), the shared core can
exist with a minimal configuration in accordance with the belief that
complexity is the enemy of reliability and stability.
Kompella, et al. Expires August 13, 2005 [Page 23]
Internet-Draft Circuit Cross-Connect February 2005
___ .......................... ___
FR UNI---|FR | . . |FR |---FR UNI
---|SW | . ----- ----- . |SW |---
---|___|-------| | | |-------|___|---
. | | | | .
. | LSR |=== ::: ===| LSR | .
___ . | | | | . ___
IP---| |-------| | | |-------| |---IP
---|IP | . ----- ----- . |IP |---
---| | . Service Independent Core . | |---
--- .......................... ---
<--FR--> <--MPLS--> <--FR-->
Figure 12: CCC Used to Interconnect Distinct Service Edge Devices
Because a single core device can provide say, emulated ATM CCC
connections on one interface and emulated FR on another, CCC enables
a single core to play multiple roles where a true ATM or FR core
could not easily and efficiently. This approach reduces transmission
costs by eliminating the separate circuits per network, and allows
the core trunks to be used more efficiently by statistically
multiplexing multiple client networks into one. In addition, the
previously cited benefits of MPLS and RSVP-TE can be realized,
including traffic engineering and restoration via fast reroute if
desired.
Kompella, et al. Expires August 13, 2005 [Page 24]
Internet-Draft Circuit Cross-Connect February 2005
6. Security Considerations
CCC security concerns stem from two primary sources. The first is
misconfiguration, where a connection is mis-specified. The other is
co-option, compromise or failure of the data plane. Both of these
are discussed in some detail in Section 4.4.
Kompella, et al. Expires August 13, 2005 [Page 25]
Internet-Draft Circuit Cross-Connect February 2005
7. References
7.1 Normative References
[1] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V. and G.
Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels",
RFC 3209, December 2001.
[2] Bryant, S. and P. Pate, "PWE3 Architecture",
Internet-Draft draft-ietf-pwe3-arch-07, March 2004.
7.2 Informative References
[3] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M. and J.
McManus, "Requirements for Traffic Engineering Over MPLS",
RFC 2702, September 1999.
[4] Rosen, E., Viswanathan, A. and R. Callon, "Multiprotocol Label
Switching Architecture", RFC 3031, January 2001.
[5] Kompella, K., "Virtual Private LAN Service",
Internet-Draft draft-ietf-l2vpn-vpls-bgp-03, January 2005.
[6] Rosen, E., "BGP/MPLS IP VPNs",
Internet-Draft draft-ietf-l3vpn-rfc2547bis-03, October 2004.
[7] Pan, P., Swallow, G. and A. Atlas, "Fast Reroute Extensions to
RSVP-TE for LSP Tunnels",
Internet-Draft draft-ietf-mpls-rsvp-lsp-fastreroute-07,
September 2004.
[8] Martini, L., "Pseudowire Setup and Maintenance using LDP",
Internet-Draft draft-ietf-pwe3-control-protocol-14, November
2004.
[9] Kompella, K., "Layer 2 VPNs Over Tunnels",
Internet-Draft draft-kompella-l2vpn-l2vpn-00, January 2004.
Authors' Addresses
Kireeti Kompella
Juniper Networks
1194 N. Mathilda Ave.
Sunnyvale, CA 94089
US
Email: kireeti@juniper.net
Kompella, et al. Expires August 13, 2005 [Page 26]
Internet-Draft Circuit Cross-Connect February 2005
John Ospina
Cingular Wireless
7277 164th Ave NE
Redmond, WA 98052
US
Email: john.ospina@cingular.com
Shilpa Kamdar
Cingular Wireless
7277 164th Ave NE
Redmond, WA 98052
US
Email: shilpa.kamdar@cingular.com
Jeff Richmond
Electric Lightwave
4400 NE 77th Ave
Vancouver, WA 98662
US
Email: jeff_richmond@eli.net
Gregory J. Miller
MCI
22001 Loudoun County Parkway
Ashburn, VA 20147
US
Email: Gregory.J.Miller@MCI.com
Kompella, et al. Expires August 13, 2005 [Page 27]
Internet-Draft Circuit Cross-Connect February 2005
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Disclaimer of Validity
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement
Copyright (C) The Internet Society (2005). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Kompella, et al. Expires August 13, 2005 [Page 28]
| PAFTECH AB 2003-2026 | 2026-04-21 16:57:57 |