RFC 5994

Application of Ethernet Pseudowires to MPLS Transport Networks

πŸ“… published October 2010, from ietf

RFC 5994 πŸ’– Application of Ethernet Pseudowires to MPLS Transport Networks

okay bestie, here's the title block tea β˜•βœ¨

  • RFC number: 5994
  • Title: Application of Ethernet Pseudowires to MPLS Transport Networks
  • Stream: Internet Engineering Task Force (IETF)
  • Authors: S. Bryant, Ed. (editor), M. Morrow, G. Swallow (Cisco Systems), R. Cherukuri (Juniper Networks), T. Nadeau (Huawei Technologies), N. Harrison (BT), B. Niven-Jenkins (Velocix)
  • Category: Informational
  • ISSN: 2070-1721
  • Date: October 2010
  • Obsoletes / Updates: none listed on this one πŸ™…β€β™€οΈ

Abstract πŸ¦‹

Ethernet pseudowires are everywhere now 🌍 They're widely deployed to carry Ethernet services as packets, and those services then carry a bunch of client networks, like IP and MPLS. This document uses the procedures already defined in the existing IETF specs for Ethernet pseudowires carried over MPLS networks.

Lots of the requirements for these services are also recognized by the MPLS transport profile (MPLS-TP) design effort, which is a joint project between the IETF and ITU-T. The solution here doesn't cover every MPLS-TP requirement, but it gives you a viable packet transport service using tools that already exist πŸ’…

This document also shows that existing MPLS techniques are a solid basis for designing a fully-featured packet transport solution that covers all the MPLS-TP requirements. It's giving foundation πŸ—οΈβœ¨


Status of This Memo 🌸

This document is not an Internet Standards Track specification. It's published for informational purposes, so no standards vibes here, just info πŸ“š

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not every document approved by the IESG is a candidate for any level of Internet Standard. See Section 2 of RFC 5741 for that.

Want the current status, any errata, or a way to give feedback? Check http://www.rfc-editor.org/info/rfc5994 🫢


