| < draft-ietf-idr-bgp-prefix-sid-20.txt | draft-ietf-idr-bgp-prefix-sid-21.txt > | |||
|---|---|---|---|---|
| IDR S. Previdi, Ed. | IDR S. Previdi, Ed. | |||
| Internet-Draft C. Filsfils | Internet-Draft C. Filsfils | |||
| Intended status: Standards Track A. Lindem, Ed. | Intended status: Standards Track A. Lindem, Ed. | |||
| Expires: November 9, 2018 Cisco Systems | Expires: November 30, 2018 Cisco Systems | |||
| A. Sreekantiah | A. Sreekantiah | |||
| H. Gredler | H. Gredler | |||
| RtBrick Inc. | RtBrick Inc. | |||
| May 8, 2018 | May 29, 2018 | |||
| Segment Routing Prefix SID extensions for BGP | Segment Routing Prefix SID extensions for BGP | |||
| draft-ietf-idr-bgp-prefix-sid-20 | draft-ietf-idr-bgp-prefix-sid-21 | |||
| Abstract | Abstract | |||
| The Segment Routing (SR) architecture allows a node to steer a packet | The Segment Routing (SR) architecture allows a node to steer a packet | |||
| flow through any topological path and service chain by leveraging | flow through any topological path and service chain by leveraging | |||
| source routing. The ingress node prepends an SR header to a packet | source routing. The ingress node prepends an SR header to a packet | |||
| containing a set of segment identifiers (SID). Each SID represents a | containing a set of segment identifiers (SID). Each SID represents a | |||
| topological or a service-based instruction. Per-flow state is | topological or a service-based instruction. Per-flow state is | |||
| maintained only on the ingress node of the SR domain. Ah SR domain | maintained only on the ingress node of the SR domain. An SR domain | |||
| is defined as a single administrative domain for global SID | is defined as a single administrative domain for global SID | |||
| assignment. | assignment. | |||
| This document defines an optional, transitive BGP attribute for | This document defines an optional, transitive BGP attribute for | |||
| announcing BGP Prefix Segment Identifiers (BGP Prefix-SID) | announcing BGP Prefix Segment Identifiers (BGP Prefix-SID) | |||
| information. | information. | |||
| Requirements Language | Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| skipping to change at page 2, line 10 ¶ | skipping to change at page 2, line 10 ¶ | |||
| 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 November 9, 2018. | This Internet-Draft will expire on November 30, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 25 ¶ | skipping to change at page 3, line 25 ¶ | |||
| assignment. It may be comprised of a single AS or multiple ASes | assignment. It may be comprised of a single AS or multiple ASes | |||
| under consolidated global SID administration. Typically, the ingress | under consolidated global SID administration. Typically, the ingress | |||
| node of the SR domain prepends an SR header containing segments | node of the SR domain prepends an SR header containing segments | |||
| identifiers (SIDs) to an incoming packet. | identifiers (SIDs) to an incoming packet. | |||
| As described in [I-D.ietf-spring-segment-routing], when SR is applied | As described in [I-D.ietf-spring-segment-routing], when SR is applied | |||
| to the MPLS dataplane ([I-D.ietf-spring-segment-routing-mpls]), the | to the MPLS dataplane ([I-D.ietf-spring-segment-routing-mpls]), the | |||
| SID consists of a label. | SID consists of a label. | |||
| [I-D.ietf-spring-segment-routing] also describes how segment routing | [I-D.ietf-spring-segment-routing] also describes how segment routing | |||
| can be applied to an IPv6 dataplane | can be applied to an IPv6 dataplane (SRv6) using an IPv6 routing | |||
| [I-D.ietf-6man-segment-routing-header] (SRv6) using a new IPv6 | header containing a stack of SR SIDs encoded as IPv6 addresses | |||
| routing header containing a stack of SR SIDs encoded as IPv6 | [I-D.ietf-6man-segment-routing-header]. The applicability and | |||
| addresses. The applicability and support for Segment Routing over | support for Segment Routing over IPv6 is beyond the scope of this | |||
| IPv6 is beyond the scope of this document. | document. | |||
| A BGP-Prefix Segment (and its BGP Prefix-SID) is a BGP segment | A BGP-Prefix Segment (and its BGP Prefix-SID) is a BGP segment | |||
| attached to a BGP prefix. A BGP Prefix-SID is always a global SID | attached to a BGP prefix. A BGP Prefix-SID is always a global SID | |||
| ([I-D.ietf-spring-segment-routing]) within the SR/BGP domain (i.e., | ([I-D.ietf-spring-segment-routing]) within the SR/BGP domain (i.e., | |||
| the set of Autonomous Systems under a common administration and | the set of Autonomous Systems under a common administration and | |||
| control and where SR is used) and identifies an instruction to | control and where SR is used) and identifies an instruction to | |||
| forward the packet over the ECMP-aware best-path computed by BGP to | forward the packet over the ECMP-aware best-path computed by BGP to | |||
| the related prefix. The BGP Prefix-SID is the identifier of the BGP | the related prefix. The BGP Prefix-SID is the identifier of the BGP | |||
| prefix segment. In this document, we always refer to the BGP segment | prefix segment. In this document, we always refer to the BGP segment | |||
| by the BGP Prefix-SID. | by the BGP Prefix-SID. | |||
| skipping to change at page 10, line 15 ¶ | skipping to change at page 10, line 15 ¶ | |||
| When a BGP Prefix-SID attribute changes and transitions from | When a BGP Prefix-SID attribute changes and transitions from | |||
| "conflicting" to "acceptable", the BGP Prefix-SID attributes for | "conflicting" to "acceptable", the BGP Prefix-SID attributes for | |||
| other prefixes may also transition to "acceptable" as well. | other prefixes may also transition to "acceptable" as well. | |||
| Implementations SHOULD assure all impacted prefixes revert to using | Implementations SHOULD assure all impacted prefixes revert to using | |||
| the label indices corresponding to these newly "acceptable" BGP | the label indices corresponding to these newly "acceptable" BGP | |||
| Prefix-SID attributes. | Prefix-SID attributes. | |||
| The outgoing label is always programmed as per classic Multiprotocol | The outgoing label is always programmed as per classic Multiprotocol | |||
| BGP labeled IPv4/IPv6 Unicast ([RFC8277]) operation. Specifically, a | BGP labeled IPv4/IPv6 Unicast ([RFC8277]) operation. Specifically, a | |||
| BGP speaker receiving a prefix with a BGP Prefix-SID attribute and a | BGP speaker receiving a prefix with a BGP Prefix-SID attribute and a | |||
| label NLRI field of Implicit NULL [IANA-MPLS-SPECIAL-LABEL] from a | label NLRI field of Implicit NULL [RFC3032] from a neighbor MUST | |||
| neighbor MUST adhere to standard behavior and program its MPLS | adhere to standard behavior and program its MPLS dataplane to pop the | |||
| dataplane to pop the top label when forwarding traffic to the prefix. | top label when forwarding traffic to the prefix. The label NLRI | |||
| The label NLRI defines the outbound label that MUST be used by the | defines the outbound label that MUST be used by the receiving node. | |||
| receiving node. | ||||
| 5. Advertising BGP Prefix-SID Attribute | 5. Advertising BGP Prefix-SID Attribute | |||
| The BGP Prefix-SID attribute MAY be attached to labeled BGP prefixes | The BGP Prefix-SID attribute MAY be attached to labeled BGP prefixes | |||
| (IPv4/IPv6) [RFC8277]. In order to prevent distribution of the BGP | (IPv4/IPv6) [RFC8277]. In order to prevent distribution of the BGP | |||
| Prefix-SID attribute beyond its intended scope of applicability, | Prefix-SID attribute beyond its intended scope of applicability, | |||
| attribute filtering SHOULD be deployed to remove the BGP Prefix-SID | attribute filtering SHOULD be deployed to remove the BGP Prefix-SID | |||
| attribute at the administrative boundary of the segment routing | attribute at the administrative boundary of the segment routing | |||
| domain. | domain. | |||
| skipping to change at page 11, line 12 ¶ | skipping to change at page 11, line 12 ¶ | |||
| Since the label index value must be unique within an SR domain, by | Since the label index value must be unique within an SR domain, by | |||
| default an implementation SHOULD NOT advertise the BGP Prefix-SID | default an implementation SHOULD NOT advertise the BGP Prefix-SID | |||
| attribute outside an Autonomous System unless it is explicitly | attribute outside an Autonomous System unless it is explicitly | |||
| configured to do so. | configured to do so. | |||
| In all cases, the label field of the advertised NLRI ([RFC8277], | In all cases, the label field of the advertised NLRI ([RFC8277], | |||
| [RFC4364]) MUST be set to the local/incoming label programmed in the | [RFC4364]) MUST be set to the local/incoming label programmed in the | |||
| MPLS dataplane for the given advertised prefix. If the prefix is | MPLS dataplane for the given advertised prefix. If the prefix is | |||
| associated with one of the BGP speaker's interfaces, this is the | associated with one of the BGP speaker's interfaces, this is the | |||
| usual MPLS label (such as the Implicit or Explicit NULL label | usual MPLS label (such as the Implicit or Explicit NULL label | |||
| [IANA-MPLS-SPECIAL-LABEL]). | [RFC3032]). | |||
| 6. Error Handling of BGP Prefix-SID Attribute | 6. Error Handling of BGP Prefix-SID Attribute | |||
| When a BGP Speaker receives a BGP Update message containing a | When a BGP Speaker receives a BGP Update message containing a | |||
| malformed or invalid BGP Prefix-SID attribute attached to a Labeled | malformed or invalid BGP Prefix-SID attribute attached to a Labeled | |||
| IPv4/IPv6 unicast prefix [RFC8277], it MUST ignore the received BGP | IPv4/IPv6 unicast prefix [RFC8277], it MUST ignore the received BGP | |||
| Prefix-SID attributes and not advertise it to other BGP peers. In | Prefix-SID attributes and not advertise it to other BGP peers. In | |||
| this context, a malformed BGP Prefix-SID attribute is one that cannot | this context, a malformed BGP Prefix-SID attribute is one that cannot | |||
| be parsed due to not meeting the minimum attribute length | be parsed due to not meeting the minimum attribute length | |||
| requirement, contains a TLV length that doesn't conform to the length | requirement, contains a TLV length that doesn't conform to the length | |||
| skipping to change at page 15, line 41 ¶ | skipping to change at page 15, line 41 ¶ | |||
| [RFC8277] Rosen, E., "Using BGP to Bind MPLS Labels to Address | [RFC8277] Rosen, E., "Using BGP to Bind MPLS Labels to Address | |||
| Prefixes", RFC 8277, DOI 10.17487/RFC8277, October 2017, | Prefixes", RFC 8277, DOI 10.17487/RFC8277, October 2017, | |||
| <https://www.rfc-editor.org/info/rfc8277>. | <https://www.rfc-editor.org/info/rfc8277>. | |||
| 12.2. Informative References | 12.2. Informative References | |||
| [I-D.ietf-6man-segment-routing-header] | [I-D.ietf-6man-segment-routing-header] | |||
| Previdi, S., Filsfils, C., Leddy, J., Matsushima, S., and | Previdi, S., Filsfils, C., Leddy, J., Matsushima, S., and | |||
| d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header | d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header | |||
| (SRH)", draft-ietf-6man-segment-routing-header-12 (work in | (SRH)", draft-ietf-6man-segment-routing-header-13 (work in | |||
| progress), April 2018. | progress), May 2018. | |||
| [I-D.ietf-idr-bgp-ls-segment-routing-ext] | [I-D.ietf-idr-bgp-ls-segment-routing-ext] | |||
| Previdi, S., Talaulikar, K., Filsfils, C., Gredler, H., | Previdi, S., Talaulikar, K., Filsfils, C., Gredler, H., | |||
| and M. Chen, "BGP Link-State extensions for Segment | and M. Chen, "BGP Link-State extensions for Segment | |||
| Routing", draft-ietf-idr-bgp-ls-segment-routing-ext-06 | Routing", draft-ietf-idr-bgp-ls-segment-routing-ext-08 | |||
| (work in progress), April 2018. | (work in progress), May 2018. | |||
| [I-D.ietf-idr-bgpls-segment-routing-epe] | [I-D.ietf-idr-bgpls-segment-routing-epe] | |||
| Previdi, S., Filsfils, C., Patel, K., Ray, S., and J. | Previdi, S., Filsfils, C., Patel, K., Ray, S., and J. | |||
| Dong, "BGP-LS extensions for Segment Routing BGP Egress | Dong, "BGP-LS extensions for Segment Routing BGP Egress | |||
| Peer Engineering", draft-ietf-idr-bgpls-segment-routing- | Peer Engineering", draft-ietf-idr-bgpls-segment-routing- | |||
| epe-15 (work in progress), March 2018. | epe-15 (work in progress), March 2018. | |||
| [I-D.ietf-spring-segment-routing-msdc] | [I-D.ietf-spring-segment-routing-msdc] | |||
| Filsfils, C., Previdi, S., Mitchell, J., Aries, E., and P. | Filsfils, C., Previdi, S., Mitchell, J., Aries, E., and P. | |||
| Lapukhov, "BGP-Prefix Segment in large-scale data | Lapukhov, "BGP-Prefix Segment in large-scale data | |||
| centers", draft-ietf-spring-segment-routing-msdc-08 (work | centers", draft-ietf-spring-segment-routing-msdc-08 (work | |||
| in progress), December 2017. | in progress), December 2017. | |||
| [IANA-MPLS-SPECIAL-LABEL] | [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | |||
| "IANA Special-Purpose Multiprotocol Label Switching (MPLS) | Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | |||
| Label Values Registry", <https://www.iana.org/assignments/ | Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, | |||
| mpls-label-values/>. | <https://www.rfc-editor.org/info/rfc3032>. | |||
| [RFC5004] Chen, E. and S. Sangli, "Avoid BGP Best Path Transitions | [RFC5004] Chen, E. and S. Sangli, "Avoid BGP Best Path Transitions | |||
| from One External to Another", RFC 5004, | from One External to Another", RFC 5004, | |||
| DOI 10.17487/RFC5004, September 2007, <https://www.rfc- | DOI 10.17487/RFC5004, September 2007, <https://www.rfc- | |||
| editor.org/info/rfc5004>. | editor.org/info/rfc5004>. | |||
| [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and | [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and | |||
| S. Ray, "North-Bound Distribution of Link-State and | S. Ray, "North-Bound Distribution of Link-State and | |||
| Traffic Engineering (TE) Information Using BGP", RFC 7752, | Traffic Engineering (TE) Information Using BGP", RFC 7752, | |||
| DOI 10.17487/RFC7752, March 2016, <https://www.rfc- | DOI 10.17487/RFC7752, March 2016, <https://www.rfc- | |||
| End of changes. 11 change blocks. | ||||
| 24 lines changed or deleted | 23 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/ | ||||