draft-ietf-idr-bgp-prefix-sid-19.txt | draft-ietf-idr-bgp-prefix-sid-20.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: October 9, 2018 Cisco Systems | Expires: November 9, 2018 Cisco Systems | |||
A. Sreekantiah | A. Sreekantiah | |||
H. Gredler | H. Gredler | |||
RtBrick Inc. | RtBrick Inc. | |||
April 7, 2018 | May 8, 2018 | |||
Segment Routing Prefix SID extensions for BGP | Segment Routing Prefix SID extensions for BGP | |||
draft-ietf-idr-bgp-prefix-sid-19 | draft-ietf-idr-bgp-prefix-sid-20 | |||
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. | maintained only on the ingress node of the SR domain. Ah SR domain | |||
is defined as a single administrative domain for global SID | ||||
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", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
skipping to change at page 2, line 7 ¶ | 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 October 9, 2018. | This Internet-Draft will expire on November 9, 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 | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. BGP-Prefix-SID . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. BGP-Prefix-SID . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2.1. MPLS BGP Prefix SID . . . . . . . . . . . . . . . . . . . 4 | 2.1. MPLS BGP Prefix SID . . . . . . . . . . . . . . . . . . . 4 | |||
3. BGP Prefix-SID Attribute . . . . . . . . . . . . . . . . . . 5 | 3. BGP Prefix-SID Attribute . . . . . . . . . . . . . . . . . . 5 | |||
3.1. Label-Index TLV . . . . . . . . . . . . . . . . . . . . . 6 | 3.1. Label-Index TLV . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.2. Originator SRGB TLV . . . . . . . . . . . . . . . . . . . 6 | 3.2. Originator SRGB TLV . . . . . . . . . . . . . . . . . . . 7 | |||
4. Receiving BGP Prefix-SID Attribute . . . . . . . . . . . . . 8 | 4. Receiving BGP Prefix-SID Attribute . . . . . . . . . . . . . 8 | |||
4.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 8 | 4.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 8 | |||
5. Advertising BGP Prefix-SID Attribute . . . . . . . . . . . . 10 | 5. Advertising BGP Prefix-SID Attribute . . . . . . . . . . . . 10 | |||
5.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 10 | 5.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 10 | |||
6. Error Handling of BGP Prefix-SID Attribute . . . . . . . . . 11 | 6. Error Handling of BGP Prefix-SID Attribute . . . . . . . . . 11 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | |||
8. Manageability Considerations . . . . . . . . . . . . . . . . 12 | 8. Manageability Considerations . . . . . . . . . . . . . . . . 12 | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 13 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 14 | |||
12.2. Informative References . . . . . . . . . . . . . . . . . 15 | 12.2. Informative References . . . . . . . . . . . . . . . . . 15 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
1. Introduction | 1. Introduction | |||
The Segment Routing (SR) architecture leverages the source routing | The Segment Routing (SR) architecture leverages the source routing | |||
paradigm. A group of inter-connected nodes that use SR forms an SR | paradigm. A group of inter-connected nodes that use SR forms an SR | |||
domain. A segment represents either a topological instruction such | domain. A segment represents either a topological instruction such | |||
as "go to prefix P following shortest path" or a service instruction. | as "go to prefix P following shortest path" or a service instruction. | |||
Other types of segments may be defined in the future. | Other types of segments may be defined in the future. | |||
A segment is identified through a Segment Identifier (SID). | A segment is identified through a Segment Identifier (SID). An SR | |||
Typically, the ingress node of the SR domain prepends an SR header | domain is defined as a single administrative domain for global SID | |||
containing segments identifiers (SIDs) to an incoming packet. | assignment. It may be comprised of a single AS or multiple ASes | |||
under consolidated global SID administration. Typically, the ingress | ||||
node of the SR domain prepends an SR header containing segments | ||||
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 | ||||
can be applied to an IPv6 dataplane | ||||
[I-D.ietf-6man-segment-routing-header] (SRv6) using a new IPv6 | ||||
routing header containing a stack of SR SIDs encoded as IPv6 | ||||
addresses. The applicability and support for Segment Routing over | ||||
IPv6 is beyond the scope of this 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 11, line 12 ¶ | skipping to change at page 11, line 19 ¶ | |||
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]). | [IANA-MPLS-SPECIAL-LABEL]). | |||
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. This | Prefix-SID attributes and not advertise it to other BGP peers. In | |||
is equivalent to the "Attribute discard" action specified in | this context, a malformed BGP Prefix-SID attribute is one that cannot | |||
be parsed due to not meeting the minimum attribute length | ||||
requirement, contains a TLV length that doesn't conform to the length | ||||
constraints for the TLV, or a contains TLV length that would extend | ||||
beyond the end of the attribute (as defined by the attribute length). | ||||
This is equivalent to the "Attribute discard" action specified in | ||||
[RFC7606]. When discarding an attribute, a BGP speaker SHOULD log an | [RFC7606]. When discarding an attribute, a BGP speaker SHOULD log an | |||
error for further analysis. | error for further analysis. | |||
Consistent with [RFC7606], only the first occurrence of the BGP | Consistent with [RFC7606], only the first occurrence of the BGP | |||
Prefix-SID attribute will be considered and subsequent occurrences | Prefix-SID attribute will be considered and subsequent occurrences | |||
will be discarded. Similarly, only the first occurrence of a BGP | will be discarded. Similarly, only the first occurrence of a BGP | |||
Prefix-SID attribute TLV of a given TLV type will be considered | Prefix-SID attribute TLV of a given TLV type will be considered | |||
unless the specification of that TLV type allows for multiple | unless the specification of that TLV type allows for multiple | |||
occurrences. | occurrences. | |||
skipping to change at page 14, line 17 ¶ | skipping to change at page 14, line 25 ¶ | |||
The authors would like to thank Robert Raszuk for comments and | The authors would like to thank Robert Raszuk for comments and | |||
suggestions regarding the MPLS data plane behavior. | suggestions regarding the MPLS data plane behavior. | |||
The authors would like to thank Krishna Deevi, Juan Alcaide, Howard | The authors would like to thank Krishna Deevi, Juan Alcaide, Howard | |||
Yang, and Jakob Heitz for discussions on conflicting BGP Prefix-SID | Yang, and Jakob Heitz for discussions on conflicting BGP Prefix-SID | |||
label indices and BGP add paths. | label indices and BGP add paths. | |||
The authors would like to thank Peter Yee, Tony Przygienda, Mirja | The authors would like to thank Peter Yee, Tony Przygienda, Mirja | |||
Kuehlewind, Alexey Melnikov, Eric Rescorla, Suresh Krishnan, Warren | Kuehlewind, Alexey Melnikov, Eric Rescorla, Suresh Krishnan, Warren | |||
Kumari, and Ben Campbell for IETF Last Call directorate and IESG | Kumari, Ben Campbell and Sue Hares for IDR Working Group last call, | |||
reviews. | IETF Last Call, directorate, and IESG reviews. | |||
12. References | 12. References | |||
12.1. Normative References | 12.1. Normative References | |||
[I-D.ietf-spring-segment-routing] | [I-D.ietf-spring-segment-routing] | |||
Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., | Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., | |||
Litkowski, S., and R. Shakir, "Segment Routing | Litkowski, S., and R. Shakir, "Segment Routing | |||
Architecture", draft-ietf-spring-segment-routing-15 (work | Architecture", draft-ietf-spring-segment-routing-15 (work | |||
in progress), January 2018. | in progress), January 2018. | |||
skipping to change at page 15, line 34 ¶ | skipping to change at page 15, line 38 ¶ | |||
[RFC8205] Lepinski, M., Ed. and K. Sriram, Ed., "BGPsec Protocol | [RFC8205] Lepinski, M., Ed. and K. Sriram, Ed., "BGPsec Protocol | |||
Specification", RFC 8205, DOI 10.17487/RFC8205, September | Specification", RFC 8205, DOI 10.17487/RFC8205, September | |||
2017, <https://www.rfc-editor.org/info/rfc8205>. | 2017, <https://www.rfc-editor.org/info/rfc8205>. | |||
[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] | ||||
Previdi, S., Filsfils, C., Leddy, J., Matsushima, S., and | ||||
d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header | ||||
(SRH)", draft-ietf-6man-segment-routing-header-12 (work in | ||||
progress), April 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-04 | Routing", draft-ietf-idr-bgp-ls-segment-routing-ext-06 | |||
(work in progress), January 2018. | (work in progress), April 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 | |||
End of changes. 14 change blocks. | ||||
17 lines changed or deleted | 40 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/ |