Copyright (c) 2010 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 (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, because they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they're provided without warranty as described in the Simplified BSD License.

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English πŸŒπŸ’œ


Table of Contents πŸŽ€

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Requirements Language  . . . . . . . . . . . . . . . . . .  5
   2.  PWE3 Configuration . . . . . . . . . . . . . . . . . . . . . .  5
   3.  Operations, Administration, and Maintenance (OAM)  . . . . . .  5
     3.1.  VCCV Profile 1: BFD without IP/UDP Headers . . . . . . . .  6
     3.2.  VCCV Profile 2: BFD with IP/UDP Headers  . . . . . . . . .  6
   4.  MPLS Layer . . . . . . . . . . . . . . . . . . . . . . . . . .  6
     4.1.  External Configuration . . . . . . . . . . . . . . . . . .  6
     4.2.  Control Plane Configuration  . . . . . . . . . . . . . . .  7
   5.  Congestion Considerations  . . . . . . . . . . . . . . . . . .  8
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . .  8
   7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . .  9
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . .  9
     8.1.  Normative References . . . . . . . . . . . . . . . . . . .  9
     8.2.  Informative References . . . . . . . . . . . . . . . . . . 10

1. Introduction ✨

Ethernet pseudowires are widely deployed to carry Ethernet services as packets. Those services then carry a variety of client networks, like IP and MPLS. This document uses the procedures already defined in the existing IETF specs for Ethernet pseudowires carried over MPLS networks πŸ’–

Lots of the requirements for these services are also recognized by the MPLS transport profile (MPLS-TP) design effort, which the IETF and ITU-T formed together [RFC5654]. For example, there's the ability to operate solely with network management control, the ability to use Operations, Administration, and Maintenance (OAM) that doesn't rely on IP forwarding, and the ability to provide light-weight proactive connection verification (CV) functionality. Iconic behaviour, honestly πŸ¦‹

The solution in this document doesn't address all of the MPLS-TP requirements, but it provides a viable form of packet transport service using tools that already exist. Not everything, but enough to be genuinely useful πŸ’…

The key purpose of this document is to show that there's an existing IETF mechanism with known implementations that satisfies the requirements the operator community has posed. It's recognized that a more efficient method of satisfying the requirements is possible, and the IETF expects improved solutions to be proposed in the future as part of the MPLS-TP effort. The solution here isn't meant to detract from MPLS-TP at all 🫢 Instead, it legitimizes that work by showing there's real demand from networks that are already deployed, and by indicating that the MPLS-TP solutions work is built on sound foundations. Main character energy for the whole MPLS-TP effort πŸ‘‘

A lot of the notation used in this document is defined in [RFC3985], so go there for the definitions πŸ“–

The architecture required for this mechanism is illustrated in Figure 1. Here's the picture, bestie 🧚

     +----------------------------------------------------------------+
     |                                                                |
     |                  IP/MPLS PSN (PHP may be enabled)              |
     |                            (client)                            |
     |                                                                |
     |                  +---------------------------+                 |
     |                  |                           |                 |
     |                  |      MPLS PSN (No PHP)    |                 |
     |                  |         (server)          |                 |
     |                  |                           |                 |
     |     CE1          |PE1                     PE2|           CE2   |
     |   +-----+      +-----+                   +-----+      +-----+  |
     |   | | | |      | | | |                   | | | |      | | | |  |
     |   | | | +------+ | | |                   | | | +------+ | | |  |
     |   | | | | 802.3| | | |                   | | | | 802.3| | | |  |
     |   +-----+      +-----+                   +-----+      +-----+  |
     |     |   |        |  |                      | |        |   |    |
     |     |   |        +-- ---------------------- -+        |   |    |
     +----- --- -------- -- ---------------------- - -------- --- ----+
           |   |        |  |<--MPLS LSP (no PHP)->| |        |   |
           |   |        |  |       (server)       | |        |   |
           |   |        |                           |        |   |
           |   |        |<------------PW----------->|        |   |
           |   |        |          (server)         |        |   |
           |   |                                             |   |
           |   |<-------------802.3 (Ethernet)-------------->|   |
           |   |                   (client)                  |   |
           |                                                     |
           |<---------IP/MPLS LSP (PHP may be supported)-------->|
           |                       (client)                      |

   Figure 1: Application Ethernet over MPLS PW to MPLS Transport
             Networks

An 802.3 (Ethernet) circuit is set up between CE1 and CE2. This circuit may be used to concurrently transport MPLS packets as well as IPv4 and IPv6 packets. The MPLS packets may carry IPv4, IPV6, or pseudowire payloads, and Penultimate Hop Popping (PHP) may be used. For clarity, these paths are labeled as the client in Figure 1 🌸

An Ethernet pseudowire (PW) is provisioned between PE1 and PE2, and it's used to carry the Ethernet from PE1 to PE2. The Ethernet PW is carried over an MPLS Packet Switched Network (PSN), but this PSN MUST NOT be configured with PHP. For clarity, this Ethernet PW and the MPLS PSN are labeled as the server in Figure 1. For the rest of this document, the server network is called a transport network πŸ¦‹

1.1. Requirements Language

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 RFC 2119 [RFC2119] πŸ“βœ¨


2. PWE3 Configuration πŸ’œ

The PWE3 encapsulation this specification uses to satisfy the transport requirement is Ethernet [RFC4448]. It's used in "raw" mode πŸ“

The Control Word MUST be used. The sequence number MUST be zero. Iykyk πŸ™ˆ

The use of the Pseudowire Setup and Maintenance Label Distribution Protocol [RFC4447] is not required by the profile of the PWE3 Ethernet pseudowire functionality defined in this document. So you can skip it for this profile 🌈

The pseudowire label is statically provisioned πŸ”₯

3. Operations, Administration, and Maintenance (OAM) πŸ”

okay so bestie, this is where the monitoring drama lives πŸ’… Within a connection, traffic units sent from the single source are supposed to stay inside the connection when everything is defect-free ✨ But during misconnected defects, we can't assume the connection is constraining anything anymore 😭 Traffic units (and by implication OAM packets too) can 'leak' out one direction, outside the connection. So during a misconnected state, you can't really rely on OAM, since OAM depends on a request/response mechanism πŸ’€ That's why OAM should be treated with caution if you're using it for diagnostics, no cap πŸ™ˆ

Also, when you're implementing ECMP with MPLS, using the label stack as the path selector so that OAM and data are NOT on a co-path SHOULD be avoided πŸ›€οΈ Why? Because a failure in the data path won't show up in the OAM path, and that's giving false confidence 😬 OAM carried within the data path below the PW label (like Virtual Circuit Connectivity Verification, or VCCV) is NOT vulnerable to that failure mode 🫢 So the OAM mechanism follows [RFC5085], which uses Bidirectional Forwarding Detection (BFD) [RFC5880] for connection verification (CV) πŸ¦‹ The BFD-as-CV method in VCCV is described in [RFC5885]. One of the VCCV profiles in Section 3.1 or Section 3.2 MUST be used πŸ‘‘ Once a VCCV control channel is provisioned and the PW's operational status is UP, no other profile should be used until the PW's operational status is set to DOWN 🌸

3.1. VCCV Profile 1: BFD without IP/UDP Headers πŸŽ€

When PE1 and PE2 are not IP capable, or they haven't been configured with IP addresses, the following VCCV mechanism SHOULD be used ✨

The connection verification method VCCV uses is BFD with diagnostics, as defined in [RFC5885] πŸ’–

[RFC5085] specifies that the first nibble is set to 0x1 to indicate a channel associated with a pseudowire [RFC4385] 🧚

The Version and the Reserved fields are set to zero, and the Channel Type is set to 0x7 to indicate that the payload is BFD without IP/UDP headers, as defined in [RFC5885] πŸ“

3.2. VCCV Profile 2: BFD with IP/UDP Headers 🌈

When PE1 and PE2 are IP capable and have been configured with IP addresses, the following VCCV mechanism MAY be used πŸ¦„

The connection verification method VCCV uses is BFD with diagnostics, as defined in [RFC5885] πŸ’œ

[RFC5085] specifies that the first nibble is set to 0x1 to indicate a channel associated with a pseudowire [RFC4385] ⭐

The Version and the Reserved fields are set to 0, and the Channel Type is set to 0x21 for IPv4 and 0x56 for IPv6 payloads [RFC4446] 🫧

4. MPLS Layer πŸͺ„

The architecture of MPLS-enabled networks is described in [RFC3031] πŸ“š This section covers a subset of the functionality of the MPLS-enabled PSN, and there are two cases to think about:

  1. The case where external configuration is used.
  2. The case where a control plane is available.

If you want a control plane, it may be based on Generalized Multi-Protocol Label Switching (GMPLS) [RFC3945] 🌟

4.1. External Configuration πŸ› οΈ

External provisioning isn't ruled out by the current MPLS specifications πŸ™Œ It's just explicitly described in this specification, to address the requirements the ITU specified in [RFC5654], so it works for transport environments πŸš€

The MPLS encapsulation is specified in [RFC3032] 🧁 All MPLS labels used in the server layer (Figure 1) MUST be statically provisioned πŸ”’ Labels may be selected from either the per-platform or the per-interface label space 🎯

All transport Label Switched Paths (LSPs) used by the PWs described in Section 2 MUST support both unidirectional and bidirectional point-to-point connections πŸ’«

The transport LSPs SHOULD support unidirectional point-to-multipoint connections 🌷

The forward and backward directions of a bidirectional connection SHOULD follow a symmetrically routed (reciprocal) LSP in the server network πŸ”

Equal Cost Multipath (ECMP) load balancing MUST NOT be configured on the transport LSPs used by the PWs described in Section 2 🚫

Merging Label Switched Paths is prohibited, so it MUST NOT be configured for the transport LSPs used by the PWs described in Section 2 πŸ™…β€β™€οΈ

Penultimate hop popping by the transport Label Switched Routers (LSRs) MUST be disabled on transport LSPs πŸ«—

Both EXP-Inferred-PSC LSPs (E-LSP) and Label-Only-Inferred-PSC LSPs (L-LSP) MUST be supported, as defined in [RFC3270] πŸŽ€

For the MPLS EXP field [RFC3270] [RFC5462], only the pipe and short-pipe models are supported πŸ’…

4.2. Control Plane Configuration 🧠

Here we describe the control plane configuration when [RFC3209], or the bidirectional support in GMPLS ([RFC3471] and [RFC3473]), is used to configure the transport MPLS PSN 🎯 When these protocols provide the control plane, the following are automatically provided:

  1. There is no label merging unless it is deliberately enabled to support Fast Re-route (FRR) [RFC3209] ✨
  2. A single path is provided end-to-end (there is no ECMP) πŸ›€οΈ
  3. Label Switched Paths may be unidirectional or bidirectional as required πŸ¦‹

Additionally, the following configuration restrictions, required to support external configuration, MUST be applied:

  • Penultimate hop popping [RFC3031] by the LSRs MUST be disabled on LSPs providing PWE3 transport network functionality 🚫
  • Both E-LSP and L-LSP MUST be supported, as defined in [RFC3270] πŸ’–
  • The MPLS EXP [RFC5462] field is supported according to [RFC3270] only when the pipe and short-pipe models are utilized 🌸

5. Congestion Considerations 🌊

This document describes a method of using the existing PWE3 Ethernet pseudowire [RFC4448] to solve a particular network application 🧩 The congestion considerations associated with that pseudowire, and all subsequent work on congestion considerations for Ethernet pseudowires, apply to this RFC too πŸ’œ

6. Security Considerations πŸ”

🚨 Serious security time, bestie! Read this part carefully. 🚨

This RFC describes the use of existing IETF Proposed Standards to solve a network problem, and raises no new security issues βœ…

The PWE3 security considerations are described in [RFC3985], and the Ethernet pseudowire security considerations are in [RFC4448] πŸ“–

The Ethernet pseudowire is transported on an MPLS PSN, so the security of the pseudowire itself is only as good as the security of the MPLS PSN 😬 The server MPLS PSN can be secured by various methods, as described in [RFC3031] πŸ›‘οΈ

The use of static configuration exposes an MPLS PSN to a different set of security risks than a PSN using dynamic routing πŸ’€ If a path is misconfigured in a statically configured network, the result can be a persistent black hole or, much worse, a persistent forwarding loop πŸŒ€ On the other hand, most of the distributed components are less complex 🧩 This is offset, however, by the need to provide fail-over and redundancy in the management and configuration system, and in the communications paths between those central systems and the LSRs 🫠

Security achieved by access control of media access control (MAC) addresses, and the security of the client layers, is out of the scope of this document πŸ™ˆ

7. Acknowledgements 🫢

The authors wish to thank Matthew Bocci, John Drake, Adrian Farrel, Andy Malis, and Yaakov Stein for their review and proposed enhancements to the text πŸ’

8. References πŸ“š

8.1. Normative References πŸ“Œ

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC3031]  Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
           Label Switching Architecture", RFC 3031, January 2001.

