Internet DRAFT - draft-jacquenet-sfc-ipv6-eh

draft-jacquenet-sfc-ipv6-eh







Network Working Group                                       C. Jacquenet
Internet-Draft                                              M. Boucadair
Intended status: Standards Track                                  Orange
Expires: July 10, 2016                                   January 7, 2016


      An IPv6 Extension Header for Service Function Chaining (SFC)
                     draft-jacquenet-sfc-ipv6-eh-01

Abstract

   This document specifies an IPv6 extension header for Service Function
   Chaining (SFC) purposes.  This extension header is used by SFC data
   plane elements to make forwarding decisions in an IPv6-enabled SFC
   domain and it conveys metadata that are processed by SFC-aware nodes.

   This extension is intended to be used within a single administrative
   domain.

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

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 July 10, 2016.

Copyright Notice

   Copyright (c) 2016 IETF Trust and the persons identified as the
   document authors.  All rights reserved.





Jacquenet & Boucadair     Expires July 10, 2016                 [Page 1]

Internet-Draft     draft-jacquenet-ipv6-eh-sfc-00.txt       January 2016


   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.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Overview  . . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  SFC IPv6 Extension Header Format  . . . . . . . . . . . . . .   3
     3.1.  Source Routed SFP . . . . . . . . . . . . . . . . . . . .   6
   4.  Operation . . . . . . . . . . . . . . . . . . . . . . . . . .   7
     4.1.  Generic Considerations  . . . . . . . . . . . . . . . . .   7
     4.2.  Generating the SFC Extension Header . . . . . . . . . . .   8
     4.3.  Processing the SFC Extension Header . . . . . . . . . . .   8
       4.3.1.  Processing Source-Routed SFP Information  . . . . . .   8
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   9
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   9
     6.1.  Privacy . . . . . . . . . . . . . . . . . . . . . . . . .  10
     6.2.  Invalid Context Information . . . . . . . . . . . . . . .  10
     6.3.  Forwarding Threats  . . . . . . . . . . . . . . . . . . .  10
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  11
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  11
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  11
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  11
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  12

1.  Introduction

   Service Function Chaining (SFC) can be seen as a technique that
   facilitates the dynamic enforcement of differentiated traffic
   forwarding policies within an SFC-enabled domain.  SFC operation
   assumes the manipulation of some information that is typically
   carried by packets within an SFC-enabled domain.  In particular, this
   information is meant to assist Service Function Forwarders (SFFs) in
   making forwarding decisions within the SFC-enabled domain.

   The overall SFC problem space is discussed in [RFC7498], while a data
   plane architecture is documented in [RFC7665].

   Several options can be used to carry SFC-specific information.  Some
   of them can take advantage of various existing tools such as
   encapsulation schemes (e.g., IP-in-IP), or specific fields in an IP



Jacquenet & Boucadair     Expires July 10, 2016                 [Page 2]

Internet-Draft     draft-jacquenet-ipv6-eh-sfc-00.txt       January 2016


   header.  This document specifies an IPv6 Extension Header (
   [RFC6564]) to carry SFC-related information.

   The SFC extension header is intended to be used within a single
   administrative domain.

   The reader should be familiar with the terms defined in [RFC7498] and
   [RFC7665].

2.  Overview

   Unlike some other solutions that require the use of yet another shim
   layer to carry SFC information, the use of an IPv6 Extension Header
   (EH) in IPv6-enabled SFC domains has the advantage to get rid of any
   specific transport encapsulation scheme when forwarding packets
   between nodes that are connected to the same subnet.  Figure 1 shows
   the case of a packet that carries the SFC EH and which is forwarded
   to the SFC Next Hop that is connected to the same subnet.

   Figure 2 shows a packet that is encapsulated in an IPv6 packet that
   contains the SFC EH.  Such encapsulation scheme can also be used to
   carry IPv4 packets within an IPv6-enabled SFC domain.

                +--------+--------------+-------------..-+
                |  IPv6  |     SFC      | IPv6           |
                | Header | Ext. Header  | Payload        |
                +--------+--------------+-------------..-+

                                 Figure 1

           +----------+-------------+---------+-------------..-+
           |Outer IPv6|     SFC     |Inner IP | IP             |
           | Header   | Ext. Header | Header  | Payload        |
           +----------+-------------+---------+-------------..-+

                                    |--Original IP packet------|
           |-----------Encapsulated IPv6 packet----------------|

                                 Figure 2

