Internet DRAFT - draft-white-bgpbgp

draft-white-bgpbgp







Network Working Group                                          A. Retana
Internet-Draft                                       Cisco Systems, Inc.
Intended status: Standards Track                                R. White
Expires: December 18, 2014                                      J. Heitz
                                                                Ericsson
                                                           June 16, 2014


                  BGP Based Generic TransPort (bgpBGP)
                         draft-white-bgpbgp-00

Abstract

   A wide array of information is being carried (or proposed to be
   carried) through BGP peering sessions.  While this information is
   necessary and valid, BGP was not designed to carry blobs of
   information, but rather network layer reachability and information
   related directly to forwarding traffic from peer to peer.  This
   document proposes a new BGP message type with a well defined
   structure to use BGP peering sessions for information passed from
   provider to provider along edge peering points, the BGP based Generic
   transPort (bgpBGP).  This message type is designed to allow any pair
   of BGP speakers to transfer information within an existing session,
   or for BGP peering semantics to be used with multihop sessions
   between "information exchange speakers" within an autonomous system.
   The new message type is designed to provide flexibility by allowing
   the encoding of virtually any information within a BGP session
   through the use of type-length-vector formatting.

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 18, 2014.






Retana, et al.          Expires December 18, 2014               [Page 1]

Internet-Draft    BGP Based Generic TransPort (bgpBGP)         June 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 Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Requirements notation . . . . . . . . . . . . . . . . . . . .   2
   2.  Description of the Problem Space  . . . . . . . . . . . . . .   2
   3.  The Generic Transport Message . . . . . . . . . . . . . . . .   3
   4.  Negotiating BGP Based Generic Transport . . . . . . . . . . .   6
   5.  Peer Restart/Database Refresh . . . . . . . . . . . . . . . .   6
   6.  The Generic Transport Database Descriptor and Request . . . .   7
   7.  The Certificate Generic Transport Block . . . . . . . . . . .   8
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   8
   9.  Security Considerations . . . . . . . . . . . . . . . . . . .   9
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .   9
     10.1.  Normative References . . . . . . . . . . . . . . . . . .   9
     10.2.  Informative References . . . . . . . . . . . . . . . . .   9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10

1.  Requirements notation

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

2.  Description of the Problem Space

   In many ways, BGP has become the "default pigeon carrier" of the
   Internet.  In order to carry routing information, two autonomous
   systems must already have functioning BGP peering sessions
   configured, and BGP itself is easily extensible through address
   families, extended communities, and other mechanisms.  The existence
   of working connections and easy extensibility, however, creates a
   situation where BGP is being asked to carry data that reaches far
   beyond network layer reachability information.  For instance, Inter-
   Domain SLA Exchange [I-D.ietf-idr-sla-exchange] provides a mechanism



Retana, et al.          Expires December 18, 2014               [Page 2]

Internet-Draft    BGP Based Generic TransPort (bgpBGP)         June 2014


   whereby service level information can be exchanged through a BGP
   peering session between speakers located in different autonomous
   systems.  Another example is North-Bound Distribution of Link-State
   and TE Information using BGP [I-D.ietf-idr-ls-distribution], which
   distributes link state information through a special encoding through
   BGP.

   Both of these use cases, and many others, such as transporting X.509
   certificates, could be served better by carrying information outside
   the standard NLRI formatting of BGP.  This draft defines a new
   message type that would applications to carry information through a
   BGP session by encoding them in a new message type, rather than
   embedding them in what appears to be standard BGP routing
   information.  [RFC4721] This new message type is configured between
   two peers through a standard capabilities exchange process, and
   carries type-length-vector encoded data.

   Two uses for BGP Generic Transport are described in this document:
   carrying X.509 certificates and a generic transport database
   description.  These use cases provide justification and the needed
   framework within which to place this new message type.

3.  The Generic Transport Message

   The Generic Transport Message (GTM) header is formatted as described
   in BGP [RFC4721] section 4, with a type code of [TBD].  Within the
   GTM message is a series of TLVs, Generic Transport Blocks (GTBs),
   formatted as:























Retana, et al.          Expires December 18, 2014               [Page 3]

Internet-Draft    BGP Based Generic TransPort (bgpBGP)         June 2014


      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
     +-------------------------------+-------------------------------+
     | Type                          | Length                        |
     +-------------------------------+-------------------------------+
     | Identifier                                                    |
     |                                                               |
     |                                                               |
     |                                                               |
     +---------------------------------------------------------------+
     | Sequence                                                      |
     |                                                               |
     |                                                               |
     |                                                               |
     +---------------------------------------------------------------+
     | Extended Community Header                                     |
     |                                                               |
     +---------------------------------------------------------------+
     | Data ...
     +-----------------------------

   The fields above are:

   o  Type: A two octet unsigned integer describing the GTB type

   o  Length: A two octet unsigned integer describing the length of the
      GTB in octets

   o  Identifier: A sixteen octet field which can be used by the
      application to uniquely identify the information carried in this
      GTB

   o  Sequence: A sixteen octet field which can be used by the
      application to indicate the relative ordering of information of
      the same type and identity carried in this GTB

   o  Extended Community Header: An eight octet field formatted as
      described in [RFC4360]

   o  Data: The data, as described in the specific GTB format

   GTB types SHOULD be set to a code allocated by IANA for any GTB
   format which passes through the IETF process (including experimental
   or individual contribution).  Experimental GTB type codes are
   intended for local experimental use when developing applications
   using GTB to transfer data through a BGP session, or applications
   using this technique wholly within a single administrative domain.




