MPLS Working GroupInternet Engineering Task Force (IETF) A. MalisInternet-DraftRequest for Comments: 8596 S. BryantIntended status:Category: InformationalHuawei Technologies Expires: September 22, 2019Futurewei ISSN: 2070-1721 J. Halpern Ericsson W. Henderickx NokiaMarch 21,June 2019 MPLS Transport EncapsulationFor The SFC NSH draft-ietf-mpls-sfc-encapsulation-04for the Service Function Chaining (SFC) Network Service Header (NSH) Abstract This document describes how to use a Service Function Forwarder (SFF) Label (similar to a pseudowire label or VPN label) to indicate the presence of a Service Function Chaining (SFC) Network Service Header (NSH) between an MPLS label stack and thepacketNSH originalpacket/ frame.packet/frame. This allows SFC packets using the NSH to be forwarded between SFFs over an MPLSnetwork, andnetwork. The label is also used to selectone ofbetween multiple SFFs in the destination MPLS node. Status of This Memo ThisInternet-Draftdocument issubmitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documentsnot an Internet Standards Track specification; it is published for informational purposes. This document is a product of the Internet Engineering Task Force (IETF).Note that other groups may also distribute working documents as Internet-Drafts. The listIt represents the consensus ofcurrent Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draftthe IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documentsvalidapproved by the IESG are candidates fora maximumany level of Internet Standard; see Section 2 ofsix monthsRFC 7841. Information about the current status of this document, any errata, and how to provide feedback on it may beupdated, replaced, or obsoleted by other documentsobtained atany time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on September 22, 2019.https://www.rfc-editor.org/info/rfc8596. Copyright Notice Copyright (c) 2019 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 (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as 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 are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . 2....................................................2 1.1. Terminology. . . . . . . . . . . . . . . . . . . . . . . 3................................................3 2. MPLS Encapsulation Using an SFF Label. . . . . . . . . . . . 3...........................3 2.1. MPLS Label Stack Construction at the Sending Node. . . . 4..........4 2.2. SFF Label Processing at the Destination Node. . . . . . 5...............5 3.Equal CostEqual-Cost Multipath (ECMP) Considerations. . . . . . . . . 5......................5 4. Operations, Administration, and Maintenance (OAM) Considerations. . . . . . . . . . . . . . . . . . . . . . . 6..................................................6 5. IANA Considerations. . . . . . . . . . . . . . . . . . . . . 6.............................................6 6. Security Considerations. . . . . . . . . . . . . . . . . . . 6.........................................6 7.Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 8.References. . . . . . . . . . . . . . . . . . . . . . . . . 6 8.1.......................................................7 7.1. Normative References. . . . . . . . . . . . . . . . . . 6 8.2........................................7 7.2. Informative References. . . . . . . . . . . . . . . . . 7.....................................8 Acknowledgements ...................................................9 Authors' Addresses. . . . . . . . . . . . . . . . . . . . . . . 8.................................................9 1. Introduction As discussed in [RFC8300], a number of transport encapsulations for the Service Function Chaining (SFC) Network Service Header (NSH) already exist, such as Ethernet, UDP, GRE, and others. This document describes an MPLS transport encapsulation for the NSH and how to use a Service Function Forwarder (SFF) [RFC7665] Label to indicate the presence of the NSH in the MPLS packet payload. This allows SFC packets using the NSH to be forwarded between SFFs in an MPLS transport network, where MPLS is used to interconnect the network nodes that contain one or more SFFs. The label is also used to select between multiple SFFs in the destination MPLS node.ThisFrom an SFC perspective, this encapsulation is equivalentfrom an SFC perspectiveto other transport encapsulations of packets using the NSH. This can be illustrated by adding an additional line to the example of a next-hopSPI/SI-to-networkSPI / SI-to-network ("SPI" and "SI" stand for "Service Path Identifier" and "Service Index") overlay network locator mapping in Table 1 of [RFC8300]: +------+------+---------------------+-------------------------+ | SPI | SI | Next Hop(s) | Transport Encapsulation | +------+------+---------------------+-------------------------+ | 25 | 220 | Label 5467 | MPLS | +------+------+---------------------+-------------------------+ Table 1: Extension toRFC 8300Table 1 in RFC 8300 SFF Labels are similar to other service labels at the bottom of an MPLS label stack that denote the contents of the MPLS payload being other than a normally routed IP packet, such as alayerLayer 2 pseudowire, an IP packet that is routed in a VPN context with a private address, or an Ethernet virtual private wire service. This informational document follows well-established MPLS procedures and does not require any actions by IANA or any new protocol extensions. Note that using the MPLS label stack as a replacement for the SFC NSH, covering use cases that do not require per-packet metadata, is describedelsewhere [I-D.ietf-mpls-sfc].in [RFC8595]. 1.1. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. 2. MPLS Encapsulation Using an SFF Label The encapsulation is a standard MPLS label stack [RFC3032] with an SFF Label at the bottom of the stack, followed byaan NSH as defined by [RFC8300] and the NSH original packet/frame. Much like a pseudowire label, an SFF Label MUST be allocated by the downstream receiver of the NSH from its per-platform label space, since the meaning of the label isidenticalidentical, independent of which incoming interface it is received from [RFC3031]. If a receiving node supports more than one SFF (i.e., more than one SFC forwarding instance), then the SFF Label can be used to select the proper SFF, by having the receiving node advertise more than one SFF Label to its upstream sending nodes as appropriate. The method used by the downstream receiving node to advertise SFF Labels to the upstream sending node is out of scopeoffor this document. That said, a number of methods are possible, such as via a protocol exchange, or via a controller that manages both the sender and the receiver usingNETCONF/YANG,the Network Configuration Protocol (NETCONF) / YANG, BGP,PCEP,the Path Computation Element Communication Protocol (PCEP), etc. One such BGP-based method has already beendefined,defined and is documented in[I-D.ietf-bess-nsh-bgp-control-plane].[BGP-NSH-SFC]. This does not constrain the further definition of other such advertisement methods in the future. While the SFFlabelLabel will usually be at the bottom of the label stack, there may be cases where there are additional label stack entries beneath it. For example, when an Associated Channel Header (ACH) is carried that applies to the SFF, a Generic Associated Channel Label (GAL) [RFC5586] will be in the label stack below the SFF. Similarly, an Entropy LabelIndicator/EntropyIndicator / Entropy Label (ELI/EL) [RFC6790] may be carried below the SFF in the label stack. This is identical to the situation with VPN labels. This document does not definea use forthe setting of the Traffic Class (TC) field [RFC5462] (formerly known as the Experimental Use (EXP) bits [RFC3032]) in the SFF Label. 2.1. MPLS Label Stack Construction at the Sending Node When one SFF wishes to send an SFC packet withaan NSH to another SFF over an MPLS transport network, a label stack needs to be constructed by the MPLS node that contains the sending SFF in order to transport the packet to the destination MPLS node that contains the receiving SFF. The label stack is constructed as follows: 1. Push zero or more labels that are interpreted by the destination MPLS node on to the packet, such as theGeneric Associated ChannelGAL [RFC5586]label(see Section 4). The TTL for these labels is set according to the relevant standards that define these labels. 2. Push the SFF Label to identify the desired SFF in the receiving MPLS node. The TTL for this MPLS label MUST be set toone1 to avoid mis-forwarding. 3. Push zero or more additional labels such that (a) the resulting label stack will cause the packet to be transported to the destination MPLS node, and (b) when the packet arrives at the destination node, either: * the SFF Label will be at the top of the label stack (this is typically the case when penultimate hop popping is used at the penultimatenode, or the source and destination nodes are direct neighbors),node), or * as a part of normal MPLS processing, the SFF Label becomes the top label in the stack before the packet is forwarded to another node and before the packet is dispatched to a higher layer. The TTL for these labels is set byconfiguration,configuration or set to the defaults for normal MPLS operation in the network. 2.2. SFF Label Processing at the Destination Node The destination MPLS node performs a lookup on the SFFlabelLabel to retrieve the next-hop context between the SFF and SF,e.g.e.g., to retrieve the destinationMACMedia Access Control (MAC) address in the case where native Ethernet encapsulation is used between the SFF and SF. How the next-hop context is populated is out ofthescopeoffor this document. The receiving SFF SHOULD check that the received SFFlabelLabel has a TTL of 1 upon receipt. Any other values indicate a likely error condition and SHOULD result in discarding the packet. The receiving MPLS node then pops the SFF Label (and any labels beneath it) so that the destination SFF receives the SFC packet with the NSHisat the top of the packet. 3.Equal CostEqual-Cost Multipath (ECMP) Considerations As discussed in [RFC4928] and [RFC7325], there are ECMP considerations for payloads carried by MPLS. Many existing routers use deep packet inspection to examine the payload of an MPLSpacket, and ifpacket. If the first nibble of the payload is equal to 0x4 or 0x6, these routers (sometimes incorrectly, as discussed in [RFC4928]) assume that the payload is IPv4 orIPv6 respectively, andIPv6, respectively and, as a result, perform ECMP load balancing based on (presumed) information present in IP/TCP/UDP payload headers or in a combination of MPLS label stack and (presumed) IP/TCP/UDP payload headers in the packet. For SFC, ECMP may or may not be desirable. To prevent ECMP when it is not desired, the NSH Base Header was carefully constructed so that the NSH could not look like IPv4 or IPv6 based on its first nibble. See Section 2.2 of [RFC8300] for further details. Accordingly, the default behavior for MPLS-encapsulated SFC is to not useECMP.ECMP other than by using entropy derived from the MPLS label stack. This results in all packets going to the same SF taking the same path regardless of the use of ECMP in the network. If ECMP is desired when SFC is used with an MPLS transport network, there are two possibleoptions, Entropyoptions: entropy labels [RFC6790] andFlow-Aware Transportflow-aware transport [RFC6391] labels. A recommendation regarding choosing between these options, and their proper placement in the label stack, is left for future study. 4. Operations, Administration, and Maintenance (OAM) Considerations OAM at the SFCLayerlayer is handled by SFC-defined mechanisms [RFC8300]. However, OAM may be required at the MPLS transport layer. If so, then standard MPLS-layer OAM mechanisms such as the GAL [RFC5586] may be used at the transport labellayer (the labels above the SFF label).layer. 5. IANA Considerations This documentdoes not request any actions from IANA. Editorial note to RFC Editor: This section may be removed at your discretion.has no IANA actions. 6. Security Considerations This document describes a method for transporting SFC packets using the NSH over an MPLS transport network. It follows well-established MPLS procedures in widespread operationaluse anduse. It does not define any new protocol elements or allocate any new code points, and it is no more or less secure than carrying any other protocol over MPLS. To the MPLS network, the NSH and its contentsisare simply an opaque payload. In addition, the security considerations in[I-D.ietf-mpls-sfc][RFC8595] also apply to this document. 7.Acknowledgements The authors would like to thank Jim Guichard, Eric Rosen, Med Boucadair, Sasha Vainshtein, Jeff Tantsura, Anoop Ghanwani, John Drake, Loa Andersson, Carlos Pignataro, Christian Hopps, and Benjamin Kaduk for their reviews and comments. 8.References8.1.7.1. Normative References[I-D.ietf-mpls-sfc] Farrel, A., Bryant, S., and J. Drake, "An MPLS-Based Forwarding Plane for Service Function Chaining", draft- ietf-mpls-sfc-07 (work in progress), March 2019.[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>. [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol Label Switching Architecture", RFC 3031, DOI 10.17487/RFC3031, January 2001, <https://www.rfc-editor.org/info/rfc3031>. [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, <https://www.rfc-editor.org/info/rfc3032>. [RFC5462] Andersson, L. and R. Asati, "Multiprotocol Label Switching (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic Class" Field", RFC 5462, DOI 10.17487/RFC5462, February 2009, <https://www.rfc-editor.org/info/rfc5462>. [RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function Chaining (SFC) Architecture", RFC 7665, DOI 10.17487/RFC7665, October 2015, <https://www.rfc-editor.org/info/rfc7665>. [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>. [RFC8300] Quinn, P., Ed., Elzur, U., Ed., and C. Pignataro, Ed., "Network Service Header (NSH)", RFC 8300, DOI 10.17487/RFC8300, January 2018, <https://www.rfc-editor.org/info/rfc8300>.8.2.[RFC8595] Farrel, A., Bryant, S., and J. Drake, "An MPLS-Based Forwarding Plane for Service Function Chaining", RFC 8595, DOI 10.17487/RFC8595, June 2019, <https://www.rfc-editor.org/info/rfc8595>. 7.2. Informative References[I-D.ietf-bess-nsh-bgp-control-plane][BGP-NSH-SFC] Farrel, A., Drake, J., Rosen, E., Uttaro, J., and L. Jalil, "BGP Control Plane for NSH SFC",draft-ietf-bess- nsh-bgp-control-plane-09 (workWork inprogress), MarchProgress, draft-ietf-bess-nsh-bgp-control-plane-11, May 2019. [RFC4928] Swallow, G., Bryant, S., and L. Andersson, "Avoiding Equal Cost Multipath Treatment in MPLS Networks", BCP 128, RFC 4928, DOI 10.17487/RFC4928, June 2007, <https://www.rfc-editor.org/info/rfc4928>. [RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., "MPLS Generic Associated Channel", RFC 5586, DOI 10.17487/RFC5586, June 2009, <https://www.rfc-editor.org/info/rfc5586>. [RFC6391] Bryant, S., Ed., Filsfils, C., Drafz, U., Kompella, V., Regan, J., and S. Amante, "Flow-Aware Transport of Pseudowires over an MPLS Packet Switched Network", RFC 6391, DOI 10.17487/RFC6391, November 2011, <https://www.rfc-editor.org/info/rfc6391>. [RFC6790] Kompella, K., Drake, J., Amante, S., Henderickx, W., and L. Yong, "The Use of Entropy Labels in MPLS Forwarding", RFC 6790, DOI 10.17487/RFC6790, November 2012, <https://www.rfc-editor.org/info/rfc6790>. [RFC7325] Villamizar, C., Ed., Kompella, K., Amante, S., Malis, A., and C. Pignataro, "MPLS Forwarding Compliance and Performance Requirements", RFC 7325, DOI 10.17487/RFC7325, August 2014, <https://www.rfc-editor.org/info/rfc7325>. Acknowledgements The authors would like to thank Jim Guichard, Eric Rosen, Med Boucadair, Alexander (Sasha) Vainshtein, Jeff Tantsura, Anoop Ghanwani, John Drake, Loa Andersson, Carlos Pignataro, Christian Hopps, and Benjamin Kaduk for their reviews and comments. Authors' Addresses Andrew G. MalisHuawei TechnologiesFuturewei Email: agmalis@gmail.com Stewart BryantHuawei TechnologiesFuturewei Email: stewart.bryant@gmail.com Joel M. Halpern Ericsson Email: joel.halpern@ericsson.com Wim Henderickx Nokia Email: wim.henderickx@nokia.com