Internet DRAFT - draft-keyupate-bgp-services

draft-keyupate-bgp-services







Network Working Group                                         K.P. Patel
Internet-Draft                                               J.M. Medved
Intended status: Standards Track                           R.F. Fernando
Expires: October 28, 2013                                 B.P. Pithawala
                                                           Cisco Systems
                                                          April 26, 2013


                    Service Advertisement using BGP
                   draft-keyupate-bgp-services-02.txt

Abstract

   A variety of services, such as NATs, firewalls, or caches, can be
   embedded in a service provider network or instantiated in data
   centers attached to the network.  This document proposes extensions
   to BGP that facilitate discovery of such service instances by
   interested clients and allows dissemination of service information,
   such as services capabilities or capacities, thoughtout the network
   domain.  The proposed extensions allow for optimal routing of
   requests to service instances that can optimally serve them.

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 October 28, 2013.

Copyright Notice

   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



Patel, et al.           Expires October 28, 2013                [Page 1]

Internet-Draft      Service Advertisement using BGP           April 2013


   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  . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   3
     1.2.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   3
     1.3.  Overview  . . . . . . . . . . . . . . . . . . . . . . . .   4
   2.  Service Advertisement & Discovery . . . . . . . . . . . . . .   5
     2.1.  The Service Advertisement Attribute . . . . . . . . . . .   5
   3.  Distribution of Service Data  . . . . . . . . . . . . . . . .   6
     3.1.  Capability Advertisement for Service AFI  . . . . . . . .   6
     3.2.  BGP Service AFI . . . . . . . . . . . . . . . . . . . . .   6
     3.3.  NLRI Format for Service AFI . . . . . . . . . . . . . . .   7
     3.4.  The Service Attribute . . . . . . . . . . . . . . . . . .   8
   4.  Operation . . . . . . . . . . . . . . . . . . . . . . . . . .   8
     4.1.  Announcing BGP Service Discovery Attribute  . . . . . . .   8
     4.2.  BGP Service AFI . . . . . . . . . . . . . . . . . . . . .   8
   5.  Service Example . . . . . . . . . . . . . . . . . . . . . . .   9
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  10
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  10
   8.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  10
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  10
     9.1.  Normative References  . . . . . . . . . . . . . . . . . .  11
     9.2.  Informative References  . . . . . . . . . . . . . . . . .  11
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  12









Patel, et al.           Expires October 28, 2013                [Page 2]

Internet-Draft      Service Advertisement using BGP           April 2013


1.  Introduction

   The current BGP specification does NOT provide any generic mechanism
   to advertise service instances within a BGP enabled network.  The
   current BGP specification also does NOT provide a mechanism to carry
   opaque service data within a BGP enabled network.  This draft defines
   several extensions to BGP that allows both the advertisement and the
   discovery of service instances and the distribution of service
   related data within a BGP network.

   Service advertisement and discovery is facilitated by distributing
   Service Advertiser location information throughout the network.  This
   document proposes a new optional transitive attribute - the Service
   Advertisement Attribute that carries addresses of BGP Speakers,
   thereby facilitating the service advertisements and service
   discovery.  Entities interested in receiving service information will
   peer with one or more service-advertising BGP Speakers and receive
   service data directly from them.

   This draft also defines a new BGP Capability known as BGP Service AFI
   Capability, a new BGP AFI and its NLRI format to carry opaque Service
   data within a BGP enabled network.  BGP Service AFI leaverages
   existing BGP machninery of message annoucements, processing of
   received messages, loop detection, policy application and other vital
   protocol framework to transport Service information.  Routers enabled
   with Service AFI are expected to store Service information possibly
   as an opaque data.

   In addition to the service information discovery and dissemination
   mechanism, Pub/Sub APIs MAY be required for registration of service
   instances with the network entities.  The definition of such Pub/Sub
   APIs are outside the scope of this document.

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