Retana, et al.          Expires December 18, 2014               [Page 4]

Internet-Draft    BGP Based Generic TransPort (bgpBGP)         June 2014


   The identifier can be used by the application to indicate some unique
   property of the information carried in the data field.  This allows
   the BGP speaker to determine if this information is unique, or
   information already contained in a local database.

   The sequence field can be used by the application to indicate the
   "freshness" of the information carried in the data field.  The most
   obvious use of this field would be a monotonically increasing number
   indicating a newer version of some information advertised previously.

   The extended community header is intended to allow for the use of
   extended communities to control the distribution of the data included
   in this GTB through route targets or other means.  BGP speakers MUST
   control the flooding, distribution, and processing of the GTB as
   indicated in the information carried in this field.

   Processing received GTBs will proceed as follows:

   o  If a route target, community value, or other field in the extended
      community header indicates the GTB should not be accepted by the
      local router (through inbound filtering), the GTB is silently
      discarded

   o  If the type and identifier fields do not match any locally stored
      GTB, the received GTB is silently discarded

   o  If the type, identifier, and sequence fields match a GTB stored
      locally, follow the matching id/sequence number procedure outlined
      below

   o  If the type and identifier fields match a GTB stored locally, and
      the sequence number is less than the sequence number of the
      locally stored GTB, the received GTB is silently discarded

   o  If the type and identifier fields match a GTB stored locally, and
      the sequence number is set to 0, follow the withdraw procedure
      outlined below

   o  If the type and identifier fields match, and the sequence number
      is higher than the sequence number of the locally stored GTB,
      follow the update procedure outlined below

   Matching ID/Sequence procedure:

   o  If the remainder of the GTB matches an existing GTB, silently
      discard the received GTB





Retana, et al.          Expires December 18, 2014               [Page 5]

Internet-Draft    BGP Based Generic TransPort (bgpBGP)         June 2014


   o  If the remained of the GTB does not match an existing GTB, log an
      error and discard the received GTB

   Withdraw procedure:

   o  The received GTB with a sequence number set to 0 is forwarded to
      all peers

   o  The GTB is removed from local storage

   Update procedure:

   o  The received GTB is forward to all peers, limited by the route
      target or other filtering options indicated in the extended
      community header

   o  The received GTB replaces the existing GTB in local storage

4.  Negotiating BGP Based Generic Transport

   The BGP Based Generic Transport Capability is a new BGP capability
   [RFC5492].  The Capability Code for this capability is specified in
   the IANA Considerations section of this document.  The Capability
   Length field of this capability is 0.

   By advertising the BGP Based Generic Transport Capability to a peer,
   a BGP speaker conveys to the peer that the speaker is capable of
   receiving and properly handling BGP Based Generic Transport messages.

5.  Peer Restart/Database Refresh

   In certain situations, one speaker in a peering session may restarted
   (as outlined in [RFC4724]), a local filtering change may require
   reprocessing of the entire GTB database (or some subset, similar to
   the situation outlined in [RFC2918]), or the GTB database may need to
   be refreshed for some other reason.  While route refresh and graceful
   restart assume BGP has some knowledge of the information being
   exchanged between peers, BGP generic transport assumes BGP is
   carrying essentially opaque data.  Therefore the procedure relies on
   a database description and database request process, rather than end
   of table markers, as follows:

      Restarting speakers MAY hold a copy of the GTB database in
      nonvolatile storage to protect information carried through GTB
      across restarts.  If a local copy of the GTBs is available when a
      resynchronization begins, the originating speaker MUST mark the
      existing entries as "dirty," so nonexistent entries can be removed
      at the end of the resynchronization process.



Retana, et al.          Expires December 18, 2014               [Page 6]