[RFC3032]  Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y.,
           Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack
           Encoding", RFC 3032, January 2001.

[RFC3209]  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.

[RFC3270]  Le Faucheur, F., Wu, L., Davie, B., Davari, S., Vaananen,
           P., Krishnan, R., Cheval, P., and J. Heinanen, "Multi-
           Protocol Label Switching (MPLS) Support of Differentiated
           Services", RFC 3270, May 2002.

[RFC3471]  Berger, L., "Generalized Multi-Protocol Label Switching
           (GMPLS) Signaling Functional Description", RFC 3471,
           January 2003.

[RFC3473]  Berger, L., "Generalized Multi-Protocol Label Switching
           (GMPLS) Signaling Resource ReserVation Protocol-Traffic
           Engineering (RSVP-TE) Extensions", RFC 3473, January 2003.

[RFC3945]  Mannie, E., "Generalized Multi-Protocol Label Switching
           (GMPLS) Architecture", RFC 3945, October 2004.

[RFC4385]  Bryant, S., Swallow, G., Martini, L., and D. McPherson,
           "Pseudowire Emulation Edge-to-Edge (PWE3) Control Word for
           Use over an MPLS PSN", RFC 4385, February 2006.

[RFC4446]  Martini, L., "IANA Allocations for Pseudowire Edge to Edge
           Emulation (PWE3)", BCP 116, RFC 4446, April 2006.