1.2.  Terminology

   This document uses the following terminology:

   Service Instance:  A Service application running on an end device or
      on a network device.  Service applications are bloadly classified
      into two categories: Network Services and Application Services.





Patel, et al.           Expires October 28, 2013                [Page 3]

Internet-Draft      Service Advertisement using BGP           April 2013


   Service consumer:  An end device or a network device that is a
      interested in a particular Service.

   Gateway:  An network device that is responsible for doing a service
      conversion across different protocols.

   Originator:  An end device or a network device originating a
      particular service.

1.3.  Overview

   In today's networks, both the services provided in the network (NATs,
   Firewalls, etc.)  and the service overlays (services provided in
   enterprise or cloud data centers) are dynamic in nature.  New service
   instances are instantiated on demand, instances that are not
   sufficiently utilized are deleted and their resources are redeployed;
   load and traffic patterns change frequently and abruptly; more and
   more service consumers are mobile.  A service consumer (or its proxy,
   such as a service router) needs to know which services it can reach
   and their location.  To optimize the usage of the underlying network
   and the service overlay, a service consumer needs to know where to
   find service instances and what are capacities and capabilities of
   each service instance.

   BGP provides a transport to distribute service information for
   several reasons:

   o  Scalability, performance and ubiquitous deployment in service
      providers networks

   o  It can be used to distribute information within an AS domain or
      between AS domains

   o  Leverage its security

   o  Rich policy capabilities allow the operator to control the
      distribution of service information

   +----------+  +----------+                +----------+  +----------+
   | Service  |  | Service  |                | Service  |  | Service  |
   | Provider |  | Provider |                | Consumer |  | Consumer |
   +----+-----+  +----+-----+                +----------+  +----------+
        |             |                             ^             ^
        |             V                             |             |
        |        +---------+                   +---------+        |
        |        | Gateway |                   | Gateway |        |
        |        +---------+                   +---------+        |
        |             |                             ^             |



Patel, et al.           Expires October 28, 2013                [Page 4]

Internet-Draft      Service Advertisement using BGP           April 2013


        V             V           _______           |             |
      +-----------------+        /       \        +-----------------+
      |   BGP Speaker   |------>* Network *------>|   BGP Speaker   |
      +-----------------+        \_______/        +-----------------+

             Figure 1: Service discovery and metadata exchange

   Figure 1 shows a typical service network where services consumers
   interact with each other over a network.  As shown in the figure, a
   Service Provider may inject service information into BGP either
   directly or through a Gateway.  BGP then distributes the Service
   information within its network.  Service information may also be
   distributed across the AS domains.  A Service consumer receives
   Information about available services either directly by listening to
   BGP updates or through a Gateway.  Gateways may provide different
   APIs to Service Providers/Consumers, for example ReST, XMPP, or
   Websockets.

   A Gateway translates between an application-friendly data format /
   API on the Service Provider/Consumer Side, and a BGP-specific format
   on the BGP Speaker side.  The BGP-specific format would use BGP
   protocol (i.e the Gaetway appears as a peer to the BGP Speaker) or an
   API that can inject/retrieve data directly from BGP internal
   databases, such as IRS.

2.  Service Advertisement & Discovery

