idnits 2.17.1 draft-farrel-sfc-convent-05.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (December 29, 2017) is 2309 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-15) exists of draft-ietf-sfc-oam-framework-03 == Outdated reference: A later version (-12) exists of draft-wang-sfc-multi-layer-oam-10 Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SFC Working Group A. Farrel 3 Internet-Draft J. Drake 4 Intended status: Standards Track Juniper Networks 5 Expires: July 2, 2018 December 29, 2017 7 Operating the Network Service Header (NSH) with Next Protocol "None" 8 draft-farrel-sfc-convent-05 10 Abstract 12 This document describes the use of the Network Service Header (NSH) 13 in a Service Function Chaining (SFC) enabled network with no payload 14 data and carrying only metadata. This is achieved by defining a new 15 NSH "Next Protocol" type value of "None". 17 This document illustrates some of the functions that may be achieved 18 or enhanced by this mechanism, but it does not provide an exhaustive 19 list of use cases, nor is it intended to be definitive about the 20 functions it describes. It is expected that other documents will 21 describe specific use cases in more detail and will define the 22 protocol mechanics for each use case. 24 Requirements Language 26 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 27 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 28 "OPTIONAL" in this document are to be interpreted as described in BCP 29 14 [RFC2119] [RFC8174] when, and only when, they appear in all 30 capitals, as shown here. 32 Status of This Memo 34 This Internet-Draft is submitted in full conformance with the 35 provisions of BCP 78 and BCP 79. 37 Internet-Drafts are working documents of the Internet Engineering 38 Task Force (IETF). Note that other groups may also distribute 39 working documents as Internet-Drafts. The list of current Internet- 40 Drafts is at https://datatracker.ietf.org/drafts/current/. 42 Internet-Drafts are draft documents valid for a maximum of six months 43 and may be updated, replaced, or obsoleted by other documents at any 44 time. It is inappropriate to use Internet-Drafts as reference 45 material or to cite them other than as "work in progress." 47 This Internet-Draft will expire on July 2, 2018. 49 Copyright Notice 51 Copyright (c) 2017 IETF Trust and the persons identified as the 52 document authors. All rights reserved. 54 This document is subject to BCP 78 and the IETF Trust's Legal 55 Provisions Relating to IETF Documents 56 (https://trustee.ietf.org/license-info) in effect on the date of 57 publication of this document. Please review these documents 58 carefully, as they describe your rights and restrictions with respect 59 to this document. Code Components extracted from this document must 60 include Simplified BSD License text as described in Section 4.e of 61 the Trust Legal Provisions and are provided without warranty as 62 described in the Simplified BSD License. 64 Table of Contents 66 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 67 2. The Network Service Header . . . . . . . . . . . . . . . . . 3 68 2.1. Next Protocol 'None' . . . . . . . . . . . . . . . . . . 4 69 3. Processing Rules . . . . . . . . . . . . . . . . . . . . . . 4 70 4. Backward Compatibility . . . . . . . . . . . . . . . . . . . 5 71 5. Overview of Use Cases . . . . . . . . . . . . . . . . . . . . 6 72 5.1. Per-SFP Metadata . . . . . . . . . . . . . . . . . . . . 6 73 5.2. Per-Flow Metadata . . . . . . . . . . . . . . . . . . . . 6 74 5.3. Coordination Between SFC-Aware SFIs . . . . . . . . . . . 6 75 5.4. Operations, Administration, and Maintenance (OAM) . . . . 7 76 5.5. Control Plane and Management Plane Uses . . . . . . . . . 8 77 5.6. Non-Applicable Use Cases . . . . . . . . . . . . . . . . 8 78 6. Security Considerations . . . . . . . . . . . . . . . . . . . 8 79 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 80 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 9 81 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 82 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 83 10.1. Normative References . . . . . . . . . . . . . . . . . . 10 84 10.2. Informative References . . . . . . . . . . . . . . . . . 10 85 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 87 1. Introduction 89 An architecture for Service Function Chaining (SFC) is presented in 90 [RFC7665]. That architecture enables packets to be forwarded along 91 Service Function Paths (SFPs) to pass through various Service 92 Functions (SFs) that act on the packets. Each packet is encapsulated 93 with a Network Service Header (NSH) [I-D.ietf-sfc-nsh] that 94 identifies the SFP that the packet travels along (by means of a 95 Service Path Identifier - SPI) and the hop (i.e., the next SF to be 96 executed) along the SFP that the packet has reached (by means of a 97 Service Index - SI). The SPI and SI are fields encoded in the NSH. 99 Packets are classified at the SFC network ingress boundaries by 100 Classifiers (section 4.4 of [RFC7665]) and have an NSH applied to 101 them. Such packets are forwarded between Service Function Forwarders 102 (SFFs) using tunnels across the underlay network, and each SFF may 103 hand the packet off to one or more Service Function Instances (SFIs) 104 according to the definition of the SFP. 106 The SFC Classifier or any SFC-aware SFI may wish to share information 107 (possibly state information) about the SFP, the traffic flow, or a 108 specific packet, and they may do this by adding "metadata" to packets 109 as part of the NSH. Metadata may be used to enhance or enable the 110 function performed by SFC-aware SFs, may enable coordination and data 111 exchange between SFIs, or may be used to assist a network operator in 112 the diagnosis and monitoring of an SFP. The nature of metadata to be 113 supplied and consumed is implementation- and deployment-specific. 115 This document defines a mechanism for metadata to be carried on an 116 SFP without the need for payload data. This mechanism enables 117 diagnosis and monitoring of SFPs, and coordination between SFC-aware 118 SFIs. The mechanism can be applied without the need for traffic to 119 be flowing, and if traffic is flowing it can be applied without the 120 need to insert what might be substantial amounts of metadata into 121 data packets (an operation that may be costly in some hardware). 123 This document describes how this function is achieved through the use 124 of a new value for the NSH "Next Protocol" field to indicate "None". 125 Like any NSH packets, such packets are contained within the SFC- 126 enabled domain. 128 This document illustrates some of the functions that may be achieved 129 or enhanced by this mechanism, but it does not provide an exhaustive 130 list of use cases, nor is it intended to be definitive about the 131 functions it describes (see Section 5). 133 This document uses the terms defined in [RFC7665] and 134 [I-D.ietf-sfc-nsh]. 136 2. The Network Service Header 138 The NSH includes a field called "Next Protocol" that is used to 139 indicate the nature of the payload data that follows the NSH. The 140 field can be used by any component that processes the NSH (for 141 example, to understand how to interpret and parse the payload) and by 142 nodes at the end of the SFP that remove the NSH and forward the 143 payload data. 145 2.1. Next Protocol 'None' 147 This document defines a new value (TBD1) for the "Next Protocol" 148 field to indicate that the next protocol is "None" meaning that there 149 is no user/payload data following the NSH. 151 When the next protocol is "None" the rest of the NSH still has 152 meaning and, in particular, the metadata carried in the NSH may still 153 be present. It is not intended that a packet with next protocol set 154 to "None" is sent with no metadata (see Section 3). Thus, an SFC- 155 aware node SHOULD NOT create a packet with next protocol set to 156 "None", Metadata Type set to 0x2, and with NSH Length of 0x2. 158 3. Processing Rules 160 A packet with no payload data may be inserted at the head end of an 161 SFP (such as at a Classifier) and may be easily forwarded by an SFF 162 or SFI on the SFP using the processing rules defined in 163 [I-D.ietf-sfc-nsh]. 165 A packet with no payload may also be generated by an SFC-aware SFI as 166 a result of processing an incoming packet (i.e., triggered by a 167 condition arising from processing a normal NSH packet with a 168 payload). In such cases, the SPI/SI can be inherited from the 169 original packet or can be set according to information supplied 170 through the control plane, or management plane, or indicated by 171 information carried in the metadata of the data packet. This 172 document does not further specify the triggers to generate an NSH 173 packet with a "Next Protocol" set to "None". 175 An SFC-aware node wishing to send metadata without a data packet 176 (i.e., a node that conforms to this specification): 178 o MUST create a packet carrying an NSH and the desired metadata 180 o MUST set the "Next Protocol" field to TBD1 182 o SHOULD ensure that there are no bytes following the end of the NSH 183 (i.e., that there is no payload data) 185 o MUST encapsulate and send the packet as normal for tunneling to 186 the next hop on the SFP as would be done for any NSH packet (i.e., 187 for a data packet following the SFP). 189 A transit node (SFF, SFI, or Classifier) that conforms to this 190 specification and that receives a packet with "Next Protocol" 191 indicating "None" MUST NOT attempt to parse or process beyond the end 192 of the NSH, but SHOULD process the NSH and the metadata as normal. 194 Processing for nodes that do not support "Next Protocol" set to 195 "None" is described in Section 4. Note, however, that an 196 intermediate node that is instructed to strip all metadata from 197 packets will create a packet with an NSH but no metadata and no 198 payload. Such packets SHOULD NOT continue to be forwarded along the 199 SFP. 201 A node that is the egress of an SFP would normally strip the NSH and 202 forward the payload according to the setting of the "Next Protocol" 203 field. Such nodes MUST NOT forward packets with "Next Protocol" 204 indicating "None" even if there are some bytes after the NSH. 206 In deployments where use of Next-Protocol "None" is not desired, 207 administrators SHOULD instruct SFC-aware nodes to not create such 208 packets and to discard packets with Next-Protocol "None". 210 4. Backward Compatibility 212 SFC-aware nodes that do not understand the meaning of a value 213 contained in the "Next Protocol" field of the NSH are unable to parse 214 the payload. Such nodes silently drop packets with unknown "Next 215 Protocol" values unless explicitly configured to forward them 216 (Section 2.2 of [I-D.ietf-sfc-nsh]). 218 This means that legacy SFC-aware nodes that are unaware of the 219 meaning of the "Next Protocol" value "None" will act as follows: 221 o SFFs can be configured to forward the packets 223 o SFC Proxies will drop the packets 225 o SFIs will most likely drop the packets 227 o Classifiers (i.e., nodes performing reclassification) will most 228 likely drop the packets 230 SFC-aware nodes at the end of an SFP possibly forward packets with no 231 knowledge of the payload in a "pop and forward" form of processing 232 where the NSH is removed and the packet is simply put on an interface 233 and the payload protocol is known a priori (or assumed). It is a 234 general processing rule for all packet forwarding engines that they 235 should not attempt to send packets with zero length. Packets with 236 the NSH "Next Protocol" field set to "None" are expected to have zero 237 payload length and so should not be forwarded once the NSH has been 238 stripped. In any case, as noted in Section 3, SFC-aware nodes at the 239 end of an SFP do not forward packets with "Next Protocol" set to 240 "None". 242 5. Overview of Use Cases 244 5.1. Per-SFP Metadata 246 Per-SFP metadata is metadata that applies to an SFP and any data 247 packets on that SFP. It does not need to be transmitted with every 248 packet, but can be installed at the points of consumption SFP (such 249 as at SFIs) and applied to all packets on the SFP as they pass 250 through this point. It could be installed by inclusion in the NSH of 251 a data packet sent on the SFP, by out of band control or management 252 plane mechanisms, or by separate metadata-only packets using "Next 253 Protocol" set to "None" as described in this document. 255 Per-SFP metadata-only packets may be sent along the path of an SFP 256 simply by setting the correct SPI in the NSH, and setting the SI to 257 the correct value for the hop of the SFP at which the metadata is to 258 be introduced. SFC-aware nodes (e.g., Classifiers) will know the 259 correct SI values to be used from information supplied by the control 260 or management plane as is the case for NSH packets with payload data. 262 5.2. Per-Flow Metadata 264 Per-flow metadata is metadata that applies to a subset of the packets 265 on an SFP, such as packets matching a particular 5 tuple of source 266 address, destination address, source port, destination port, and 267 payload protocol. This metadata also does not need to be transmitted 268 with every packet, but can be installed at the SFIs on the SFP and 269 applied to the packets that match the flow description. 271 If there is just one flow on an SFP then there is no difference 272 between per-flow metadata and per-SFP metadata as described in 273 Section 5.1. 275 In normal processing, the flow to which per-flow metadata applies can 276 be deduced by looking at the payload data in the context of the value 277 of the "Next Protocol" field. However, when "Next Protocol" 278 indicates "None" this cannot be done. In this case the identity of 279 the flow is carried in the metadata itself. 281 5.3. Coordination Between SFC-Aware SFIs 283 A pair of SFC-aware SFIs (adjacent or not) on an SFP may desire to 284 coordinate state and may do this by sending information encoded in 285 metadata. 287 To do this using the mechanisms defined in this document: 289 o There must be an SFP that passes through the two SFIs in the 290 direction of sender to receiver. 292 o The sender must know the correct SPI to use. 294 o The sender must know the correct SI to use for the point at which 295 it resides on the SFP. 297 o Ideally the receiver will know to remove the packet from the SFP 298 and not forward it further as this might share metadata wider than 299 desirable and would cause unnecessary packets in the network. 300 Note, however, that continued forwarding of such packets would not 301 be substantially harmful in its own right. 303 Note that technically (according to the SFC architecture) the process 304 of inserting a packet into an SFP is performed by a Classifier. 305 However, a Classifier may be co-resident with an SFI so an 306 implementation of an SF may also be able to generate NSH packets as 307 described in this document. 309 Note also that a system with SFIs that need to coordinate between 310 each other may be configured so that there is a specific, dedicated 311 SFP between those service functions that is used solely for this 312 purpose. Thus, such an SFI does not need to insert NSH packets onto 313 SFPs used to carry payload data, but can use (and know the SPI of) 314 this special, dedicated SFP. 316 5.4. Operations, Administration, and Maintenance (OAM) 318 Requirements for Operations, Administration, and Maintenance (OAM) in 319 SFC networks are discussed in [I-D.ietf-sfc-oam-framework]. The NSH 320 definition in [I-D.ietf-sfc-nsh] includes an O-bit that indicates 321 that packet contains OAM information. 323 If OAM information is carried in packets that also include payload 324 data, that information might be carried between the NSH and the 325 payload. Therefore, the mechanism defined in this document can also 326 be used to carry OAM information independent of payload data. 328 Sending OAM separate from (but interleaved with) packets that carry 329 payload data may have several advantages including: 331 o Sending OAM when there is no other traffic flowing. 333 o Sending OAM at predictable intervals. 335 o Measuring path qualities distinct from behavior of SFIs. 337 o Sending OAM without needing to rewrite payload data buffers. 339 o Keeping OAM processing components separate from other processing 340 components. 342 Mechanisms for providing active OAM ([RFC7799]) in an SFC network 343 have been proposed [I-D.wang-sfc-multi-layer-oam]. This use case is 344 not intended to define another mechanism for active OAM, but does 345 illustrate a further option for discussion by the working group. 347 5.5. Control Plane and Management Plane Uses 349 As described in Section 5.3, SFPs can be established specifically to 350 carry metadata-only packets. And as described in Section 5.1, 351 metadata-only packets can be sent down existing SFPs. This means 352 that metadata-only packets can be used to carry control plane and 353 management plane messages used to control and manage the SFC network. 355 In effect, SFPs can be established to serve as a Data Control Network 356 (DCN) or Management Control Network (MCN). Further details of this 357 process are out of scope of this document, but it should be 358 understood that, just as for OAM, an essential feature of using a 359 control channel is that the various speakers are assigned identifiers 360 (i.e., addresses). In this case, those identifiers could be SPI/SI 361 pairs, or could be IP addresses as used in the normal control and 362 management plane of the SFC network. 364 5.6. Non-Applicable Use Cases 366 Per-packet metadata is metadata that applies specifically to a single 367 payload packet. It informs an SFI how to handle the payload packet, 368 and does not apply to any other packet. 370 The mechanisms described in this document are not applicable to per- 371 packet metadata because, by definition, if the "Next Protocol" 372 indicates "None" then there is no packet following the NSH for the 373 metadata to be associated with. 375 6. Security Considerations 377 Metadata-only packets as enabled by this document provide a covert 378 channel. However, this is only different from the metadata feature 379 in the normal NSH in that it can be sent without the presence of a 380 data flow. 382 Metadata may, of course, contain sensitive data and may also contain 383 information used to control the behavior of SFIs in the network. As 384 such, this data needs to be protected according to its value and 385 according to the perceived vulnerabilities of the network. 386 Protection of metadata may be achieved by using encrypted transport 387 between SFC entities or by encrypting the metadata in its own right. 388 The need to protect the metadata is not modified by this document and 389 forms part of the NSH definition found in [I-D.ietf-sfc-nsh]. 391 The mechanism described in this document might possibly be used to 392 introduce packets into the SFC overlay network. Therefore measures 393 SHOULD be taken to ensure authorization of sources of such packets, 394 and tunneling of such packets into the network SHOULD be prevented. 395 The amount of packets with "Next Protocol" set to "None" on an SFP 396 SHOULD be rate limited at each point on the SFP to provide additional 397 security. 399 Further discussion of NSH security is presented in 400 [I-D.ietf-sfc-nsh]. 402 7. IANA Considerations 404 IANA maintains a registry called "Network Service Header (NSH) 405 Parameters" with a sub-registry called "NSH Next Protocol". This 406 document requests IANA to allocate a new value as follows: 408 Next Protocol | Description | Reference 409 ---------------+---------------+------------- 410 TBD1 | None | [This.I-D] 412 It is strongly suggested that a value of 0 (zero) be assigned. 414 8. Contributors 416 Lucy Yong 417 Retired 419 9. Acknowledgements 421 Thanks to the attendees at the SFC interim meeting in Westford in 422 January 2017 for discussions that suggested the value of this 423 document. 425 Thanks to Eric Rosen, Med Boucadair, Greg Mirsky, Dave Dolson, and 426 Tal Mizrahi for valuable review comments. 428 10. References 430 10.1. Normative References 432 [I-D.ietf-sfc-nsh] 433 Quinn, P., Elzur, U., and C. Pignataro, "Network Service 434 Header (NSH)", draft-ietf-sfc-nsh-28 (work in progress), 435 November 2017. 437 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 438 Requirement Levels", BCP 14, RFC 2119, 439 DOI 10.17487/RFC2119, March 1997, 440 . 442 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 443 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 444 May 2017, . 446 10.2. Informative References 448 [I-D.ietf-sfc-oam-framework] 449 Aldrin, S., Pignataro, C., Kumar, N., Akiya, N., Krishnan, 450 R., and A. Ghanwani, "Service Function Chaining (SFC) 451 Operation, Administration and Maintenance (OAM) 452 Framework", draft-ietf-sfc-oam-framework-03 (work in 453 progress), September 2017. 455 [I-D.wang-sfc-multi-layer-oam] 456 Mirsky, G., Meng, W., Khasnabish, B., and C. Wang, "Multi- 457 Layer Active OAM for Service Function Chains in Networks", 458 draft-wang-sfc-multi-layer-oam-10 (work in progress), 459 September 2017. 461 [RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function 462 Chaining (SFC) Architecture", RFC 7665, 463 DOI 10.17487/RFC7665, October 2015, 464 . 466 [RFC7799] Morton, A., "Active and Passive Metrics and Methods (with 467 Hybrid Types In-Between)", RFC 7799, DOI 10.17487/RFC7799, 468 May 2016, . 470 Authors' Addresses 472 Adrian Farrel 473 Juniper Networks 475 Email: afarrel@juniper.net 476 John Drake 477 Juniper Networks 479 Email: jdrake@juniper.net