3.  SFC IPv6 Extension Header Format

   The IPv6 Extension Header to carry SFC metadata has format shown in
   Figure 3.







Jacquenet & Boucadair     Expires July 10, 2016                 [Page 3]

Internet-Draft     draft-jacquenet-ipv6-eh-sfc-00.txt       January 2016


       0                   1                   2                   3
       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Next Header  |  Hdr Ext Len  |     Flags     |   SF Index    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          Service Function Chain Identifier (SFC ID)           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    (Optional) Service Function Path Identifier (SFP ID)       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      .                                                               .
      .              (Optional) Information Elements                  .
      .                                                               .
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                                 Figure 3

   The description of the fields is as follows:

   Next Header:  8-bit selector.  Identifies the type of header
      immediately following the extension header.

   Hdr Ext Len:  8-bit unsigned integer.  Length of the extension header
      in 8-octet units, excluding the first 8 octets.

   Flags:  The Flags field comprises a set of 8 flags:

        +-+-+-+-+-+-+-+-+
        |P|E|r|r|r|r|r|M|
        +-+-+-+-+-+-+-+-+

      where "rrrrr" are reserved bits for future assignment as
      additional flag bits. r bits MUST each be sent as zero and MUST be
      ignored on receipt.

      When set, the P-flag indicates that a Service Function Path
      Identifier (SFP ID) field is present in the SFC EH.  This flag is
      set to 0 by default: this means that there is no SFP ID
      information carried in the SFC EH.

      When set, the E-flag indicates that a source routed SFP field is
      present in the SFC EH.  This flag is set by default to 0, meaning
      there is no source routed SFP field present in the SFC EH.

      When set, the M-flag indicates that an extended set of a 32-bit
      encoded Flags field is present in the SFC EH.  The default value



Jacquenet & Boucadair     Expires July 10, 2016                 [Page 4]

Internet-Draft     draft-jacquenet-ipv6-eh-sfc-00.txt       January 2016


      of the M flag is 0.  This feature allows to extend the SFC EH with
      new flags while ensuring backward compatibility.  When present,
      the extended flag field MUST be positioned right after the SFC ID
      field.

   SF Index:   8-bit unsigned integer.  This field is decremented by 1
      and used to detect SFC loops.

   Service Function Chain Identifier (SFC ID):  8-bit unsigned integer.
      Identifies the Service Function Chain that is associated to the
      IPv6 packet.

   (Optional) Service Function Path Identifier (SFP ID):  This field
      MUST be supplied only if 'P' flag is set.  This field is used to
      convey an identifier of a path that is bound to a given service
      function chain.  A null value of this field means that no specific
      constraint is to be applied when forwarding this packet with this
      service function chain.  It is RECOMMENDED to use this field only
      if non-null identifiers are to be carried in the SFC EH.  A null
      value with P-flag set leads to the same behavior as with P-flag
      set to 0.

   (Optional) Information Elements:  Conveys one or multiple optional
      data that may be supplied within an SFC-enabled domain.  The
      format of an optional Information Element can either be associated
      with the definition of a new flag or encoded according to the
      following TLV format Figure 4.

        0                   1                   2                   3
       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Registry ID  |    Type       |     Length    | Originator Len|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                      Originator ID (Variable)                //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                           Data (Variable)                    //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 4

      The description of the fields is as follows:

      Registry ID:  In order to foster service innovation, this field
         allows to inherit from existing code point registries that are
         likely to be useful in a SFC context.  The following value is
         reserved by this specification:

         1:  IPFIX [IPFIX].



