| < draft-keyupate-bgp-services-00.txt | draft-keyupate-bgp-services-01.txt > | |||
|---|---|---|---|---|
| Network Working Group K. Patel | Network Working Group K. Patel | |||
| Internet-Draft J. Medved | Internet-Draft J. Medved | |||
| Intended status: Standards Track R. Fernando | Intended status: Standards Track R. Fernando | |||
| Expires: April 18, 2013 B. Pithawala | Expires: April 02, 2013 B. Pithawala | |||
| Cisco Systems | Cisco Systems | |||
| October 15, 2012 | October 2012 | |||
| Service Advertisement using BGP | Service Advertisement using BGP | |||
| draft-keyupate-bgp-services-00.txt | draft-keyupate-bgp-services-01.txt | |||
| Abstract | Abstract | |||
| A variety of services, such as NATs, firewalls, or caches, can be | A variety of services, such as NATs, firewalls, or caches, can be | |||
| embedded in a service provider network or instantiated in data | embedded in a service provider network or instantiated in data | |||
| centers attached to the network. This document proposes extensions | centers attached to the network. This document proposes extensions | |||
| to BGP that facilitate discovery of such service instances by | to BGP that facilitate discovery of such service instances by | |||
| interested clients and allows dissemination of service information, | interested clients and allows dissemination of service information, | |||
| such as services capabilities or capacities, thoughtout the network | such as services capabilities or capacities, throughout the network | |||
| domain. The proposed extensions allow for optimal routing of | domain. The proposed extensions allow for optimal routing of | |||
| requests to service instances that can optimally serve them. | requests to service instances that can optimally serve them. | |||
| Status of this Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on April 18, 2013. | This Internet-Draft will expire on April 02, 2013. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2012 IETF Trust and the persons identified as the | Copyright (c) 2012 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 3, line 7 ¶ | skipping to change at page 2, line 29 ¶ | |||
| modifications of such material outside the IETF Standards Process. | modifications of such material outside the IETF Standards Process. | |||
| Without obtaining an adequate license from the person(s) controlling | Without obtaining an adequate license from the person(s) controlling | |||
| the copyright in such materials, this document may not be modified | the copyright in such materials, this document may not be modified | |||
| outside the IETF Standards Process, and derivative works of it may | outside the IETF Standards Process, and derivative works of it may | |||
| not be created outside the IETF Standards Process, except to format | not be created outside the IETF Standards Process, except to format | |||
| it for publication as an RFC or to translate it into languages other | it for publication as an RFC or to translate it into languages other | |||
| than English. | than English. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
| 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1.3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2. Service Advertisement & Discovery . . . . . . . . . . . . . . 6 | 2. Service Advertisement & Discovery . . . . . . . . . . . . . . 5 | |||
| 2.1. The Service Advertisement Attribute . . . . . . . . . . . 6 | 2.1. The Service Advertisement Attribute . . . . . . . . . . . 5 | |||
| 3. Distribution of Service Data . . . . . . . . . . . . . . . . . 7 | 3. Distribution of Service Data . . . . . . . . . . . . . . . . . 6 | |||
| 3.1. Capability Advertisement for Service AFI . . . . . . . . . 8 | 3.1. Capability Advertisement for Service AFI . . . . . . . . . 6 | |||
| 3.2. BGP Service AFI . . . . . . . . . . . . . . . . . . . . . 8 | 3.2. BGP Service AFI . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.3. NLRI Format for Service AFI . . . . . . . . . . . . . . . 8 | 3.3. NLRI Format for Service AFI . . . . . . . . . . . . . . . 6 | |||
| 3.4. The Service Attribute . . . . . . . . . . . . . . . . . . 9 | 3.4. The Service Attribute . . . . . . . . . . . . . . . . . . 7 | |||
| 4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.1. Announcing BGP Service Discovery Attribute . . . . . . . . 9 | 4.1. Announcing BGP Service Discovery Attribute . . . . . . . . 7 | |||
| 4.2. BGP Service AFI . . . . . . . . . . . . . . . . . . . . . 10 | 4.2. BGP Service AFI . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5. Service Example . . . . . . . . . . . . . . . . . . . . . . . 10 | 5. Service Example . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
| 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . . 12 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . . 13 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 10 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13 | 11.2. Informative References . . . . . . . . . . . . . . . . . 11 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| 1. Introduction | 1. Introduction | |||
| The current BGP specification does NOT provide any generic mechanism | The current BGP specification does NOT provide any generic mechanism | |||
| to advertise service instances within a BGP enabled network. The | to advertise service instances within a BGP enabled network. The | |||
| current BGP specification also does NOT provide a mechanism to carry | current BGP specification also does NOT provide a mechanism to carry | |||
| opaque service data within a BGP enabled network. This draft defines | opaque service data within a BGP enabled network. This draft defines | |||
| several extensions to BGP that allows both the advertisement and the | several extensions to BGP that allows both the advertisement and the | |||
| discovery of service instances and the distribution of service | discovery of service instances and the distribution of service | |||
| related data within a BGP network. | related data within a BGP network. | |||
| Service advertisement and discovery is facilitated by distributing | Service advertisement and discovery is facilitated by distributing | |||
| Service Advertiser location information throughout the network. This | Service Advertiser location information throughout the network. This | |||
| document proposes a new optional transitive attribute - the Service | document proposes a new optional transitive attribute - the Service | |||
| Advertisement Attribute that carries addresses of BGP Speakers, | Advertisement Attribute that carries addresses of BGP Speakers, | |||
| thereby faciliating the service advertisements and service discovery. | thereby facilitating the service advertisements and service | |||
| Entities interested in receiving service information will peer with | discovery. Entities interested in receiving service information will | |||
| one or more service-advertising BGP Speakers and receive service data | peer with one or more service-advertising BGP Speakers and receive | |||
| directly from them. | service data directly from them. | |||
| This draft also defines a new BGP Capability known as BGP Service AFI | 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 | Capability, a new BGP AFI and its NLRI format to carry opaque Service | |||
| data within a BGP enabled network. BGP Service AFI leaverages | data within a BGP enabled network. BGP Service AFI leverages | |||
| existing BGP machninery of message annoucements, processing of | existing BGP machinery of message announcements, processing of | |||
| received messages, loop detection, policy application and other vital | received messages, loop detection, policy application and other vital | |||
| protocol framework to transport Service information. Routers enabled | protocol framework to transport Service information. Routers enabled | |||
| with Service AFI are expected to store Service information possibly | with Service AFI are expected to store Service information possibly | |||
| as an opaque data. | as an opaque data. | |||
| In addition to the service information discovery and dissemination | In addition to the service information discovery and dissemination | |||
| mechanism, Pub/Sub APIs MAY be required for registration of service | mechanism, Pub/Sub APIs MAY be required for registration of service | |||
| instances with the network entities. The definition of such Pub/Sub | instances with the network entities. The definition of such Pub/Sub | |||
| APIs are outside the scope of this document. | APIs are outside the scope of this document. | |||
| 1.1. Requirements Language | 1.1. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
| 1.2. Terminology | 1.2. Terminology | |||
| This document uses the following terminology: | This document uses the following terminology: | |||
| Service Instance: A Service application running on an end device or | Service Instance: A Service application running on an end device or | |||
| on a network device. Service applications are bloadly classified | on a network device. Service applications are broadly classified | |||
| into two categories: Network Services and Application Services. | into two categories: Network Services and Application Services. | |||
| Service consumer: An end device or a network device that is a | Service consumer: An end device or a network device that is a | |||
| interested in a particular Service. | interested in a particular Service. | |||
| Gateway: An network device that is responsible for doing a service | Gateway: An network device that is responsible for doing a service | |||
| conversion across different protocols. | conversion across different protocols. | |||
| Originator: An end device or a network device originating a | Originator: An end device or a network device originating a | |||
| particular service. | particular service. | |||
| 1.3. Overview | 1.3. Overview | |||
| In today's networks, both the services provided in the network (NATs, | In today's networks, both the services provided in the network (NATs, | |||
| Firewalls, etc.) and the service overlays (services provided in | Firewalls, etc.) and the service overlays (services provided in | |||
| enterprise or cloud data centers) are dynamic in nature. New service | enterprise or cloud data centers) are dynamic in nature. New service | |||
| instances are instantiated on demand, instances that are not | instances are instantiated on demand, instances that are not | |||
| sufficiently utilized are deleted and their resources are redeployed; | sufficiently utilized are deleted and their resources are redeployed; | |||
| load and traffic patterns change frequently and abruptly; more and | load and traffic patterns change frequently and abruptly; more and | |||
| skipping to change at page 6, line 5 ¶ | skipping to change at page 4, line 34 ¶ | |||
| providers networks | providers networks | |||
| o It can be used to distribute information within an AS domain or | o It can be used to distribute information within an AS domain or | |||
| between AS domains | between AS domains | |||
| o Leverage its security | o Leverage its security | |||
| o Rich policy capabilities allow the operator to control the | o Rich policy capabilities allow the operator to control the | |||
| distribution of service information | distribution of service information | |||
| +----------+ +----------+ +----------+ +----------+ | +----------+ +----------+ +----------+ +----------+ | |||
| | Service | | Service | | Service | | Service | | | Service | | Service | | Service | | Service | | |||
| | Provider | | Provider | | Consumer | | Consumer | | | Provider | | Provider | | Consumer | | Consumer | | |||
| +----+-----+ +----+-----+ +----------+ +----------+ | +----+-----+ +----+-----+ +----------+ +----------+ | |||
| | | ^ ^ | | | ^ ^ | |||
| | V | | | | V | | | |||
| | +---------+ +---------+ | | | +---------+ +---------+ | | |||
| | | Gateway | | Gateway | | | | | Gateway | | Gateway | | | |||
| | +---------+ +---------+ | | | +---------+ +---------+ | | |||
| | | ^ | | | | ^ | | |||
| V V _______ | | | V V _______ | | | |||
| +-----------------+ / \ +-----------------+ | +-----------------+ / \ +-----------------+ | |||
| | BGP Speaker |------>* Network *------>| BGP Speaker | | | BGP Speaker |------>* Network *------>| BGP Speaker | | |||
| +-----------------+ \_______/ +-----------------+ | +-----------------+ \_______/ +-----------------+ | |||
| Figure 1: Service discovery and metadata exchange | Figure 1: Service discovery and metadata exchange | |||
| Figure 1 shows a typical service network where services consumers | Figure 1 shows a typical service network where services consumers | |||
| interact with each other over a network. As shown in the figure, a | interact with each other over a network. As shown in the figure, a | |||
| Service Provider may inject service information into BGP either | Service Provider may inject service information into BGP either | |||
| directly or through a Gateway. BGP then distributes the Service | directly or through a Gateway. BGP then distributes the Service | |||
| information within its network. Service information may also be | information within its network. Service information may also be | |||
| distributed across the AS domains. A Service consumer receives | distributed across the AS domains. A Service consumer receives | |||
| Information about available services either directly by listening to | Information about available services either directly by listening to | |||
| BGP updates or through a Gateway. Gateways may provide different | BGP updates or through a Gateway. Gateways may provide different | |||
| APIs to Service Providers/Consumers, for example ReST, XMPP, or | APIs to Service Providers/Consumers, for example ReST, XMPP, or | |||
| Websockets. | Websockets. | |||
| A Gateway translates between an application-friendly data format / | A Gateway translates between an application-friendly data format / | |||
| API on the Service Provider/Consumer Side, and a BGP-specific 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 | 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 | protocol (i.e the Gateway appears as a peer to the BGP Speaker) or an | |||
| API that can inject/retrieve data directly from BGP internal | API that can inject/retrieve data directly from BGP internal | |||
| databases, such as IRS. | databases, such as IRS. | |||
| 2. Service Advertisement & Discovery | 2. Service Advertisement & Discovery | |||
| 2.1. The Service Advertisement Attribute | 2.1. The Service Advertisement Attribute | |||
| The Service Advertisement attribute is a new BGP optional transitive | The Service Advertisement attribute is a new BGP optional transitive | |||
| attribute. The attribute type code for the Service Advertisement | attribute. The attribute type code for the Service Advertisement | |||
| attribute is to be assigned by IANA. The value field of the Service | attribute is to be assigned by IANA. The value field of the Service | |||
| Advertisement attribute is defined as set of one or more Service | Advertisement attribute is defined as set of one or more Service | |||
| Tuples. | Tuples. | |||
| A Service Tuple within the Service Advertisement Attribute is defined | A Service Tuple within the Service Advertisement Attribute is defined | |||
| as follows: | as follows: | |||
| 0 1 2 3 | 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 | 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 ID ~ | | Service Type ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ~ Service ID (Cont'd) | | ~ Service Type (Cont'd) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Orig-ID Type | Orig-ID Len | Originator-ID ~ | | Orig-ID Type | Orig-ID Len | Originator-ID ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ~ Originator-ID ~ | ~ Originator-ID ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 2: Service Tuple format | Figure 2: Service Tuple format | |||
| The fields are as follows: | The fields are as follows: | |||
| Service ID: Eight octets encoding the Service ID. The Service ID | Service Type: Eight octets encoding the Service Type. The Service | |||
| code point space will have to be maintained by IANA. Only type 1 | Type code point space will have to be maintained by IANA. Only | |||
| is defined in this document. Service ID from 4294967296 onwards | type 1 is defined in this document. | |||
| are reserved for private use only. | ||||
| Originator-ID Type: One octet encoding the Originator-ID Type. Type | Originator-ID Type: One octet encoding the Originator-ID Type. Type | |||
| value of 0 indicates an IPv4 address type, Type value of 1 | value of 0 indicates an IPv4 address type, Type value of 1 | |||
| indicates an IPv6 address type, and Type value of 2 indicates an | indicates an IPv6 address type, and Type value of 2 indicates an | |||
| AS number type. | AS number type. | |||
| Originator-ID Length: One octet encoding the Originator-ID address | Originator-ID Length: One octet encoding the Originator-ID address | |||
| length. Orignator-ID is not present in the Service Tuple if the | length. Originator-ID is not present in the Service Tuple if the | |||
| Originator-ID Length is 0. | Originator-ID Length is 0. | |||
| Originator-ID: Optional, contains the IP address of the router | Originator-ID: Optional, contains the IP address of the router | |||
| Originating the Service Tuple. If the advertising router's IP | Originating the Service Tuple. If the advertising router's IP | |||
| address is not present, then the Originator of the Service | address is not present, then the Originator of the Service | |||
| Advertisement attribute is the first AS aka rightmost AS in the | Advertisement attribute is the first AS aka rightmost AS in the | |||
| final segment of an ASPATH attribute if that segment is of type | final segment of an ASPATH attribute if that segment is of type | |||
| AS_SEQUENCE, or the distinguished value "NONE" if the final | AS_SEQUENCE, or the distinguished value "NONE" if the final | |||
| segment of the AS_PATH attribute is of any type other than | segment of the AS_PATH attribute is of any type other than | |||
| AS_SEQUENCE. Originator ID length of 4 octets indicate an IPv4 | AS_SEQUENCE. Originator ID length of 4 octets indicate an IPv4 | |||
| Address and 16 octets indicates an IPv6 address | Address and 16 octets indicates an IPv6 address | |||
| The service attribute applies to all prefixes carried in an UPDATE | The service attribute applies to all prefixes carried in an UPDATE | |||
| message - either in IPv4 NLRI or in MP_REACH/MP_UNREACH attributes. | message - either in IPv4 NLRI or in MP_REACH/MP_UNREACH attributes. | |||
| 3. Distribution of Service Data | 3. Distribution of Service Data | |||
| 3.1. Capability Advertisement for Service AFI | 3.1. Capability Advertisement for Service AFI | |||
| The BGP Service AFI Capability is a new BGP capability, that can be | 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 | used by a BGP speaker to indicate its support for BGP Service AFI | |||
| Advertisements. A BGP speaker willing to exchange this capability | Advertisements. A BGP speaker willing to exchange this capability | |||
| MUST advertise this information in the OPEN message using BGP | MUST advertise this information in the OPEN message using BGP | |||
| Capability code 1 [RFC4760]. The AFI value is set to BGP Service AFI | 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 to be assigned by IANA. The SAFI value is set to UNICAST value. | |||
| value. | ||||
| 3.2. BGP Service AFI | 3.2. BGP Service AFI | |||
| This document introduces a new AFI known as a BGP Service AFI with a | 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 | value to be assigned by IANA. The purpose of this AFI would be to | |||
| exchange Service specific information within a BGP network. The SAFI | exchange Service specific information within a BGP network. The SAFI | |||
| value is set to UNICAST value as defined in IANA SAFI registry. | value is set to UNICAST value as defined in IANA SAFI registry. | |||
| 3.3. NLRI Format for Service AFI | 3.3. NLRI Format for Service AFI | |||
| BGP Service AFI NLRI is advertised in BGP UPDATE messages using the | BGP Service AFI NLRI is advertised in BGP UPDATE messages using the | |||
| MP_REACH_NLRI and MP_UNREACH_NLRI attributes [RFC4760]. The AFI used | 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 | 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 | by IANA. The SAFI value is set to UNICAST value as defined in IANA | |||
| SAFI registry. | SAFI registry. | |||
| The Next Hop field of MP_REACH_NLRI attribute shall be interpreted as | 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 | 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 | octets, and as an IPv6 address whenever the length of the Next Hop | |||
| address is 16 octets. | address is 16 octets. | |||
| The NLRI field in the MP_REACH_NLRI and MP_UNREACH_NLRI is a prefix | 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 | with the maximum length of 255 octets. The NLRI field of the | |||
| MP_REACH_NLRI and MP_UNREACH_NLRI is encoded as a 1-octet NLRI length | 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 | field in bytes followed by a variable-length NLRI value. The NLRI | |||
| length is expressed in octets. | length is expressed in octets. | |||
| +--------------------------------+ | +--------------------------------+ | |||
| | length (1 octet) | | | Length (1 octet) | | |||
| +--------------------------------+ | +--------------------------------+ | |||
| | NLRI value (variable) | | | NLRI value (variable) | | |||
| +--------------------------------+ | +--------------------------------+ | |||
| Figure 3: Service NLRI | Figure 3: Service NLRI | |||
| The Length field indicates the length of NLRI value in octets. | The Length field indicates the length of NLRI value in octets. | |||
| The NLRI Format is as follows: | The NLRI Format is as follows: | |||
| +--------------------------------+ | +--------------------------------+ | |||
| | AS Number (4 octets) | | | AS Number (4 octets) | | |||
| +--------------------------------+ | +--------------------------------+ | |||
| | Originator ID (16 octets) | | | Originator ID (16 octets) | | |||
| +--------------------------------+ | +--------------------------------+ | |||
| ~ Service ID ~ | | Service Type (8 octets) | | |||
| ~ Variable (up to 235 Octets) ~ | +--------------------------------+ | |||
| +--------------------------------+ | ~ Service ID ~ | |||
| ~ Variable (up to 227 Octets) ~ | ||||
| +--------------------------------+ | ||||
| Figure 4: Service NLRI format | Figure 4: Service NLRI format | |||
| The fields in the Service NLRI are as follows: | The fields in the Service NLRI are as follows: | |||
| AS Number: Four octets encoding the AS Number of an Autonomous | AS Number: Four octets encoding the AS Number of an Autonomous System | |||
| System originating the prefix. The AS Number value will be the | originating the prefix. The AS Number value will be the value | |||
| value assigned by IANA. | assigned by IANA. | |||
| Originator ID: 16 Octets encoding the Originator ID value. | Originator ID: 16 Octets encoding the Originator ID value. | |||
| Service ID: Upto 235 octets encoding the Service ID value. | Service ID: up to 227 octets encoding the Service ID value. | |||
| 3.4. The Service Attribute | 3.4. The Service Attribute | |||
| The Service attribute is a new BGP optional transitive attribute. | The Service attribute is a new BGP optional transitive attribute. | |||
| The attribute type code for the Service attribute is to be assigned | The attribute type code for the Service attribute is to be assigned | |||
| by IANA. The Service attribute carries BGP Service AFI NLRI specific | by IANA. The Service attribute carries BGP Service AFI NLRI specific | |||
| information. The value field of the Service attribute contains | information. The value field of the Service attribute is defined as | |||
| service specific data opaque to BGP. | set of one or more Service Tuples. | |||
| 4. Operation | 4. Operation | |||
| 4.1. Announcing BGP Service Discovery Attribute | 4.1. Announcing BGP Service Discovery Attribute | |||
| The Service Discovery attribute is used to announce/withdraw new | The Service Discovery attribute is used to announce/withdraw new | |||
| Service instances within a network. The Service Discovery attribute | Service instances within a network. The Service Discovery attribute | |||
| is a new optional transitive attribute that can be applied to any | is a new optional transitive attribute that can be applied to any AFI | |||
| AFI/SAFI within BGP; thereby facilitating service instance discovery | /SAFI within BGP; thereby facilitating service instance discovery on | |||
| on an existing network. The attribute is not related to the AFI/SAFI | an existing network. The attribute is not related to the AFI/SAFI to | |||
| to which it is attached, and it does not impact the BGP selection | which it is attached, and it does not impact the BGP selection | |||
| algorithm. The AFI/SAFI is used merely as a distribution mechanism | algorithm. The AFI/SAFI is used merely as a distribution mechanism | |||
| for Service Advertiser information carried in the attribute. | for Service Advertiser information carried in the attribute. | |||
| A BGP Speaker MUST aggregate all the Service attribute Tuple | A BGP Speaker MUST aggregate all the Service attribute Tuple | |||
| information received from all the paths (including the non-bestpaths) | information received from all the paths (including the non-bestpaths) | |||
| for a given NLRI and announce the aggregated Service information | for a given NLRI and announce the aggregated Service information | |||
| along with the bestpath in case where all the BGP paths [ADDPATHS] | along with the bestpath in case where all the BGP paths [ADDPATHS] | |||
| are not being announced. A BGP Speaker MUST announce BGP Service | are not being announced. A BGP Speaker MUST announce BGP Service | |||
| attribute along with its own path whenever all the paths [ADDPATHS] | attribute along with its own path whenever all the paths [ADDPATHS] | |||
| are announced. These rules ensure that Service Discovery attributes | are announced. These rules ensure that Service Discovery attributes | |||
| skipping to change at page 10, line 39 ¶ | skipping to change at page 8, line 53 ¶ | |||
| to have a separate session to transport its opaque data and thereby | to have a separate session to transport its opaque data and thereby | |||
| not affect the performance of existing routing AFI/SAFIs within BGP. | not affect the performance of existing routing AFI/SAFIs within BGP. | |||
| 5. Service Example | 5. Service Example | |||
| It is assumed that service-specific attributes and NLRIs will be | It is assumed that service-specific attributes and NLRIs will be | |||
| defined in their own documents. Each service needs to advertise its | defined in their own documents. Each service needs to advertise its | |||
| reachability, capacities and capabilities. This section provides an | reachability, capacities and capabilities. This section provides an | |||
| example of a service - a simple caching service. | example of a service - a simple caching service. | |||
| It is assumed that the Service ID will be allocated by IANA for the | It is assumed that the Service Type will be allocated by IANA for the | |||
| simple caching service. | simple caching service. | |||
| The simple caching service will only advertise service availability | The simple caching service will only advertise service availability | |||
| during service discovery using the Service Advertisement Attribute | during service discovery using the Service Advertisement Attribute | |||
| (Section 2.1). A simple cache service instance is identified by its | (Section 2.1). A simple cache service instance is identified by its | |||
| IPv4 and IPv6 addresses. The Service ID in the Service NLRI | IPv4 and IPv6 addresses. The Service ID in the Service NLRI (Figure | |||
| (Figure 3) is defined as follows: | 3) is defined as follows: | |||
| 0 1 2 3 | 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 | 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 IPv4 address | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| | Service IPv6 Address | | | Service IPv6 Address | | |||
| | | | | | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 5: Service ID for simple cache service | Figure 5: Service ID for simple cache service | |||
| A simple cache service instance advertises its capacities and | A simple cache service instance advertises its capacities and | |||
| capabilities as TLVs in the service Attribute (Section 3.4). The TLV | capabilities as TLVs in the service Attribute (Section 3.4). The TLV | |||
| data is opaque to the BGP speaker. The TLVs are as follows: | data is opaque to the BGP speaker. The TLVs are as follows: | |||
| Load: Identifies the current load of the cache; the bigger the load, | Load: Identifies the current load of the cache; the bigger the load, | |||
| the less prefered is this instance of the service. Load is an | the less preferred is this instance of the service. Load is an | |||
| interger in the range 0-100. which shows the percentage of the | integer in the range 0-100. which shows the percentage of the | |||
| capacity of the service instance is currently being used by | capacity of the service instance is currently being used by | |||
| clients. | clients. | |||
| Supported media types: This TLVs lists all media types that can be | Supported media types: This TLVs lists all media types that can be | |||
| served from this cache instance. There is a sub-TLV for each | served from this cache instance. There is a sub-TLV for each | |||
| media type. | media type. | |||
| Protocols: This TLVs lists all protocol types that can be used to | Protocols: This TLVs lists all protocol types that can be used to | |||
| serve content from this cache instance. There is a sub-TLV for | serve content from this cache instance. There is a sub-TLV for | |||
| each protocol type. | each protocol type. | |||
| Simple cache service instance advertisements are injected into BGP by | Simple cache service instance advertisements are injected into BGP by | |||
| simple cache instances throguh a gateway or a proxy providing an XMPP | simple cache instances through a gateway or a proxy providing an XMPP | |||
| or RESTful API. Simple cache service instance advertisements are | or RESTful API. Simple cache service instance advertisements are | |||
| received by a service router, which directs client requests to the | received by a service router, which directs client requests to the | |||
| most appropriate instance of the cache. | most appropriate instance of the cache. | |||
| 6. IANA Considerations | 6. Acknowledgements | |||
| The authors would like to thank David Ward and Stefano Previdi for | ||||
| their review and comments. | ||||
| 7. IANA Considerations | ||||
| 8. Security Considerations | ||||
| This extension to BGP does not change the underlying security issues | ||||
| inherent in the existing [RFC4724] and [RFC4271] | ||||
| 9. IANA Considerations | ||||
| This document requests a code point from the registry of Address | This document requests a code point from the registry of Address | |||
| Family Numbers. | Family Numbers. | |||
| This document requests a code point from the BGP Path Attributes | This document requests a code point from the BGP Path Attributes | |||
| registry. | registry. | |||
| This document requests creation of a new registry for service type | This document requests creation of a new registry for service type | |||
| codepoints. Allocations within the registry will require | codepoints. Allocations within the registry will require | |||
| documentation of the proposed use of the allocated value and approval | documentation of the proposed use of the allocated value and approval | |||
| by the Designated Expert assigned by the IESG (see [RFC5226]). | by the Designated Expert assigned by the IESG (see [RFC5226]). | |||
| Note to RFC Editor: this section may be removed on publication as an | Note to RFC Editor: this section may be removed on publication as an | |||
| RFC. | RFC. | |||
| 7. Security Considerations | 10. Contributors | |||
| 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 .... for the review and comments. | ||||
| 9. Contributors | ||||
| The following individuals contributed content and ideas to this | The following individuals contributed content and ideas to this | |||
| document: | document: | |||
| David Ward | 11. References | |||
| 10. References | ||||
| 10.1. Normative References | 11.1. Normative References | |||
| [I-D.ietf-idr-bgp-multisession] | [I-D.ietf-idr-bgp-multisession] | |||
| Scudder, J., Appanna, C., and I. Varlashkin, "Multisession | Scudder, J., Appanna, C., and I. Varlashkin, "Multisession | |||
| BGP", draft-ietf-idr-bgp-multisession-07 (work in | BGP", Internet-Draft draft-ietf-idr-bgp-multisession-07, | |||
| progress), September 2012. | September 2012. | |||
| [RFC1998] Chen, E. and T. Bates, "An Application of the BGP | [RFC1998] Chen, E. and T. Bates, "An Application of the BGP | |||
| Community Attribute in Multi-home Routing", RFC 1998, | Community Attribute in Multi-home Routing", RFC 1998, | |||
| August 1996. | August 1996. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC2918] Chen, E., "Route Refresh Capability for BGP-4", RFC 2918, | [RFC2918] Chen, E., "Route Refresh Capability for BGP-4", RFC 2918, | |||
| September 2000. | September 2000. | |||
| skipping to change at page 13, line 16 ¶ | skipping to change at page 11, line 10 ¶ | |||
| Protocol 4 (BGP-4)", RFC 4271, January 2006. | Protocol 4 (BGP-4)", RFC 4271, January 2006. | |||
| [RFC4360] Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended | [RFC4360] Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended | |||
| Communities Attribute", RFC 4360, February 2006. | Communities Attribute", RFC 4360, February 2006. | |||
| [RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y. | [RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y. | |||
| Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, | Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, | |||
| January 2007. | January 2007. | |||
| [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, | [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, | |||
| "Multiprotocol Extensions for BGP-4", RFC 4760, | "Multiprotocol Extensions for BGP-4", RFC 4760, January | |||
| January 2007. | 2007. | |||
| [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |||
| IANA Considerations Section in RFCs", BCP 26, RFC 5226, | IANA Considerations Section in RFCs", BCP 26, RFC 5226, | |||
| May 2008. | May 2008. | |||
| 10.2. Informative References | 11.2. Informative References | |||
| [RFC4486] Chen, E. and V. Gillet, "Subcodes for BGP Cease | [RFC4486] Chen, E. and V. Gillet, "Subcodes for BGP Cease | |||
| Notification Message", RFC 4486, April 2006. | Notification Message", RFC 4486, April 2006. | |||
| Authors' Addresses | Authors' Addresses | |||
| Keyur Patel | Keyur Patel | |||
| Cisco Systems | Cisco Systems | |||
| 170 W. Tasman Drive | 170 W. Tasman Drive | |||
| San Jose, CA 95134 | San Jose, CA 95134 | |||
| USA | USA | |||
| Email: keyupate@cisco.com | Email: keyupate@cisco.com | |||
| Jan Medved | Jan Medved | |||
| Cisco Systems | Cisco Systems | |||
| 170 W. Tasman Drive | 170 W. Tasman Drive | |||
| San Jose, CA 95134 | San Jose, CA 95134 | |||
| USA | USA | |||
| Email: jmedved@cisco.com | Email: jmedved@cisco.com | |||
| Rex Fernando | Rex Fernando | |||
| Cisco Systems | Cisco Systems | |||
| 170 W. Tasman Drive | 170 W. Tasman Drive | |||
| San Jose, CA 95134 | San Jose, CA 95134 | |||
| USA | USA | |||
| Email: bpithaw@cisco.com | Email: bpithaw@cisco.com | |||
| Burjiz Pithawala | Burjiz Pithawala | |||
| Cisco Systems | Cisco Systems | |||
| 170 W. Tasman Drive | 170 W. Tasman Drive | |||
| San Jose, CA 95134 | San Jose, CA 95134 | |||
| USA | USA | |||
| Email: bpithaw@cisco.com | Email: bpithaw@cisco.com | |||
| End of changes. 60 change blocks. | ||||
| 138 lines changed or deleted | 139 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||