Internet DRAFT - draft-masum-chari-i2rs-netservices

draft-masum-chari-i2rs-netservices







Network Working Group                                           M. Hasan
Internet-Draft                                       Cisco Systems, Inc.
Intended status: Informational                                  A. Chari
Expires: December 09, 2013                                      D. Fahed
                                            France Telecom - Orange Labs
                                                               M. Morrow
                                                     Cisco Systems, Inc.
                                                           June 07, 2013

         Programmatic Interfaces to On-demand Network Services
              draft-masum-chari-i2rs-netservices-00.txt

Abstract

   One of the major features or requirements of Cloud is on-demand CRUD
   (Create / Read / Update / Delete) of Cloud resources or associated
   resources.  The on-demand feature dictates that resources are CRUD in
   a time-frame in the order of seconds or few minutes since the arrival
   of the resource CRUD request.  Many network resources cannot be CRUD
   in that time-frame.  With the support of programmable networking (or
   SDN) in the model of I2RS will facilitate programming of network
   resources rapidly, thus facilitating CRUD of Cloud or related network
   resources on-demand.  Network resources associated with many network
   services can be either a Cloud resource or directly associated with a
   Cloud resource.  These resources should be CRUD on-demand in Cloud
   timescale.  In this draft, employing Hybrid (virtual) Cloud as a use
   case and using I2RS as the "model", we will define few requirements
   for programmable on-demand interfaces to network services or I2NS.

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 09, 2013.

Copyright Notice




Hasan, et al.           Expires December 09, 2013               [Page 1]

Internet-Draft Programmatic Interfaces to Network Services     June 2013


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

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Acronyms and Definitions  . . . . . . . . . . . . . . . .   4
   2.  I2NS  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   4
   3.  Security Considerations . . . . . . . . . . . . . . . . . . .   9
   4.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   9
   5.  Conclusion  . . . . . . . . . . . . . . . . . . . . . . . . .   9
   6.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   9
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   9
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   9
     7.2.  Informative References  . . . . . . . . . . . . . . . . .   9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10

1.  Introduction

   A Cloud service provider (CSP) offers services to tenants
   (enterprises, enterprise departments, employees, end consumers) out
   of one or more Cloud DCs, where a tenant can acquire or release
   (CRUD: Create, Read, Update, Delete) compute, storage or network
   resources on-demand and anytime.  The CSP exposes Cloud service
   interfaces to tenants which are used by tenants to CRUD resources.
   Tenant facing Cloud service interfaces (CSI-T) are inherently



Hasan, et al.           Expires December 09, 2013               [Page 2]

Internet-Draft Programmatic Interfaces to Network Services     June 2013


   programmatic interfaces or API, supporting mostly REST-based API
   (such as Openstack Nova or Quantum or AWS EC2 API).  The CSI-T
   exposes resources in Cloud abstractions.  A Cloud controller or
   management framework (or CCF, which itself can be a collection of a
   number of systems, such as Openstack and SDN controller) maps or
   realizes the abstractions in the underlying infrastructure by further
   invoking underlying functions, interfaces or APIs (let us call this
   realization interfaces).  For example, a request to create a virtual
   server via a CSI-T (such as in Openstack <service endpoint>/<API
   version>/<tenant ID>/servers, where "servers" is the Cloud resource
   abstraction in Openstack for virtual servers) can be mapped to
   Libvirt API and other calls to programmatically launch a VM.  A CSI-T
   corresponding to CRUD of Cloud network resources will be mapped to
   underlying network resource or service programming interfaces.
   Consider, For example, a tenant creates a virtual Cloud via a CSI-T
   interface (see [SHC]), which can be mapped by a CCF to an MPLS VPN
   (VRF).  In true Cloud fashion this virtual Cloud can be created or
   deleted on-demand and anytime or components of the virtual Cloud,
   such as on-premises (in private Cloud or intranet) or off-premises
   (in public Cloud DC) site or resource set or subnetwork can be CRUD
   on-demand elastically.  As a result of this the associated VRF and
   its components (such as route targets) can be updated on-demand.
   Other examples are rerouting within the virtual Cloud and QoS
   guarantee requested on-demand (via CSI-T) based on dynamic conditions
   within the virtual Cloud or based on application requirements.

   The CSI-T interfaces for Cloud services (such as Openstack or EC2
   API) are programmatic allowing on-demand and elastic CRUD of
   resources (with Cloud timescale).  The realization interfaces (such
   as Libvirt or other interfaces for compute and storage resource CRUD)
   are also programmatic.  In a Cloud environment (together with the
   compute and storage services) the network or network service related
   interfaces also has to be programmatic so that CSI-T interfaces can
   be mapped to network service related interfaces on-demand.  There is
   a need for defining such realization interfaces (let us call it
   interfaces to network services for Cloud or I2NS) that are
   programmatic and standardized.  Employing a virtual Cloud use case,
   we outline the requirements behind the I2NS.  We outline the
   potential interfaces that can be defined.  The requirements and
   recommendations for the I2NS are general enough to apply to various
   Cloud related or other use cases requiring on-demand programmatic
   interfaces.