Internet-Draft    BGP Based Generic TransPort (bgpBGP)         June 2014


      The speaker which wishes to resynchronize (either due to a
      restart, change in filtering policy, or for any other reason),
      sends its peer a Database Descriptor (GTBDD) Request with the type
      field set to 0x01, the sequence number set to 0x0, and the
      identifier set to the local router id.  Future GTBDDs will have a
      monotonically increasing sequence number.

      The speaker receiving this request will format a series of GTBDDs
      (type 0x02), describing the local database of GTBs, as described
      below.  These descriptor lists carry the type, identifier, and
      sequence number of each GTB in the sender's database.  The sending
      speaker ends the list with a GTBDD type 0x04, which indicates the
      entire database has been transmitted.

      The resynchronizing speaker compares this list of GTBs to local
      storage.  For each GTB, the resynchronizing speaker determines if
      it has an up to date local copy of the GTB, or not.  For GTBs with
      a matching local copy, the "dirty" marker set above MUST be
      cleared.

      The resynchronizing speaker sends a GTBDD request (type 0x03) for
      each GTB which it is missing in its local storage, finishing with
      a GTBDD end of database marker (type 0x04).

      The speaker receiving this request will transmit the requested
      GTBs, which will be processed according to normal rules (as
      outlined above).

      At the end of processing, all GTBs which were marked as "dirty"
      MUST be removed from the local database.

6.  The Generic Transport Database Descriptor and Request

   The generic transport database descriptor can be used to describe the
   current state of the local GTB database in a BGP speaker.  For this
   GTP, the following fields will be used:

   o  For a database descriptor request, the type field will be set to
      0x01

   o  For a database description listing, the type field will be set to
      0x02

   o  For a GTB request, the type field will be set to 0x03

   o  For an end of database marker, the type field will be set to 0x04





Retana, et al.          Expires December 18, 2014               [Page 7]

Internet-Draft    BGP Based Generic TransPort (bgpBGP)         June 2014


   o  The length field will be set to the length of the database
      descriptor

   o  The I bit will be set indicating this is an IANA defined type code

   o  The T bit will be clear indicating this is a non-transitive GTB

   o  The identifier field will be set to router ID of the BGP speaker
      sending the GTB

   o  The sequence number will be set to a monotonically increasing
      number set by the originator indicating the block of entry
      descriptors in the current GTB

   The data field will consist of a list of GTB headers.  If this GTB is
   a descriptor, these GTB headers will be taken as a list of GTBs
   contained in the local database of the transmitter.  If this GTB is a
   request, these GTB headers will be taken as a list of GTBs the
   speaker would like the receiver to transmit to the originator of the
   GTB.

7.  The Certificate Generic Transport Block

   The certificate GTP carries a Route Origin Authentication (ROA) X.509
   certificate as described in [RFC6482].  For this GTP, the following
   fields will be used:

   o  The type field will be set to 0x05

   o  The length field will be set to the length of the ROA

   o  The I bit within the extended community header will be set
      indicating this is an IANA defined type code

   o  The T bit within the extended community header will be set
      indicating this is a transitive GTB

   o  The identifier field will be set to the prefix contained in the
      ROA

   o  The sequence number will be set to the expiration time of the
      certificate, encoded as described in [RFC6482]

8.  IANA Considerations

   This document introduces the BGP Based Generic Transport Capability.
   The capability code needs to be assigned by IANA per [RFC5492].




Retana, et al.          Expires December 18, 2014               [Page 8]

Internet-Draft    BGP Based Generic TransPort (bgpBGP)         June 2014


   This document introduces a new BGP message type, BGPBGP.  The type
   code needs to be assigned by IANA.

   This document introduces a new GTB type for describing the type and
   format of information carried in a GTB TLV within a GTM.  This is a
   new 32 bit number space that needs to be registered with the IANA.

9.  Security Considerations

   None.

10.  References

10.1.  Normative References

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

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

   [RFC4721]  Perkins, C., Calhoun, P., and J. Bharatia, "Mobile IPv4
              Challenge/Response Extensions (Revised)", RFC 4721,
              January 2007.

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

   [RFC5492]  Scudder, J. and R. Chandra, "Capabilities Advertisement
              with BGP-4", RFC 5492, February 2009.

   [RFC6482]  Lepinski, M., Kent, S., and D. Kong, "A Profile for Route
              Origin Authorizations (ROAs)", RFC 6482, February 2012.

10.2.  Informative References

   [I-D.ietf-idr-ls-distribution]
              Gredler, H., Medved, J., Previdi, S., Farrel, A., and S.
              Ray, "North-Bound Distribution of Link-State and TE
              Information using BGP", draft-ietf-idr-ls-distribution-05
              (work in progress), May 2014.






Retana, et al.          Expires December 18, 2014               [Page 9]

Internet-Draft    BGP Based Generic TransPort (bgpBGP)         June 2014


   [I-D.ietf-idr-sla-exchange]
              Shah, S., Patel, K., Bajaj, S., Tomotaki, L., and M.
              Boucadair, "Inter-domain SLA Exchange", draft-ietf-idr-
              sla-exchange-03 (work in progress), April 2014.

Authors' Addresses

   Alvaro Retana
   Cisco Systems, Inc.
   7025 Kit Creek Rd.
   Research Triangle Park, NC  27709
   USA

   Email: aretana@cisco.com


   Russ White
   Ericsson

   Email: russw@riw.us


   Jakob Heitz
   Ericsson

   Email: jakob.heitz@ericsson.com

























Retana, et al.          Expires December 18, 2014              [Page 10]