Jacquenet & Boucadair     Expires July 10, 2016                 [Page 5]

Internet-Draft     draft-jacquenet-ipv6-eh-sfc-00.txt       January 2016


      Type:  Indicates the code point of the information element.  If
         Registry ID is set, then the interpretation of this field must
         conform to the one defined for that specific registry.

      Length:  Indicates, in octets, the length of the data carried in
         the Information Element (including the "Originator Len" and
         "Originator ID" fields).

      Originator Len:  Indicates, in octets, the length of the
         "Originator ID" field.

      Originator ID:  Provides the identifier of the entity that
         injected this Information Element in the SFC Extension Header.

      Originator ID:  Conveys the identifier of the entity that injected
         this Information Element in the SFC header (e.g., a service
         function identifier, a classifier, etc.).  This document does
         not make any assumption about the structure of the information
         carried in this field because this is deployment-specific.
         This information is used by SFC-aware elements to enforce
         policies such as: process a context information if and only if
         it was supplied by a given entity.  This information can be
         used as a safeguard against misbehaving nodes that inject
         illegitimate data in the SFC EH.

      Data (Variable):  The semantics of this field depend on the
         "Registry ID" and "Type" fields.

3.1.  Source Routed SFP

   If the E-flag is set, a "Source Routed SFP" field MUST be present in
   the SFC Extension Header.  This field MUST be positioned right after
   the "Service Function Path Identifier (SFP ID)" field and "Extended
   Flag bits", if P-flag or M-flag are set.  It MUST be positioned right
   after the "Service Function Chain Identifier (SFC ID)" field if
   P-flag and M-flag are both set to 0.

        0                   1                   2                   3
       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                 (Optional) Locators[1..n] (Variable)        //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 5

   The optional "Source Routed SFP" field is structured as a vector of
   SF locators (whereas a SF locator could be an IP address, a MAC
   address or a FQDN, for example).



Jacquenet & Boucadair     Expires July 10, 2016                 [Page 6]

Internet-Draft     draft-jacquenet-ipv6-eh-sfc-00.txt       January 2016


   A SFP Source Route is said to be "strict" when the exact set of all
   the SF instances that need to be invoked along the SFP is explicitly
   and exhaustively mentioned in the field.  Each locator in the list is
   encoded as follows:

      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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Locator Len |           Locator (Variable)                   //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 6

   A SFP Source Route is said to be "loose" when only a subset of the SF
   instances, that need to be invoked in the context of a given service
   function chain, is mentioned in the field.  The other SFs that need
   to be invoked will be set to "ANY" in the field, meaning that SFF are
   free to forward the packet towards the next SF instance that needs to
   be invoked as per the SFC instructions and according to SFC next hop
   resolution procedure or a result of load-balancing scheme.  "ANY"
   corresponds to "Locator Len" set to "0" and no "Locator" field.

      For the sake of optimization, the encoding of loose source routes
      could be improved by indicating only explicit hops (i.e.,
      Locator!=ANY).  A Hop Index is also provided for each included
      locator to help identifying the node when progressing a packet
      within an SFC-enabled domain.

   A locator in the list set to 'ANY' is an indication that the
   selection of the exact SF instance to invoke is left to the SFF or to
   some kind of SF load-balancing mechanism.

   The Source Routed SFP field of the SFC EH MUST NOT include a list of
   locators that are all set to "ANY".

4.  Operation

4.1.  Generic Considerations

   Routers MUST NOT process the SFC EH unless they are explicitly
   configured to do so.  Processing the SFC EH MUST be disabled by
   default.  Typically, routers that are not within an SFC-enabled
   domain MUST NOT be configured to process the SFC EH.

   To minimize fragmentation issues, it is recommended to configure MTU
   sizes that allow for the SFC EH to be inserted/updated in-path.






Jacquenet & Boucadair     Expires July 10, 2016                 [Page 7]

Internet-Draft     draft-jacquenet-ipv6-eh-sfc-00.txt       January 2016


