Internet DRAFT - draft-wang-sfc-nsh-ns-allocation
draft-wang-sfc-nsh-ns-allocation
Service Function Chaining E. Wang
Internet-Draft K. Leung
Intended status: Informational A. Ossipov
Expires: December 30, 2017 Cisco Systems Inc.
June 28, 2017
Network Service Header (NSH) Context Header Allocation (Network
Security)
draft-wang-sfc-nsh-ns-allocation-03
Abstract
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].
Status of This Memo
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 December 30, 2017.
Copyright Notice
Copyright (c) 2017 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
Wang, et al. Expires December 30, 2017 [Page 1]
Internet-Draft NSH Context Header Allocation (Security) June 2017
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
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2
2. Definition Of Terms . . . . . . . . . . . . . . . . . . . . . 2
3. Network Service Header (NSH) Context Headers . . . . . . . . 3
4. Recommended Security Mandatory Context Allocation . . . . . . 3
4.1. Network Security Allocation Specifics . . . . . . . . . . 4
5. Context Allocation and Control Plane Considerations . . . . . 5
6. Security Considerations . . . . . . . . . . . . . . . . . . . 6
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 6
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 6
9.1. Normative References . . . . . . . . . . . . . . . . . . 6
9.2. Informative References . . . . . . . . . . . . . . . . . 7
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7
1. Introduction
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.
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. Definition Of Terms
This document uses the terms as defined in RFC 7498 [RFC7498],
[RFC7665] and [I-D.ietf-sfc-nsh].
Wang, et al. Expires December 30, 2017 [Page 2]
Internet-Draft NSH Context Header Allocation (Security) June 2017
3. Network Service Header (NSH) Context Headers
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
4. Recommended Security Mandatory Context Allocation
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|P| Application Session ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Class / Reserved | Source Class |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|B|U|T|D| Rsvd | Tenant ID | Dst Score | Src Score |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: NSH Security Context Allocation
Wang, et al. Expires December 30, 2017 [Page 3]
Internet-Draft NSH Context Header Allocation (Security) June 2017
4.1. Network Security Allocation Specifics
The specific 16-byte allocation of the mandatory context headers is
as follows:
Session ID: Session ID is used to identify a particular
connection, transaction, or any unit that the security Service
Functions use to maintain states. Session ID may be used to
associate a packet with existing states even if the packet does
not contain all the network headers for deriving the Session ID,
or if the network headers are modified by a Service Function. It
may appear in events and logs for correlation between Service
Functions in the SFC-domain.
The Session SHOULD be bi-directional so that both directions of
Service Paths are associated with the same Service Function
instance. Service Path reclassification for the same session MUST
not change the Session ID.
Flag bits of the 2nd word:
D bit: The D-bit is used to indicate whether the Destination
Class field in the 3rd word is used. If D-bit is not set then
the 3rd word is reserved.
P bit: The P-bit is set to 1 if the session indicated by
Session ID is classified as a parent connection among all
sessions under the particular application session ID. Examples
of parent connection are FTP control connection and SIP
signaling connection.
Application Session ID: Application Session ID is unique for every
set of sessions that belong to the same application session. For
example, there could be four HTTP connections (session IDs 0x1,
0x2, 0x3, and 0x4) and two application sessions (0xA and 0xB) of
type "App-X". Sessions 0x1 and 0x2 correspond to application
session 0xA, and Sessions 0x3 and 0x4 correspond to session 0xB.
Application Session ID helps Service Functions handle related
sessions in a holistic manner for operations such as inspection,
security analysis and QoS.
Destination Class: The destination class represents the logical
classification of the destination of the traffic. This field is
optional and/or the Destination Class may not be known. The D-bit
is used to indicate that this field contains a valid Destination
Class.
Wang, et al. Expires December 30, 2017 [Page 4]
Internet-Draft NSH Context Header Allocation (Security) June 2017
Source Class: represents the logical classification of the source
of the traffic. For example, this might represent a source
application, a group of like endpoints, or a set of users
originating the traffic. Class may also be a compound
classification, for example, combination of network zone and group
of users. This grouping is done for the purposes of applying
policy. Policy is applied to groups rather than individual
endpoints.
Offload Control Flags: The 4th word contains flags to control the
desired behavior of SFC offload. The definitions of these flags
B, U, T & D are described in [I-D.kumar-sfc-offloads]
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 4th word also contains security classification results for
communicating immediate actions and accumulated verdicts to
downstream Service Functions.
Score: Security Score is a numeric value for participating Service
Functions to deliver security classification results based on
their processing of the packet data. The Score value may be set
by one Service Function and refined by a subsequent Service
Function to produce an accumulated result. Alternatively, each
Service Function may set a different score value which is
collected by a control point. The Score value is interpreted
consistently in the SFC-domain. For example, a Score value of -5
may trigger additional scanning functions to be conducted by the
subsequent Service Function for the Session. As another example,
a Score value -20 may result in block of the source or destination
host by a Service Function. The interpretation of the Score is
distributed by a control plane and is outside the scope of the
document.
5. Context Allocation and Control Plane Considerations
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.
Wang, et al. Expires December 30, 2017 [Page 5]
Internet-Draft NSH Context Header Allocation (Security) June 2017
6. Security Considerations
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.
7. Acknowledgments
Authors would like to thank Jeremy Felix and Jay Iyer for their
contributions.
8. IANA Considerations
This document includes no request to IANA.
9. References
9.1. Normative References
[I-D.ietf-sfc-nsh]
Quinn, P. and U. Elzur, "Network Service Header", draft-
ietf-sfc-nsh-12 (work in progress), February 2017.
[I-D.kumar-sfc-offloads]
Surendra, S., Guichard, J., Quinn, P., Halpern, J., and S.
Majee, "Service Function Simple Offloads", draft-kumar-
sfc-offloads-03 (work in progress), October 2016.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC7498] Quinn, P., Ed. and T. Nadeau, Ed., "Problem Statement for
Service Function Chaining", RFC 7498,
DOI 10.17487/RFC7498, April 2015,
<http://www.rfc-editor.org/info/rfc7498>.
Wang, et al. Expires December 30, 2017 [Page 6]
Internet-Draft NSH Context Header Allocation (Security) June 2017
[RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function
Chaining (SFC) Architecture", RFC 7665,
DOI 10.17487/RFC7665, October 2015,
<http://www.rfc-editor.org/info/rfc7665>.
9.2. Informative References
[I-D.wang-sfc-ns-use-cases]
Wang, E., Leung, K., Felix, J., and J. Iyer, "Service
Function Chaining Use Cases for Network Security", draft-
wang-sfc-ns-use-cases-02 (work in progress), October 2016.
Authors' Addresses
Eric Wang
Cisco Systems Inc.
170 W Tasman Dr
San Jose, CA 95134
U.S.A.
Email: ejwang@cisco.com
Kent Leung
Cisco Systems Inc.
170 W Tasman Dr
San Jose, CA 95134
U.S.A.
Email: kleung@cisco.com
Andrew Ossipov
Cisco Systems Inc.
170 W Tasman Dr
San Jose, CA 95134
U.S.A.
Email: aossipov@cisco.com
Wang, et al. Expires December 30, 2017 [Page 7]