L2VPN Working Group Paul Kwok
Internet Draft Pranjal Kumar Dutta
Intended status: Standard Alcatel-Lucent
Expires: September 2009
March 3, 2009
MAC Flush Loop Detection in VPLS
draft-pkwok-l2vpn-vpls-macflush-ld-00.txt
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79. This document may not be modified,
and derivative works of it may not be created, and it may not be
published except as 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."
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 September 3, 2009.
Abstract
MAC Address Withdrawal is a mechanism described in [RFC4762] to
remove or unlearn MAC addresses that have been dynamically learned
for faster convergence. Failure of mechanisms that control loop free
connectivity among VPLS PE nodes may cause MAC Address Withdrawal
messages looping among those nodes, leading to Denial of Service
(DoS) or complete failure of control plane in the PE nodes. This
document describes a mechanism to detect and prevent loops of MAC
Address Withdrawal messages in a VPLS PE node.
Kwok, et. al. Expires September 3, 2009 [Page 1]
Internet-Draft MAC Flush Loop Detection March 2009
Table of Contents
1. Introduction...................................................2
2. Conventions used in this document..............................3
3. Terminology....................................................3
4. Problem Statement..............................................4
5. Loop Detection in MAC Flush....................................5
6. Applicability..................................................7
7. Security Considerations........................................7
8. IANA Considerations............................................7
9. References.....................................................7
9.1. Normative References......................................7
9.2. Informative References....................................7
10. Acknowledgments...............................................8
1. Introduction
A method of Virtual Private LAN Service (VPLS) is described in
[RFC4762]. A full mesh of pseudowire (PW)s is established between
PE devices to construct the VPLS core. The mesh topology provides a
LAN segment or broadcast domain that is fully capable of learning and
forwarding on Ethernet MAC addresses at the PE devices. Since every
PE is now directly connected to every other PE in the core via a PW,
the topology forms a loop. A simpler loop breaking rule is used - the
"spilt horizon" rule, whereby a PE does not forward traffic from one
PW to another in the same VPLS mesh. Various mechanisms used to
enforce split horizon in the VPLS full mesh is out of scope of this
document.
For scalability, this VPLS full mesh core configuration can be
augmented with additional non-meshed spoke or MTU-s [RFC4762] nodes
to provide a Hierarchical VPLS (H-VPLS) service [RFC4762]. To protect
from connection failure of the spoke PW or the PE, the MTU-s or
the PE is dual-homed into two PE devices in the same VPLS
instance [Figure 1]. The dual homed connectivity forms a loop that
requires loop breaking mechanism. Various loop breaking mechanisms
are out of scope of this document.
MAC Address Withdrawal [RFC4762] is required to remove or unlearn MAC
addresses for faster convergence on topology change in H-VPLS (e.g.,
failure of the primary link for a dual-homed VPLS capable switch). In
this document the term "MAC Flush Message" means the LDP Address
Withdraw Message with MAC List TLV used for MAC address withdrawal in
VPLS.
Kwok, et. al. Expires September 3, 2009 [Page 2]
Internet-Draft MAC Flush Loop Detection March 2009
Failure of mechanisms that control loop free connectivity among VPLS
PE nodes may cause MAC Flush messages looping among the nodes. This
document describes a mechanism to detect and prevent such loops on
MAC Flush messages.
2. Conventions used in this document
In examples, "C:" and "S:" indicate lines sent by the client and
server respectively.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
3. Terminology
This document uses the terminology defined in [RFC5036] and
[RFC4762]. Throughout this document VPLS means the emulated bridged
LAN service offered to a customer. H-VPLS means the hierarchical
Connectivity or layout of MTU-s and PE devices offering the
VPLS [RFC4762]. The terms spoke node and MTU-s in H-VPLS are used
Interchangeably.
Kwok, et. al. Expires September 3, 2009 [Page 3]
Internet-Draft MAC Flush Loop Detection March 2009
4. Problem Statement
This section describes the problem in detail.
PE-1 PE-3
+--------+ +--------+
| | | |
| -- | | -- |
| / \ |------------------| / \ |->
/------| \ s/ | | \S / |
primary spoke PW | -- | /------| -- |
/ +--------+ / +--------+
(MTU-s)/ | \ / |
+--------+/ | \ / |
| | | \ / |
| -- | | \ / |
| / \ | | H-VPLS Full Mesh Core|
| \S / | | / \ |
| -- | | / \ |
+--------+\ | / \ |
backup spoke PW | / \ |
\ +--------+ \--------+--------+
\ | | | |
\------| -- | | -- |
| / \ |------------------| / \ |->
| \s / | | \S / |
| -- | | -- |
+--------+ +--------+
PE-2 PE-4
Figure 1: Dual homed MTU-s in two tier hierarchy H-VPLS
When a MAC flush is received by a PE device, it is processed locally
and propagated to all other PE devices participating in the full
mesh. The scope of propagation in the full mesh is limited by the
same split horizon rules applied for forwarding VPLS service traffic.
MAC flush message received from a PE device participating in full
mesh is not forwarded to another PE device in the same full mesh. Due
to failure of split horizon control mechanisms or misconfiguration in
the VPLS topology, a loop may get created. Similarly, due to failure
of loop breaking mechanism in dual-homed topology a loop may get
created among the participating PE and/or MTU-s devices. In such a
Kwok, et. al. Expires September 3, 2009 [Page 4]
Internet-Draft MAC Flush Loop Detection March 2009
scenario, a MAC flush message may be propagated by a PE or MTU-s to
cause loops of MAC flush messages. Each such loop of a MAC flush
message causes replication to (N-1) messages, where N is number of PE
devices the replicating PE is connected to. Such looping of MAC flush
messages may lead to denial of service (DoS) attacks or complete
failure of the control plane. The control plane in PE or MTU-s
devices requires a fault tolerant mechanism to detect such loops and
protect against such failures. This document describes a loop
detection procedure in MAC Flush in a VPLS.
5. Loop Detection in MAC Flush
MAC Flush Loop Detection is a configurable option in a VPLS capable
PE or MTU-s device that provides a mechanism for finding and
preventing MAC Flush messages from looping across the VPLS network.
The mechanism makes use of LDP Path Vector TLVs defined in [RFC
5036]. For loop detection in MAC Flush, Path Vector TLVs are carried
in the MAC Flush messages.
The following shows the encoding of Path Vector TLV when used for MAC
Flush Loop Detection. For backward compatibility the U bit and F bit
MUST be set as 1.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|1| Path Vector (0x0104) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LSR Id 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LSR Id n |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2. Path Vector TLV in MAC Flush.
The method builds on the following basic property of the TLV:
- A Path Vector TLV contains a list of the PEs that the
containing MAC flush message has traversed. A PE is identified
in a Path Vector list by its unique LDP LSR Identifier, which
is first four octets of its LDP Identifier. When a PE
Kwok, et. al. Expires September 3, 2009 [Page 5]
Internet-Draft MAC Flush Loop Detection March 2009
propagates a MAC flush message containing a Path Vector, it
appends its LSR Id to the Path Vector list. An LSR that
receives a message with a Path Vector that contains its LSR
Id, detects that the message has traversed a loop.
The following paragraphs describe the MAC Flush Loop Detection
procedures. For these paragraphs, and only these paragraphs, "MUST"
is redefined to mean "MUST if configured for Loop Detection". Further
the term "PE device" is used specify a VPLS capable PE or a MTU-s
device.
5.1 Loop Detection Procedure in MAC Flush Message
The rules that govern use of the Path Vector TLV are LDP MAC Flush
messages by a PE when MAC Flush Loop Detection is enabled are the
following:
- If PE device is originating the MAC Flush Message, it MUST
include a Path Vector TLV of length 1 containing its own LSR
Id.
- If PE device is propagating the MAC flush as a result of
having received a MAC Flush from an upstream PE, then if the
MAC Flush contains a Path Vector TLV :
PE device MUST add its own LSR Id to the Path Vector, and
MUST pass the resulting Path Vector to its downstream PE
along with the MAC flush message propagated. If the MAC
flush message contains no Path Vector TLV, then PE MUST
include a Path Vector TLV of length 1 containing its own
LSR Id.
- If PE device receives a MAC Flush Message from another PE
device with a Path Vector TLV containing its LSR Id or which
exceeds the maximum allowable length, then PE device detects
that the MAC flush message has traveled in a loop. By the
definition of Path Vector TLV in [RFC5036], supports the
notion of a maximum allowable Path Vector Length; a PE that
detects a Path Vector has reached the maximum length behaves
as if containing message has traversed a loop. Such limit MAY
be a locally configurable option in an implementation based on
the scope of H-VPLS topology.
- When PE device detects a loop, it MUST drop the MAC flush
message without processing and MUST NOT propagate the message
further.
Kwok, et. al. Expires September 3, 2009 [Page 6]
Internet-Draft MAC Flush Loop Detection March 2009
6. Applicability
If MAC Flush Loop Detection is desired in VPLS Network, then it
should be turned on in all PE devices within that VPLS Network, else
Loop Detection will not operate properly and may result in undetected
loops or in falsely detected loops.
PE devices that are configured for MAC Flush Loop Detection are not
expected to store the Path Vectors as part of the VPLS service.
7. Security Considerations
- Control plane aspects
- LDP security (authentication) methods as described in [RFC5036]
is applicable here. Further this document implements security
considerations as in [RFC4447] and [RFC4762].
- Data plane aspects
- This specification does not have any impact on the VPLS
forwarding plane.
8. IANA Considerations
This document does not require any IANA consideration.
9. References
9.1. Normative References
[RFC4762] Lasserre, M. and Kompella, V., "Virtual Private LAN
Services using LDP", RFC 4762, January 2007.
[RFC5036] Andersson, L., et al. "LDP Specification", RFC5036,
October 2007.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
9.2. Informative References
[L2VPN-SIG] Rosen, E., et al. "Provisioning, Autodiscovery,
and Signaling in L2VPNs", work in progress.
Kwok, et. al. Expires September 3, 2009 [Page 7]
Internet-Draft MAC Flush Loop Detection March 2009
[RFC4664] Andersson, L., et al. "Framework for Layer 2
Virtual Private Networks (L2VPNs)", RFC 4664,
September 2006.
[RFC4447] Martini. and et al., "Pseudowire Setup and
Maintenance Using Label Distribution Protocol
(LDP)", RFC 4447, April 2006
10. Acknowledgments
The authors would like acknowledge the comments and suggestions from
Wim Henderickx, Vach Kompella, Florin Balus, Mustapha Aissaoui,
Mathew Bocci and Miroslav Vrana.
This document was prepared using 2-Word-v2.0.template.dot.
Authors' Addresses
Paul Kwok
Alcatel-Lucent
701 E Middlefield Road,
Mountain View, CA 94043
USA.
Email: pkwok@alcatel-lucent.com
Pranjal Kumar Dutta
Alcatel-Lucent
701 E Middlefield Road,
Mountain View, CA 94043
USA.
Email: pdutta@alcatel-lucent.com
Kwok, et. al. Expires September 3, 2009 [Page 8]
Internet-Draft MAC Flush Loop Detection March 2009
Copyright Statement
Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents in effect on the date of
publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your
rights and restrictions with respect to this document.
Kwok, et. al. Expires September 3, 2009 [Page 9]