2.1.  The Service Advertisement Attribute

   The Service Advertisement attribute is a new BGP optional transitive
   attribute.  The attribute type code for the Service Advertisement
   attribute is to be assigned by IANA.  The value field of the Service
   Advertisement attribute is defined as set of one or more Service
   Tuples.

   A Service Tuple within the Service Advertisement Attribute is defined
   as follows:

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                          Service Type                         ~
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ~                          Service Type (Cont'd)                |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | Orig-ID Type  | Orig-ID Len   |   Originator-ID               ~
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ~                         Originator-ID                         ~



Patel, et al.           Expires October 28, 2013                [Page 5]

Internet-Draft      Service Advertisement using BGP           April 2013


     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Figure 2: Service Tuple format

   The fields are as follows:

   Service Type:  Eight octets encoding the Service Type.  The Service
      Type code point space will have to be maintained by IANA.  Only
      type 1 is defined in this document.  Service ID from 4294967296
      onwards are reserved for private use only.

   Originator-ID Type:  One octet encoding the Originator-ID Type.  Type
      value of 0 indicates an IPv4 address type, Type value of 1
      indicates an IPv6 address type, and Type value of 2 indicates an
      AS number type.

   Originator-ID Length:  One octet encoding the Originator-ID address
      length.  Orignator-ID is not present in the Service Tuple if the
      Originator-ID Length is 0.

   Originator-ID:  Optional, contains the IP address of the router
      Originating the Service Tuple.  If the advertising router's IP
      address is not present, then the Originator of the Service
      Advertisement attribute is the first AS aka rightmost AS in the
      final segment of an ASPATH attribute if that segment is of type
      AS_SEQUENCE, or the distinguished value "NONE" if the final
      segment of the AS_PATH attribute is of any type other than
      AS_SEQUENCE.  Originator ID length of 4 octets indicate an IPv4
      Address and 16 octets indicates an IPv6 address

   The service attribute applies to all prefixes carried in an UPDATE
   message - either in IPv4 NLRI or in MP_REACH/MP_UNREACH attributes.

3.  Distribution of Service Data

3.1.  Capability Advertisement for Service AFI

   The BGP Service AFI Capability is a new BGP capability, that can be
   used by a BGP speaker to indicate its support for BGP Service AFI
   Advertisements.  A BGP speaker willing to exchange this capability
   MUST advertise this information in the OPEN message using BGP
   Capability code 1 [RFC4760].  The AFI value is set to BGP Service AFI
   value to be assigned by IANA.  The SAFI value is set to UNICAST
   value.

3.2.  BGP Service AFI





Patel, et al.           Expires October 28, 2013                [Page 6]

Internet-Draft      Service Advertisement using BGP           April 2013


   This document introduces a new AFI known as a BGP Service AFI with a
   value to be assigned by IANA.  The purpose of this AFI would be to
   exchange Service specific information within a BGP network.  The SAFI
   value is set to UNICAST value as defined in IANA SAFI registry.

3.3.  NLRI Format for Service AFI

   BGP Service AFI NLRI is advertised in BGP UPDATE messages using the
   MP_REACH_NLRI and MP_UNREACH_NLRI attributes [RFC4760].  The AFI used
   to identify this NRLI is BGP Service AFI with a value to be assigned
   by IANA.  The SAFI value is set to UNICAST value as defined in IANA
   SAFI registry.

   The Next Hop field of MP_REACH_NLRI attribute shall be interpreted as
   an IPv4 address whenever the length of the Next Hop address is 4
   octets, and as an IPv6 address whenever the length of the Next Hop
   address is 16 octets.

   The NLRI field in the MP_REACH_NLRI and MP_UNREACH_NLRI is a prefix
   with the maximum length of 276 octets.  The NLRI field of the
   MP_REACH_NLRI and MP_UNREACH_NLRI is encoded as a 1-octet NLRI length
   field in bytes followed by a variable-length NLRI value.  The NLRI
   length is expressed in octets.

                    +--------------------------------+
                    |     length (1 octet)           |
                    +--------------------------------+
                    |     NLRI value  (variable)     |
                    +--------------------------------+

                          Figure 3: Service NLRI

   The Length field indicates the length of NLRI value in octets.

   The NLRI Format is as follows:

                    +--------------------------------+
                    |     AS Number (4 octets)       |
                    +--------------------------------+
                    |     Originator ID (16 octets)  |
                    +--------------------------------+
                    ~           Service ID           ~
                    ~  Variable (up to 227 Octets)   ~
                    +--------------------------------+

                       Figure 4: Service NLRI format

   The fields in the Service NLRI are as follows:



Patel, et al.           Expires October 28, 2013                [Page 7]

Internet-Draft      Service Advertisement using BGP           April 2013


   AS Number:  Four octets encoding the AS Number of an Autonomous
      System originating the prefix.  The AS Number value will be the
      value assigned by IANA.

   Originator ID:  16 Octets encoding the Originator ID value.

   Service ID:  Upto 227 octets encoding the Service ID value.

3.4.  The Service Attribute

   The Service attribute is a new BGP optional transitive attribute.
   The attribute type code for the Service attribute is to be assigned
   by IANA.  The Service attribute carries BGP Service AFI NLRI specific
   information.  The value field of the Service attribute contains
   service specific data opaque to BGP.

4.  Operation

4.1.  Announcing BGP Service Discovery Attribute

   The Service Discovery attribute is used to announce/withdraw new
   Service instances within a network.  The Service Discovery attribute
   is a new optional transitive attribute that can be applied to any AFI
   /SAFI within BGP; thereby facilitating service instance discovery on
   an existing network.  The attribute is not related to the AFI/SAFI to
   which it is attached, and it does not impact the BGP selection
   algorithm.  The AFI/SAFI is used merely as a distribution mechanism
   for Service Advertiser information carried in the attribute.

   A BGP Speaker MUST aggregate all the Service attribute Tuple
   information received from all the paths (including the non-bestpaths)
   for a given NLRI and announce the aggregated Service information
   along with the bestpath in case where all the BGP paths [ADDPATHS]
   are not being announced.  A BGP Speaker MUST announce BGP Service
   attribute along with its own path whenever all the paths [ADDPATHS]
   are announced.  These rules ensure that Service Discovery attributes
   always get announced within a given network.

   Each Service Announcement attribute tuple consist of an optional
   Originator-ID value.  If this value is present, then a Service Tuple
   information is considered as incomplete if it does not contain a
   valid Originator-ID address or an Origin AS number.  In such
   conditions, the received Service Tuple information maybe be ignored
   with an appropriate error logging.

4.2.  BGP Service AFI





Patel, et al.           Expires October 28, 2013                [Page 8]

Internet-Draft      Service Advertisement using BGP           April 2013


   BGP Service AFI is a new AFI used to carry Opaque Service
   information.  The opaque Service data is carried within BGP using the
   BGP Service Attribute that is attached to a BGP Service AFI NLRIs.
   BGP Speakers configured to exchange data over the BGP Service AFI are
   required to store and forward the opaque Service level information.
   A standard BGP refreshing mechanisms [RFC2918] could be used to
   refresh the information hop-by-hop whenever required.  The scope of
   announcing opaque Service data could be control using BGP Communities
   defined in [RFC1998] or using BGP Extended Communities defined in
   [RFC4360].

   BGP Service AFI MAY use multisession [I-D.ietf-idr-bgp-multisession]
   to have a separate session to transport its opaque data and thereby
   not affect the performance of existing routing AFI/SAFIs within BGP.

5.  Service Example

   It is assumed that service-specific attributes and NLRIs will be
   defined in their own documents.  Each service needs to advertise its
   reachability, capacities and capabilities.  This section provides an
   example of a service - a simple caching service.

   It is assumed that the Service ID will be allocated by IANA for the
   simple caching service.

   The simple caching service will only advertise service availability
   during service discovery using the Service Advertisement Attribute
   (Section 2.1).  A simple cache service instance is identified by its
   IPv4 and IPv6 addresses.  The Service ID in the Service NLRI (Figure
   3) is defined as follows:

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                     Service IPv4 address                      |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
     |                     Service IPv6 Address                      |
     |                                                               |
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               Figure 5: Service ID for simple cache service

   A simple cache service instance advertises its capacities and
   capabilities as TLVs in the service Attribute (Section 3.4).  The TLV
   data is opaque to the BGP speaker.  The TLVs are as follows:




Patel, et al.           Expires October 28, 2013                [Page 9]

Internet-Draft      Service Advertisement using BGP           April 2013


   Load:  Identifies the current load of the cache; the bigger the load,
      the less prefered is this instance of the service.  Load is an
      interger in the range 0-100.  which shows the percentage of the
      capacity of the service instance is currently being used by
      clients.

   Supported media types:  This TLVs lists all media types that can be
      served from this cache instance.  There is a sub-TLV for each
      media type.

   Protocols:  This TLVs lists all protocol types that can be used to
      serve content from this cache instance.  There is a sub-TLV for
      each protocol type.

   Simple cache service instance advertisements are injected into BGP by
   simple cache instances throguh a gateway or a proxy providing an XMPP
   or RESTful API.  Simple cache service instance advertisements are
   received by a service router, which directs client requests to the
   most appropriate instance of the cache.

6.  IANA Considerations

   This document requests a code point from the registry of Address
   Family Numbers.

   This document requests a code point from the BGP Path Attributes
   registry.

   This document requests creation of a new registry for service type
   codepoints.  Allocations within the registry will require
   documentation of the proposed use of the allocated value and approval
   by the Designated Expert assigned by the IESG (see [RFC5226]).

   Note to RFC Editor: this section may be removed on publication as an
   RFC.

7.  Security Considerations

   This extension to BGP does not change the underlying security issues
   inherent in the existing [RFC4724] and [RFC4271]

8.  Acknowledgements

   The authors would like to thank Dave Ward and Stefano Previdi for the
   review and comments.

9.  References




Patel, et al.           Expires October 28, 2013               [Page 10]

Internet-Draft      Service Advertisement using BGP           April 2013


9.1.  Normative References

   [I-D.ietf-idr-bgp-multisession]
              Scudder, J., Appanna, C., and I. Varlashkin, "Multisession
              BGP", draft-ietf-idr-bgp-multisession-07 (work in
              progress), September 2012.

   [RFC1998]  Chen, E. and T. Bates, "An Application of the BGP
              Community Attribute in Multi-home Routing", RFC 1998,
              August 1996.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2918]  Chen, E., "Route Refresh Capability for BGP-4", RFC 2918,
              September 2000.

   [RFC3392]  Chandra, R. and J. Scudder, "Capabilities Advertisement
              with BGP-4", RFC 3392, November 2002.

   [RFC4271]  Rekhter, Y., Li, T., and S. Hares, "A Border Gateway
              Protocol 4 (BGP-4)", RFC 4271, January 2006.

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

   [RFC4724]  Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y.
              Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724,
              January 2007.

   [RFC4760]  Bates, T., Chandra, R., Katz, D., and Y. Rekhter,
              "Multiprotocol Extensions for BGP-4", RFC 4760, January
              2007.

   [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
              IANA Considerations Section in RFCs", BCP 26, RFC 5226,
              May 2008.

9.2.  Informative References

   [RFC4486]  Chen, E. and V. Gillet, "Subcodes for BGP Cease
              Notification Message", RFC 4486, April 2006.









Patel, et al.           Expires October 28, 2013               [Page 11]

Internet-Draft      Service Advertisement using BGP           April 2013


Authors' Addresses

   Keyur Patel
   Cisco Systems
   170 W. Tasman Drive
   San Jose, CA  95134
   USA

   Email: keyupate@cisco.com


   Jan Medved
   Cisco Systems
   170 W. Tasman Drive
   San Jose, CA  95134
   USA

   Email: jmedved@cisco.com


   Rex Fernando
   Cisco Systems
   170 W. Tasman Drive
   San Jose, CA  95134
   USA

   Email: bpithaw@cisco.com


   Burjiz Pithawala
   Cisco Systems
   170 W. Tasman Drive
   San Jose, CA  95134
   USA

   Email: bpithaw@cisco.com














Patel, et al.           Expires October 28, 2013               [Page 12]