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.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |