Internet DRAFT - draft-huang-sfc-service-forwarding-label

draft-huang-sfc-service-forwarding-label



SFC                                                            C. Huang
Internet Draft                                      Carleton University
Intended status: Standards Track                            Jiafeng Zhu
Expires: September 3, 2014                                       Huawei
                                                                Peng He
                                                                  Ciena
                                                            Mar 3, 2014


                         Service Forwarding Label
              draft-huang-sfc-service-forwarding-label-00.txt



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), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.


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


   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt


   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html


   This Internet-Draft will expire on September 3, 2014.


Copyright Notice


   Copyright (c) 2014 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



Huang                 Expires September 3, 2014                [Page 1]

Internet-Draft         Service Forwarding Label                Mar 2014


   Section 4.e of the Trust Legal Provisions and are provided without
   warranty as described in the Simplified BSD License.


Abstract


   New services such as network function virtualization (NFV), service
   chaining, and application-centric traffic steering bring new
   opportunities for network providers and service providers. This
   internet draft defines a new Layer 5 packet header format called
   Service Forwarding Label (SFL) and procedures which can be used as a
   universal label to differentiate various services and forward
   packets based on different service requirements.


Table of Contents


   1. Introduction...................................................2
   2. Conventions used in this document..............................4
   3. Formal Syntax..................................................4
   4. Procedures.....................................................5
   5. Use Cases......................................................6
      5.1. Network Virtualization....................................6
      5.2. Service Chaining..........................................7
      5.3. Application Centric Traffic Steering......................7
   6. Migration......................................................8
   7. Security Considerations........................................8
   8. IANA Considerations............................................8

1. Introduction


   New services such as network virtualization, service chaining, and
   application-centric traffic steering bring new opportunities to
   network providers and service providers.


   One of the primary new services that have been envisioned is the
   network virtualization service, which allows physical network
   provider to sell different virtual networks to different service
   network providers.  Each service network provider can use its
   virtual network just like the way it uses its own private network
   while sharing underlying physical network resources with other
   service network providers. The physical network provider, on the
   other hand, can enjoy new revenue growth through selling virtual
   networks with different granularities.


   Traditionally a service chain consists of a set of dedicated network
   service boxes such as firewall, load balancers, and application
   delivery controllers that are concatenated together to support a


Huang                 Expires September 3, 2014                [Page 2]

Internet-Draft         Service Forwarding Label                Mar 2014


   specific application. With a new service request, new devices must
   be installed and interconnected in certain order. This can be a very
   complex, time-consuming, and error-prone process, requiring careful
   planning of topology changes and network outages and incurring high
   OPEX. This situation is exacerbated when a tenant requires different
   service sequences for different traffic flows or when multiple
   tenants share the same datacenter network.


   Network Function Virtualization (NFV) is a concept built upon
   network virtualization. It involves the implementation of network
   functions in software that can run on a range of industry standard
   high volume servers, switches, and storage.  Through NFV, service
   providers can dynamically create a virtual environment for a
   specific service chain and eliminate the dedicated hardware and
   complex labor work for supporting a new service chain request.


   Both network virtualization and NFV require traffic steering.
   However there are many other applications that can be better served
   with application-centric traffic steering. Application service
   providers have tried various ways to differentiate their customers
   so that they can maximize their revenues and minimize their costs.
   For example, cookies have been used to track HTTP users.
   Unfortunately they are designed for specific applications. Because
   cookies only appear in HTTP headers, they will not be carried by all
   packets except the first one. Therefore they cannot be used by
   switches to steer traffic. On the other hand, DiffServ and VLAN sit
   below Layer 4, they are hard to be maintained end-to-end. Therefore
   application-centric traffic steering, although widely desired, is
   still hard to achieve.


   In order to support various services, a universal ID that can be
   used to identify a service instance (or a service chain instance) is
   required. This ID needs to sit above Layer 4 so that it can stay
   intact while a packet traverses legacy IP networks and middle-boxes.
   This naturally points to an ID at Layer 5.


   In OSI model, Layer 5 is called the session layer which is designed
   to establish, manage, and terminate connections between local and
   remote applications. A good example is a video conference session
   where multiple parties join and leave dynamically. This bears
   similarity to a service instance such as a virtual network which
   carries a large number of dynamic traffic flows.  This similarity is
   the motivation to define an ID at Layer 5 for the identification of
   a service instance (or service chain instance). We call this ID
   Service Forwarding Label (SFL).





Huang                 Expires September 3, 2014                [Page 3]

Internet-Draft         Service Forwarding Label                Mar 2014


   In this document, the format of SFL is defined and procedures for
   assigning and removing SFLs are described.


2. Conventions used in this document


   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.


   In this document, these words will appear with that interpretation
   only when in ALL CAPS. Lower case uses of these words are not to be
   interpreted as carrying RFC-2119 significance.