4.2.  Generating the SFC Extension Header

   A classifier typically inserts the SFC EH to every incoming packet
   that matches one of the entries of the SFC classification policy
   table maintained by the classifier.  The classifier is supposed to be
   configured with the set of context information that must be supplied
   for each service function.  If no such instruction is provided, the
   classifier inserts by default an identifier of the service chain and
   optionally an identifier of the service function path.

   The classifier may also inject a source SFP as part of the SFC EH
   that will be injected in packet matching its classification policies.

   The SFC EH is inserted either following the format in Figure 1 (if
   the next hop is within the same subnet as the classifier) or as shown
   in Figure 2 otherwise.  When an encapsulation is required, the
   destination IP address is set to the IPv6 address of the first hop in
   the chain.

   SFC-aware nodes that are configured to inject context information for
   a given service function chain can update the context of an SFC EH.

4.3.  Processing the SFC Extension Header

   Upon receipt of an IPv6 packet that carries the SFC EH, a SFF must,
   eventually decapsulate the packet, and process the metadata
   information carried in the SFC EH: typically, the SF node that embeds
   the SFF capability will use these metadata to (1) position itself in
   the forwarding path, (2) determine which SF instance(s) need to be
   invoked next and (3) make its forwarding decision according to the
   SFC instructions carried in the SFC EH and as per the matching entry
   of its SFC Forwarding Policy Table.

   Once the packet is processed by the corresponding SF, SF Index is
   decremented by 1.

   An SFC-aware node MUST discard packets with an "SF Index" equal to 0.
   This event must be logged locally.

4.3.1.  Processing Source-Routed SFP Information

   If the SFC EH carried in the incoming IPv6 packet contains Source-
   Routed SFP (Section 3.1), the SFF will forward the packet according
   to the instructions carried in the corresponding field: if this is a
   Strict Source Route, the SFF will forward the packet towards the next
   SF node that embeds the SF instance identified by the SF Locator
   carried in the Source-Routed SFP field, possibly upon completion of




Jacquenet & Boucadair     Expires July 10, 2016                 [Page 8]

Internet-Draft     draft-jacquenet-ipv6-eh-sfc-00.txt       January 2016


   some SF operation, depending on the nature of the chain and its
   corresponding instructions.

   If the explicit route happens to be a loose source route:

   1.  If the next SF instance that needs to be invoked is explicitly
       identified by its Locator, then the SFF forwards the packet
       accordingly: the next SF to be invoked can be reached according
       to the corresponding entry of its SFC Forwarding Policy Table.

   2.  If the next SF instance that needs to be invoked is valued to
       "ANY", then the SFF forwards the packet according to the best
       matching entry of its SFC Forwarding Policy Table, as per the SFC
       ID and Hop Index carried in the SFC EH.

   By default, packets destined outside the SFC-enabled domain MUST be
   strip any SFC EH that is carried in the packet.

   When a node receives an IPv6 packet with a"ICMPv6 Destination
   Unreachable Code, "Error in Source Routing Header"xxx

5.  IANA Considerations

   This document requests IANA to assign the following values from the
   register in http://www.iana.org/assignments/ipv6-parameters/ipv6-
   parameters.xhtml#extension-header:

       +-----------------+----------------------+-----------------+
       | Protocol Number | Description          | Reference       |
       +-----------------+----------------------+-----------------+
       | TBD             | SFC Extension Header | [This document] |
       +-----------------+----------------------+-----------------+

   Also, this document requests IANA to assign a sub-registry for
   Registry ID.  The following value is reserved by this specification:

      1: IPFIX

6.  Security Considerations

   Security considerations discussed in [RFC7045] and [RFC7112] apply.
   Additional considerations are discussed in the following sub-
   sections.








Jacquenet & Boucadair     Expires July 10, 2016                 [Page 9]

Internet-Draft     draft-jacquenet-ipv6-eh-sfc-00.txt       January 2016