Hasan, et al.           Expires December 09, 2013               [Page 3]

Internet-Draft Programmatic Interfaces to Network Services     June 2013


1.1.  Acronyms and Definitions

      Tenant: An enterprise, enterprise department, enterprise user or
      end consumer.

      CRUD: Create, Read, Update, Delete (of resources, entities).

      CSI-T: Tenant facing Cloud Service Interfaces.

      PPVPN: Provider Provided VPN - VPN that is configured and managed
      by a service provider on behalf of a tenant.

      PE: Provider Edge router.

      CE: Customer Edge router.

      VRF: Virtual Routing and Forwarding instance.

      CSP: Cloud Service Provider - Owns or operates a public and hybrid
      Cloud.

      ECRT: BGP Extended Community Route Target.

      CCF: Cloud Controller or Management Framework.

      I2NS: Interfaces to on-demand Network Services.

2.  I2NS

   The programmatic and elastic (dynamic) interfaces should be defined
   for network services or features in a way so that elastic (dynamic,
   incremental and decremental) invocation of those interfaces will be
   possible.  In a typical configuration and provisioning model
   affecting elastic changes in the network or network services is
   either impossible or cumbersome.  It is also time-consuming.  In a
   Cloud environment elastic changes has to happen in a time-frame of
   few seconds to minutes.  Consider for example, configuring MPLS VPN
   VRF in a typical environment.  The VRF, import and export statements
   are configured a priori and applied.  When, for example, there is
   need for adding new import or export route targets (RT), typically
   the entire VRF configuration block has to be updated and then change
   applied.  Simple elastic programmatic interfaces that will affect
   changes in Cloud timescale and in finer granularity are needed.
   Consider for example a virtual Cloud which is mapped to an MPLS VPN
   in the network.  As in a Cloud, resources and other entities (such as
   enterprise or CSP sites or regions or workgroups) can be added to or
   deleted from the virtual Cloud ondemand and anytime.  These entities
   then should be reachable (if addedd) or unreachable (if deleted) from



Hasan, et al.           Expires December 09, 2013               [Page 4]

