Service Function Chaining | E. Wang |
Internet-Draft | K. Leung |
Intended status: Informational | Cisco Systems Inc. |
Expires: April 28, 2017 | October 25, 2016 |
Network Service Header (NSH) Context Header Allocation (Network Security)
draft-wang-sfc-nsh-ns-allocation-01
This document provides a recommended default allocation of the mandatory fixed context headers for a Network Service Header (NSH) relevant to Service Function Chaining (SFC) for network security Service Functions. NSH is defined in [I-D.ietf-sfc-nsh]. This allocation is intended to support the use cased described in [I-D.wang-sfc-ns-use-cases].
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on April 28, 2017.
Copyright (c) 2016 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, 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.
Service Function Chaining (SFC) provides a mechanism for network traffic to go through a set of Service Functions in sequence. Network Service Header (NSH) allows metadata to be shared between Service Functions along with the packets. Such metadata is carried by either a fixed number of 32-bit context headers (MD-Type 1) or a variable number of TLVs (MD-Type 2), as defined in NSH [I-D.ietf-sfc-nsh]. This document provides a recommended default allocation of the fixed size context headers for network security Service Functions forming a Service Function Chain. The allocation may also form a MD-Type 2 metadata TLV. Supporting use cases for a metadata definition in this context are described in SFC-NS-Use-Cases [I-D.wang-sfc-ns-use-cases] . This document does not define any other variable TLVs. It does not address the control plane mechanisms.
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].
This document uses the terms as defined in RFC 7498 [RFC7498], [RFC7665] and [I-D.ietf-sfc-nsh].
NSH MD-Type 1 is composed of three parts as described in [I-D.ietf-sfc-nsh]: a 4-byte base header, a 4-byte service path header, and four 4-byte mandatory context headers.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ver|O|C|R|R|R|R|R|R| Length | MD-Type = 1 | Next Protocol | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Service Path ID | Service Index | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mandatory Context Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mandatory Context Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mandatory Context Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mandatory Context Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: Network Service Header - MD-Type 1
The following context header allocation provides information used to support SFC operation within a generic network security environment. The 16-byte context headers are used to deliver metadata and classification results between security Service Functions. Service Functions may use the metadata for local policy enforcement, security actions, classification refinement, and other functionality.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Session ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |D| Reserved | Tenant ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Class / Reserved | Source Class | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Dest Score | Src Score | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: NSH Security Context Allocation
The specific 16-byte allocation of the mandatory context headers is as follows:
Tenant ID: The tenant identifier is used to represent the tenant or security policy domain that the Service Function Chain is being applied to. The Tenant ID is a unique value assigned by a control plane. The distribution of Tenant ID's is outside the scope of this document. As an example application of this field, the first node on the Service Function Chain may insert a VRF number, VLAN number, VXLAN VNI or a policy domain ID.
This document describes an allocation scheme for the NSH context headers in the context of network security SFC use cases.
The suggested allocation in this document would be considered as a guideline only. Some of the allocated fields are specific to certain use cases. A control plane mechanism is required to ensure consistency among the SFC components participating in the allocation scheme. The actual control plane mechanism is out of the scope of this document.
The SFC control plane responsible for identifying and distributing the allocation scheme should ensure the communication mechanism is secure.
The metadata defined in this document carries important information for participating Service Functions to make security policy decisions. Some of the metadata such as the security score may be accumulated before a Service Function takes an action. There is a risk that the metadata may be intercepted or even spoofed by an unauthorized party. Proper precaution must be taken to ensure the confidentiality and integrity of the metadata fields.
Authors would like to thank Jeremy Felix and Jay Iyer for their contributions.
This document includes no request to IANA.
[I-D.ietf-sfc-nsh] | Quinn, P. and U. Elzur, "Network Service Header", Internet-Draft draft-ietf-sfc-nsh-10, September 2016. |
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |
[RFC7498] | Quinn, P. and T. Nadeau, "Problem Statement for Service Function Chaining", RFC 7498, DOI 10.17487/RFC7498, April 2015. |
[RFC7665] | Halpern, J. and C. Pignataro, "Service Function Chaining (SFC) Architecture", RFC 7665, DOI 10.17487/RFC7665, October 2015. |
[I-D.wang-sfc-ns-use-cases] | Wang, E., Leung, K., Felix, J. and J. Iyer, "Service Function Chaining Use Cases for Network Security", Internet-Draft draft-wang-sfc-ns-use-cases-01, March 2016. |