3. Formal Syntax


   An SFL SHOULD be created and maintained by a service provider and
   used by its clients.  Network switches and steering boxes SHOULD use
   SFL in part or full to identify and steer traffic belonging to
   different service instances. Service instances SHOULD use SFL in
   part or full to identify different service requirements from
   clients. SFLs can be stacked for applications such as recursive
   services where each level of the stack is administered by the owner
   of the service level in a recursive business relationship. This
   allows easy scale to multiple levels of services with multiple
   ownerships nested in the SFL stack.


   An SFL MUST be unique within the space of the service provider who
   administers the SFL. Multiple service providers at the same level
   will be differentiated by their SFLs assigned by their lower level
   service provider. The combination of the SFLs across different
   levels in a label stack uniquely identifies a service in a physical
   substrate domain.


   As shown in Fig. 1 (a), each SFL is represented by 4 octets.
   Starting from bit 0 of the 4 octets, the first 30 bits hold the
   label, bit 30 is reserved for experimental use (E), bit 31 is the
   top-of-stack bit (T).  The T bit is set to one for the top entry in
   a label stack, and zero for all other label entries in the stack. As
   the header at Layer 5, SFLs can run either over UDP or TCP making it
   applicable to all kinds of traffic belonging to the same service
   instance.  A unique port number for both UDP and TCP SHALL be
   assigned to identify the existence of SFLs. It is RECOMMENDED that
   the top entry in an SFL stack SHOULD be used to identify different
   applications. A sample format for a packet with SFLs is shown in
   Fig. 1 (b).





Huang                 Expires September 3, 2014                [Page 4]

Internet-Draft         Service Forwarding Label                Mar 2014


   Each SFL is associated with a lifetime. When its lifetime expires,
   the SFL SHALL be terminated or be renewed. This dynamic mechanism
   allows a service provider to maintain a smaller pool of SFLs.


      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |               ESL                                         |E|B|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                    (a)

       +-----+----+---------+------------+-----+---------+---------+
       | MAC | IP | TCP/UDP | Bottom SFL | ... | Top SFL | Payload |
       +-----+----+---------+------------+-----+---------+---------+


                                    (b)

               Figure 1 (a) SFL format. (b)Packet with SFL.


4. Procedures


  There are various scenarios that may happen during the lifetime of an
  SFL. The procedures for establishing and terminating SFL depend on
  the actual scenario encountered. The procedures are described step by
  step in the following part. For the description of simplicity, it is
  assumed that switches be OpenFlow enabled. SFL can be applied to
  other types of switches or steering boxes.

   o  A client sends a service request to a service provider with its
      user ID and requested service type using HTTP request message.
      Metadata can be sent through HTTP Post message.


   o  The service provider decides whether it can accept the request by
      applying optimization process which determines how to route
      traffic and allocate resources for the requested service.


   o  If the request is admissible, the service provider will create a
      new SFL which is unique to the service provider and send the SFL
      and associated lifetime to switches within its substrate domain
      or middle-boxes that need to steer or process traffic based on
      the SFL through an OpenFlow OFPT_FLOW_MOD message.


   o  Upon receiving the message, the OpenFlow switches or middle-boxes
      will set the SFL and its lifetime into their flow tables as part
      of a rule set.



Huang                 Expires September 3, 2014                [Page 5]

Internet-Draft         Service Forwarding Label                Mar 2014


   o  The service provider will send HTTP response message with the SFL
      and associated lifetime to the client confirming the acceptance
      of the request.


   o  The client will add the label as Layer 5 header to its packets
      destined for the requested service and send them out.


   o  When the packets reach the switches or middle-boxes within the
      service provider network, the service provider will match the
      Layer 5 header (and other headers in other layers if necessary)
      to its rule set and decide how to forward or process the packets
      based on their service requirement.


   o  The switches or middle-boxes will then process those packets and
      steer  them to the next switch or middle-box if necessary.


   o  When the lifetime of the SFL expires, the client can choose
      either to renew the service or leave. If it decides to renew, it
      will send a HTTP request message with the SFL to the OFC, the
      above procedures will be repeated except that the original SFL
      will be used instead of generating a new SFL.


5. Use Cases


   There are numerous use cases that SFL can be applied to. Some common
   use cases are briefly described in this section.


5.1. Network Virtualization


   The first use case is network virtualization service. Here a
   physical network provider will serve as the service provider and
   virtual network providers will serve as clients. Virtual network
   providers request virtual networks from the physical network
   provider. Each virtual network provider will have full control over
   its virtual network. One issue is that the address space used by
   virtual network providers can be overlapped. For example, Client 1
   owns Virtual Network 1 and Client 2 owns Virtual Network 2. Both
   Virtual Network 1 and Virtual Network 2 share a physical network
   owned by a infrastructure network provider. When a packet reaches a
   switch in the physical network domain, the switch needs to decide
   which virtual network the packet belongs to.


   Through the procedures discussed in the last section, each client
   network will receive an SFL assigned by the infrastructure network
   provider as an identifier of its virtual network. The client network
   will inform its users of adding the SFL for all packets that need to
   use the virtual network it owns. When packets reach the switches in