Internet-Draft Programmatic Interfaces to Network Services     June 2013


   within the virtual Cloud.  As a result, the MPLS VPN (VRF) has to be
   updated on-demand (with export and import route functions).

   Employing MPLS VPN network service as a use case, we provide examples
   of programmatic and elastic interfaces for network services suitable
   in a Cloud environment.  The outline below is conceptual and can be
   considered as requirements to define exact (CRUD) interfaces.  The
   interfaces should be defined in a way so that incremental, elastic
   and granular CRUD is possible.  This I-D does not propose any
   particular syntax, protocol or language binding or model.  Rather the
   interfaces are described in English, which can used used as a
   starting point or requirement to define the standard ones.

   CreateMPLSL3VPNVRF (<name>, <PE>, <RD>) --> (returns) <VRFID>

   CreateMPLSL3VPNImportRT (<list of RT>) --> <ImportRTID>

   CreateMPLSL3VPNImportRTFilter (<ip prefix>) --> <ImportRTFilterID>

   CreateMPLSL3VPNExportRT (<list of RT>) --> <ExportRTID>

   CreateMPLSL3VPNExportRTFilter (<ip prefix>) --> <ExportRTFIlterID>
   and <ECRT> (ECRT: BGP Extended Community RT)

   UpdateMPLSL3VPN (<VRFID>, <IMPORT or EXPORT>, <ImportRTID or ExportID
   or ImportFilterID or ExportFilterID>)

   UpdateMPLSL3VPNImportRT (<importRTID>, <list of RT>)

   UpdateMPLSL3VPNExportRT (<exportRTID>, <list of RT>)

   UpdateMPLSVPNImportRTFilter (<ImportFilterID, <ip prefix>)

   UpdateMPLSL3VPNExportRTFilter (<exportFilterID>, <ip prefix>).

   UpdateMPLSL3VPNPE2CEInterface (<interface>, <VRFID>).

   UpdateMPLSL3VPNPE2CENeighbor (<VRFID>, <neighbor IP>).

   UpdateMPLSL3VPNPE2PENeighbor (<neighbor IP>).

   Similarly read and delete operations.

   Consider Figure 1, where it is shown that an enterprise (tenant)
   makes use of public Cloud services, which provides a service to CRUD
   a virtual Cloud that may span multiple Clouds (private and public),
   multiple enterprise sites and resources residing in both on-premises
   (in tenant intranet or private Cloud) and off-premises (in public



Hasan, et al.           Expires December 09, 2013               [Page 5]

Internet-Draft Programmatic Interfaces to Network Services     June 2013


   Cloud locations).  Consider now that a tenant T1 making use of this
   service creates a virtual Cloud (via relevant CSI-T interfaces for
   CRUD of the virtual Cloud) as follows:

   o  Incorporate on-premises resource set ONPR-App1-0, public Cloud DC
      location CSP-DC-Loc1, and resource set OFPR-DMZ1.  As a result
      following I2NS interfaces can be invoked (by a CCF)
      programmatically, on-demand and elastically:

   o

      1.   On PE-TS1 invoke CreateMPLSL3VPNVRF (VCL1, PE-TS1, <RD>) -->
           (returns) VRFID1 (where <RD> for example is 100:100).

      2.   On PE-CL1: CreateMPLSL3VPNVRF (VCL1, PE-CL1, 100:100) -->
           (returns) VRFID2.

      3.   On PE-TS1: CreateMPLSL3VPNExportRTFilter (<ip prefix of ONPR-
           App1-0>).  This will create an extended community RT (ECRT1,
           such as 100:200) corresponding to IP prefix of ONPR-App1-0.

      4.   On PE-TS1: UpdateMPLSL3VPN (VRFID1, EXPORT, ECRT1) (which
           should result in sending ECRT1 to all the other relevant PE
           via MP-BGP; in the example to PE-CL1).

      5.   On PE-CL1: CreateMPLSL3VPNImportRT (ECRT1) --> iRT1.

      6.   On PE-CL1: UpdateMPLSL3VPN (VRFID2, IMPORT, iRT1).

      7.   On PE-CL1: CreateMPLSL3VPNExportRTFilter (<ip prefix of OFPR-
           DMZ1>) --> ECRT2.

      8.   On PE-CL1: UpdateMPLSL3VPN (VRFID2, EXPORT, ECRT2).

      9.   On PE-TS1: CreateMPLSL3VPNImportRT (ECRT2) --> iRT2.

      10.  On PE-TS1: UpdateMPLSL3VPN (VRFID1, IMPORT, iRT2).

      11.  On PE-TS1: UpdateMPLSL3VPNPE2CENeighbor ( VRFID1, <CE11 IP>).

      12.  On PE-TS1: UpdateMPLSL3VPNPE2PENeighbor (<PE-CL1 IP>).

      13.  etc.

   o  When anytime later OFPR-DMZ-2 (in CSP DC-Loc2) is added to VCL1,
      following will be updated on-demand:

   o



Hasan, et al.           Expires December 09, 2013               [Page 6]

Internet-Draft Programmatic Interfaces to Network Services     June 2013


      1.  On PE-CL2: CreateMPLSL3VPNVRF (VCL1, PE-CL2, 100:100) -->
          VRFID3.

      2.  On PE-CL2: CreateMPLSL3VPNExportRTFilter ( <ip prefix of OFPR-
          DMZ-2>) --> ECRT3.

      3.  On PE-CL2: UpdateMPLSL3VPN (VRFID3, EXPORT, ECRT3).

      4.  Update PE-CL2, PE-TS1, PE-CL1 with import RT of ECRT1, ECRT2
          and ECRT3.  In addition update neighbors accordingly.

   Figure 1 shows an example of virtual (hybrid) Cloud together with the
   network topology.






































Hasan, et al.           Expires December 09, 2013               [Page 7]