[RFC4447]  Martini, L., Rosen, E., El-Aawar, N., Smith, T., and G.
           Heron, "Pseudowire Setup and Maintenance Using the Label
           Distribution Protocol (LDP)", RFC 4447, April 2006.

[RFC4448]  Martini, L., Rosen, E., El-Aawar, N., and G. Heron,
           "Encapsulation Methods for Transport of Ethernet over MPLS
           Networks", RFC 4448, April 2006.

[RFC5085]  Nadeau, T. and C. Pignataro, "Pseudowire Virtual Circuit
           Connectivity Verification (VCCV): A Control Channel for
           Pseudowires", RFC 5085, December 2007.

[RFC5462]  Andersson, L. and R. Asati, "Multiprotocol Label Switching
           (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic
           Class" Field", RFC 5462, February 2009.

[RFC5880]  Katz, D. and D. Ward, "Bidirectional Forwarding Detection
           (BFD)", RFC 5880, June 2010.

[RFC5885]  Nadeau, T. and C. Pignataro, "Bidirectional Forwarding
           Detection (BFD) for the Pseudowire Virtual Circuit
           Connectivity Verification (VCCV)", RFC 5885, June 2010.

8.2. Informative References πŸ’‘

[RFC3985]  Bryant, S. and P. Pate, "Pseudo Wire Emulation Edge-to-
           Edge (PWE3) Architecture", RFC 3985, March 2005.

[RFC5654]  Niven-Jenkins, B., Brungard, D., Betts, M., Sprecher, N.,
           and S. Ueno, "Requirements of an MPLS Transport Profile",
           RFC 5654, September 2009.

Authors' Addresses πŸ¦‹

Stewart Bryant (editor)
Cisco Systems
250, Longwater, Green Park
Reading  RG2 6GB
UK

EMail: stbryant@cisco.com

Monique Morrow
Cisco Systems
Glatt-com
CH-8301 Glattzentrum
Switzerland

EMail: mmorrow@cisco.com

George Swallow
Cisco Systems
1414 Massachusetts Ave.
Boxborough, MA  01719

EMail: swallow@cisco.com

Rao Cherukuri
Juniper Networks
1194 N. Mathilda Ave.
Sunnyvale, CA  94089

EMail: cherukuri@juniper.net

Thomas D. Nadeau
Huawei Technologies
Central Expressway
Santa Clara, CA  95050

EMail: thomas.nadeau@huawei.com

Neil Harrison
BT

EMail: neil.2.harrison@bt.com

Ben Niven-Jenkins
Velocix
326 Science Park
Milton Road, Cambridge  CB4 0WG
UK

EMail: ben@niven-jenkins.co.uk

That's the whole RFC, bestie! πŸŒˆπŸŽ‰ You're now basically a pseudowire expert βœ¨πŸ‘‘

πŸ“¦ where this page comes from