6.1.  Privacy

   Because context headers may reveal privacy information (e.g., IMSI,
   user name, user profile, location, etc.).  SFC Extension Headers MUST
   NOT be exposed outside the SFC domain.  Also, means to protect
   context headers from eavesdroppers SHOULD be enforced.

6.2.  Invalid Context Information

   In order to control the information that can be supplied by a SFC-
   aware node, and therefore influence the behavior of an SFC-aware node
   within the SFC-enabled domain, the Originator ID field can be used as
   a first safeguard to check that the node is entitled to supply such
   information.  If so, the Originator ID field can also be used to
   check whether the supplied information can be processed as part of
   the instructions that pertain to a given service function chain.

   An SFC-aware node can be provided with the appropriate SFC
   instructions by the SFC control plane or by configuration.

6.3.  Forwarding Threats

   This specification is not subject to infinite forwarding loops
   because a loop can be detected by an SF Index equal to 0.

   Several attacks (e.g., evade access controls based on destination
   addresses, amplification attacks) have been identified in [RFC4942].
   Such attacks can be prevented in the SFC context by the enforcement
   of adequate policies at the boundaries of the SFC domain.  Typically,
   SFC border nodes of a SFC-enabled domain can be configured to discard
   any SFC EH that may be present in a packet that enters the domain,
   and strip the SFC EH when the packet is forwarded outside of the SFC-
   enabled domain, so that the information carried by the SFC EH is not
   leaked outside the domain when the packet exits the SFC-enabled
   domain.

   Nevertheless, a node of a SFC-enabled domain may alter the contents
   of the SFC EH, thereby possibly distorting the SFP.  Misbehaving
   nodes can be detected and countermeasures applied, if adequate
   monitoring is enforced.  Also, means to protect traffic against
   illegitimate SFs/SFFs that do not belong to the SFC-enabled domain
   must be enabled.  Such means should typically be defined in service
   function discovery specifications.








Jacquenet & Boucadair     Expires July 10, 2016                [Page 10]

Internet-Draft     draft-jacquenet-ipv6-eh-sfc-00.txt       January 2016


7.  Acknowledgements

   TBD

8.  References

8.1.  Normative References

   [IPFIX]    International Organization for Standardization, "IP Flow
              Information Export (IPFIX) Entities", 1992,
              <http://www.iana.org/assignments/ipfix/ipfix.xhtml>.

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

   [RFC6564]  Krishnan, S., Woodyatt, J., Kline, E., Hoagland, J., and
              M. Bhatia, "A Uniform Format for IPv6 Extension Headers",
              RFC 6564, DOI 10.17487/RFC6564, April 2012,
              <http://www.rfc-editor.org/info/rfc6564>.

   [RFC7045]  Carpenter, B. and S. Jiang, "Transmission and Processing
              of IPv6 Extension Headers", RFC 7045,
              DOI 10.17487/RFC7045, December 2013,
              <http://www.rfc-editor.org/info/rfc7045>.

8.2.  Informative References

   [RFC4942]  Davies, E., Krishnan, S., and P. Savola, "IPv6 Transition/
              Co-existence Security Considerations", RFC 4942,
              DOI 10.17487/RFC4942, September 2007,
              <http://www.rfc-editor.org/info/rfc4942>.

   [RFC7112]  Gont, F., Manral, V., and R. Bonica, "Implications of
              Oversized IPv6 Header Chains", RFC 7112,
              DOI 10.17487/RFC7112, January 2014,
              <http://www.rfc-editor.org/info/rfc7112>.

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

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



Jacquenet & Boucadair     Expires July 10, 2016                [Page 11]

Internet-Draft     draft-jacquenet-ipv6-eh-sfc-00.txt       January 2016


Authors' Addresses

   Christian Jacquenet
   Orange

   Email: christian.jacquenet@orange.com


   Mohamed Boucadair
   Orange

   Email: mohamed.boucadair@orange.com







































Jacquenet & Boucadair     Expires July 10, 2016                [Page 12]