Internet-Draft Programmatic Interfaces to Network Services     June 2013


   -------------------------
   | O ONPR-DB  O Other    | T1 Site 1       FIGURE 1
   | |          | Resources|
   | O FW -------          |
   | |                     |   HSW: Hypervisor Switch
   | O ONPR-App1-0         |   VLB/FW: Virtual Load-balancer/Firewall
   | |                     |   ER: Edge Router, CE: Customer Edge
   | O FW       O ONPR-    |   VM: Virtual Machine, PE: Provider Edge
   | |          | App-D-0  |
   | O ONPR-DMZ |          |
   | |          |          |   T2 Site 1       T1 Site 5      T1 Site 7
   |---------------------- | -------------  -------------   ------------
   | Tenant DC Network   | | |  |        |  |  |        |   |  |       |
   |---------------------- | |  |        |  |  |        |   |  |       |
   |    |                  | |  |        |  |  |        |   |  |       |
   |----O CE11-------------| |--O CE21---|  |--O CE15---|   |--O CE17--|
        |                       |              |               |
        -------------------------              -----------------
                 |                                     |
                 O PE-TS1------------------------------O PE-TS2
                 |   SP Private (IP/MPLS) MAN/WAN      |
   CSP           O PE-CL1------------------------------O PE-CL2 CSP
   DC-Loc1       |                                     |        DC-Loc2
   |-------------O ER-CL1-------------------| |--------O ER-CL2--------|
   |             |                          | |        |               |
   |            -------------------------   | | ---------------------- |
   |            | CSP DC 1 Core/Aggr    |   | | |CSP DC 2 Core/Aggr  | |
   |            ---------O Access SW1----   | | ------O Access SW2---| |
   |                     |                  | |       | \              |
   |         ------------|-----------       | |       |   \            |
   |         |                      |       | |       |     \          |
   |      ---O HSW 1 ----------     O HSW 2 | | HSW 3 O       O HSW 4  |
   |      |           |       |     |       | |       |       |        |
   |      |           |       |     |       | |       |       |        |
   |      |           O VFW   |     |       | |       O VFW   |        |
   |      |           | T11   |     |       | |       | T12   |        |
   | ---------   ----------  ---- ------    | | -----------  --------- |
   |  |     |     |     |      |     |      | |  |      |       |      |
   |  O ... O     O ... O      O ... O ...  | |  O  ... O       O ...  |
   |  T1    T1    T1    T1     T2    T1     | |  T1     T1      T1     |
   |  VM11  VM12  VM13  VM14   VM21  VM15   | |  VM16   VM17    VM18   |
   |     OFPR-      OFPR-            OFPR-  | |     OFPR-       OFPR-  |
   |     DMZ1       App1-1           App-D-1| |     DMZ-2      App-D-2|
   ------------------------------------------ --------------------------







Hasan, et al.           Expires December 09, 2013               [Page 8]

Internet-Draft Programmatic Interfaces to Network Services     June 2013


3.  Security Considerations

   Typical security considerations of network service updates will
   apply.  In an on-demand dynamic Cloud environment certain security
   issues may be amplified.  For example, uncontrolled BGP updates as
   resources are CRUD very dynamically (by a rogue entity).  The dynamic
   application of configuration may amplify the situation of mistaken
   route leaking from one VPN to another.  Hence proper steps should be
   taken.

4.  IANA Considerations

   There is no IANA consideration.

5.  Conclusion

   There is need for defining programmatic interfaces for various
   network services and features to effect on-demand and elastic changes
   in the network in a fast timescale as required in a Cloud
   environment.  Employing virtual hybrid Cloud as a use case with its
   realization over a MPLS VPN network, we have outlined programmatic
   interfaces to network services (I2NS) as it pertains to MPLS VPN.
   With I2RS as the base framework, the I2NS for MPLS VPN and other
   Cloud relevant network services should be defined.

6.  Acknowledgements

   The authors would like to acknowledge contributions of Mohammad R.
   Rahman and Darren Y. Hu of UC Davis, California, for their valuable
   input for the programmatic interfaces.

7.  References

7.1.  Normative References

   [RFC4364]  Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
              Networks (VPNs)", RFC 4364, February 2006.

   [RFC4360]  Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended
              Communities Attribute", RFC 4360, February 2006.

7.2.  Informative References

   [NIST]     Mell, P. and T. Grance, "The NIST Definition of Cloud
              Computing", 800-145 NIST, September 2011, <http://
              csrc.nist.gov/publications/nistpubs/800-145/
              SP800-145.pdf>.




Hasan, et al.           Expires December 09, 2013               [Page 9]

Internet-Draft Programmatic Interfaces to Network Services     June 2013


   [RFC2685]  Fox, B. and B. Gleeson, "Virtual Private Networks
              Identifier", RFC 2685, September 1999,
              <http://tools.ietf.org/html/rfc2685>.

   [SHC]      Hasan, M., Chari, A., and B. et.al., "A framework for
              controlling Multitenant Isolation, Connectivity and
              Reachability in a Hybrid Cloud Environment", , September
              2012,
              <http://tools.ietf.org/html/draft-masum-chari-shc-00>.

Authors' Addresses

   Masum Z. Hasan
   Cisco Systems, Inc.
   170 West Tasman Drive
   San Jose, CA  95134
   USA

   Email: masum@cisco.com


   Abdelhadi Chari
   France Telecom - Orange Labs
   2, avenue Pierre Marzin
   Lannion , 22307
   France

   Email: abdelhadi.chari@orange.com


   David Fahed
   France Telecom - Orange Labs
   2, avenue Pierre Marzin
   Lannion , 22307
   France

   Email: david.fahed@orange.com


   Monique Morrow
   Cisco Systems, Inc.
   170 West Tasman Drive
   San Jose, CA  95134
   US

   Email: mmorrow@cisco.com





Hasan, et al.           Expires December 09, 2013              [Page 10]