Huang                 Expires September 3, 2014                [Page 6]

Internet-Draft         Service Forwarding Label                Mar 2014


   the physical network domain, they can be differentiated using SFL
   even though their IP address spaces may be overlapped. Without SFL,
   multiple header fields may need to be matched in order to identify
   packets belonging to a virtual network, which will likely cause flow
   table fragmented and bloated.


   When recursive network virtualization is deployed, each virtual
   network provider will serve as client as well as service provider at
   the same time. As a client, it receives an SFL from the service
   provider one level below it. As the service provider, it administers
   the SFLs that identify the virtual networks it sells.  A physical
   switch can use multiple levels of the label stack to steer packets
   to the correct virtual networks they belong to.


5.2. Service Chaining


   The second use case demonstrates how service chaining, as an example
   of NFV, can be supported.


   Consider a scenario where an enterprise leases a virtual network
   from an infrastructure provider and provides two types of service
   chains. The first service chain, designed for its employees, will
   force traffic flows to go through NAT (network address translation),
   DPI (deep packet inspection), firewall, LB (load balancer), and
   various servers. The second one, designed for guest visitors, will
   only go through NAT and web servers. Each service chain is assigned
   an SFL by the enterprise while the virtual network of the enterprise
   will be assigned an SFL by the infrastructure provider. Traffic
   flows for different service chain instances can be uniquely
   identified and steered by the combinations of the two SFLs (one by
   the infrastructure provider and one by the enterprise). Within a
   service chain, each virtual node represents a specific function such
   as firewall that can be dynamically mapped to a physical node in the
   lower level. By the virtualization of a service chain, dynamic
   sharing of physical resources can be achieved. This enables great
   flexibility and leads to significant cost reduction in OPEX.


5.3. Application-Centric Traffic Steering


   Service providers are increasingly interested in providing different
   treatments to different types of customers, e.g. subscribers vs.
   casual users. Based on the SFLs they are carrying, user traffic
   flows can be steered to different environments with different
   networking and computing resources provisioned. Under this context,
   SFL provides a simple and effective handle that connects
   applications to physical layer devices directly and enables
   application-centric traffic steering.  There are many existing


Huang                 Expires September 3, 2014                [Page 7]

Internet-Draft         Service Forwarding Label                Mar 2014


   Quality of Service (QoS) schemes such as VLAN and DiffServ. But they
   are Layer 2 or 3 mechanisms which are hard to scale to end-to-end
   applications. As mentioned earlier, it is difficult to maintain any
   code points in headers up to Layer 4 for end-to-end services due to
   middle boxes and different domains a packet may traverse. By sitting
   at Layer 5, SFL can travel through networks and middle boxes easily
   and therefore provide a very strong support for various end-to-end
   applications.


   There are many application scenarios that can demonstrate the usage
   of SFL. For example, a service provider may want some of its user
   traffic be protected from server or link failures while other
   traffic not. When a server or link failure happens, the traffic that
   needs protection is steered to a protection path. The SFL provides
   an excellent option to achieve this function. Specifically, assign
   one SFL to identify traffic requiring protection and another SFL for
   traffic not requiring protection. When packets arrive at a switch,
   if the SFL matching indicates a packet without protection
   requirement, other header fields will be matched as regular case;
   otherwise, the packets will be forwarded to a group table for
   protection matching.


6. Migration


   When networks that support SFL form some islands, due to the fact
   that SFLs sit in Layer 5, packets carrying SFLs will travel through
   the legacy network just like regular packets while being directed to
   their requested service instances in SFL enabled networks. This
   allows SFL enabled networks to coexist with legacy Internet.


7. Security Considerations


   For security concern, HTTPS SHOULD be used for the creation and
   termination of SFLs. It is not recommended to use SSL in transport
   layer because this may cause difficulty for matching SFLs at a
   switch. However if SFLs are purely created for service chains, SSL
   MAY still be used as transport layer.  In either case, a certificate
   MAY be created and attached to the SFL stack to ensure the integrity
   of the SFLs in the stack.


8. IANA Considerations


   It is recommended that IANA assign a port in UDP and another port
   number in TCP to identify the existing of SFLs in Layer 5. The top
   level SFL of a SFL stack can use all existing port number
   assignments to identify various applications.




Huang                 Expires September 3, 2014                [Page 8]

Internet-Draft         Service Forwarding Label                Mar 2014


Authors' Addresses


   Changcheng Huang
   Department of Systems and Computer Engineering
   Carleton University
   1125 Colonel By Drive
   Ottawa, ON K1S 5B6
   Canada
   Email: huang@sce.carleton.ca

   Jiafeng Zhu
   Huawei Technologies Inc
   Santa Clara, CA
   US
   Email: Jiafeng.zhu@huawei.com

   Peng He
   Ciena Corp
   Email: phe@ciena.com






























Huang                 Expires September 3, 2014                [Page 9]