rfc9086.original | rfc9086.txt | |||
---|---|---|---|---|
Inter-Domain Routing S. Previdi | Internet Engineering Task Force (IETF) S. Previdi | |||
Internet-Draft Individual | Request for Comments: 9086 Huawei Technologies | |||
Intended status: Standards Track K. Talaulikar, Ed. | Category: Standards Track K. Talaulikar, Ed. | |||
Expires: November 17, 2019 C. Filsfils | ISSN: 2070-1721 C. Filsfils | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
K. Patel | K. Patel | |||
Arrcus, Inc. | Arrcus, Inc. | |||
S. Ray | S. Ray | |||
Individual Contributor | Individual | |||
J. Dong | J. Dong | |||
Huawei Technologies | Huawei Technologies | |||
May 16, 2019 | August 2021 | |||
BGP-LS extensions for Segment Routing BGP Egress Peer Engineering | Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment | |||
draft-ietf-idr-bgpls-segment-routing-epe-19 | Routing BGP Egress Peer Engineering | |||
Abstract | Abstract | |||
Segment Routing (SR) leverages source routing. A node steers a | A node steers a packet through a controlled set of instructions, | |||
packet through a controlled set of instructions, called segments, by | called segments, by prepending the packet with a list of segment | |||
prepending the packet with an SR header. A segment can represent any | identifiers (SIDs). A segment can represent any instruction, | |||
instruction, topological or service-based. SR segments allow | topological or service based. SR segments allow steering a flow | |||
steering a flow through any topological path and service chain while | through any topological path and service chain while maintaining per- | |||
maintaining per-flow state only at the ingress node of the SR domain. | flow state only at the ingress node of the SR domain. | |||
This document describes an extension to BGP Link-State (BGP-LS) for | ||||
advertisement of BGP Peering Segments along with their BGP peering | ||||
node information so that efficient BGP Egress Peer Engineering (EPE) | ||||
policies and strategies can be computed based on Segment Routing. | ||||
Requirements Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | This document describes an extension to Border Gateway Protocol - | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | Link State (BGP-LS) for advertisement of BGP Peering Segments along | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | with their BGP peering node information so that efficient BGP Egress | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | Peer Engineering (EPE) policies and strategies can be computed based | |||
capitals, as shown here. | on Segment Routing. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on November 17, 2019. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9086. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2021 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 | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://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 . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
2. BGP Peering Segments . . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements Language | |||
3. BGP-LS NLRI Advertisement for BGP Protocol . . . . . . . . . 5 | 3. BGP Peering Segments | |||
3.1. BGP Router-ID and Member AS Number . . . . . . . . . . . 6 | 4. BGP-LS NLRI Advertisement for BGP Protocol | |||
3.2. Mandatory BGP Node Descriptors . . . . . . . . . . . . . 6 | 4.1. BGP Router-ID and Member AS Number | |||
3.3. Optional BGP Node Descriptors . . . . . . . . . . . . . . 7 | 4.2. Mandatory BGP Node Descriptors | |||
4. BGP-LS Attributes for BGP Peering Segments . . . . . . . . . 7 | 4.3. Optional BGP Node Descriptors | |||
4.1. Advertisement of the PeerNode SID . . . . . . . . . . . . 10 | 5. BGP-LS Attributes for BGP Peering Segments | |||
4.2. Advertisement of the PeerAdj SID . . . . . . . . . . . . 11 | 5.1. Advertisement of the PeerNode SID | |||
4.3. Advertisement of the PeerSet SID . . . . . . . . . . . . 12 | 5.2. Advertisement of the PeerAdj SID | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 5.3. Advertisement of the PeerSet SID | |||
5.1. New BGP-LS Protocol-ID . . . . . . . . . . . . . . . . . 13 | 6. IANA Considerations | |||
5.2. Node Descriptors and Link Attribute TLVs . . . . . . . . 13 | 6.1. New BGP-LS Protocol-ID | |||
6. Manageability Considerations . . . . . . . . . . . . . . . . 14 | 6.2. Node Descriptors and Link Attribute TLVs | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 7. Manageability Considerations | |||
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 15 | 8. Security Considerations | |||
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 | 9. References | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 9.1. Normative References | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 16 | 9.2. Informative References | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 17 | Acknowledgements | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | Contributors | |||
Authors' Addresses | ||||
1. Introduction | 1. Introduction | |||
Segment Routing (SR) leverages source routing. A node steers a | Segment Routing (SR) leverages source routing. A node steers a | |||
packet through a controlled set of instructions, called segments, by | packet through a controlled set of instructions, called segments, by | |||
prepending the packet with an SR header with segment identifiers | prepending the packet with a list of segment identifiers (SIDs). A | |||
(SID). A SID can represent any instruction, topological or service- | SID can represent any instruction, topological or service based. SR | |||
based. SR segments allows to enforce a flow through any topological | segments allows to enforce a flow through any topological path or | |||
path or service function while maintaining per-flow state only at the | service function while maintaining per-flow state only at the ingress | |||
ingress node of the SR domain. | node of the SR domain. | |||
The SR architecture [RFC8402] defines three types of BGP Peering | The SR architecture [RFC8402] defines three types of BGP Peering | |||
Segments that may be instantiated at a BGP node: | Segments that may be instantiated at a BGP node: | |||
o Peer Node Segment (PeerNode SID) : instruction to steer to a | * Peer Node Segment (PeerNode SID) : instruction to steer to a | |||
specific peer node | specific peer node | |||
o Peer Adjacency Segment (PeerAdj SID) : instruction to steer over a | * Peer Adjacency Segment (PeerAdj SID) : instruction to steer over a | |||
specific local interface towards a specific peer node | specific local interface towards a specific peer node | |||
o Peer Set Segment (PeerSet SID) : instruction to load-balance to a | * Peer Set Segment (PeerSet SID) : instruction to load-balance to a | |||
set of specific peer nodes | set of specific peer nodes | |||
SR can be directly applied to either to an MPLS dataplane (SR/MPLS) | SR can be directly applied to either an MPLS data plane (SR-MPLS) | |||
with no change on the forwarding plane or to a modified IPv6 | with no change on the forwarding plane or to a modified IPv6 | |||
forwarding plane (SRv6). | forwarding plane (SRv6). | |||
This document describes extensions to the BGP Link-State NLRI (BGP-LS | This document describes extensions to the BGP - Link State Network | |||
NLRI) and the BGP-LS Attribute defined for BGP-LS [RFC7752] for | Layer Reachability Information (BGP-LS NLRI) and the BGP-LS Attribute | |||
advertising BGP peering segments from a BGP node along with its | defined for BGP-LS [RFC7752] for advertising BGP peering segments | |||
peering topology information (i.e., its peers, interfaces, and | from a BGP node along with its peering topology information (i.e., | |||
peering ASs) to enable computation of efficient BGP Egress Peer | its peers, interfaces, and peering Autonomous Systems (ASes)) to | |||
Engineering (BGP-EPE) policies and strategies using the SR/MPLS | enable computation of efficient BGP Egress Peer Engineering (BGP-EPE) | |||
dataplane. The corresponding extensions for SRv6 are specified in | policies and strategies using the SR-MPLS data plane. The | |||
[I-D.dawra-idr-bgpls-srv6-ext]. | corresponding extensions for SRv6 are specified in [BGPLS-SRV6]. | |||
[I-D.ietf-spring-segment-routing-central-epe] illustrates a | [RFC9087] illustrates a centralized controller-based BGP Egress Peer | |||
centralized controller-based BGP Egress Peer Engineering solution | Engineering solution involving SR path computation using the BGP | |||
involving SR path computation using the BGP Peering Segments. This | Peering Segments. This use case comprises a centralized controller | |||
use case comprises a centralized controller that learns the BGP | that learns the BGP Peering SIDs via BGP-LS and then uses this | |||
Peering SIDs via BGP-LS and then uses this information to program a | information to program a BGP-EPE policy at any node in the domain to | |||
BGP-EPE policy at any node in the domain to perform traffic steering | perform traffic steering via a specific BGP egress node to specific | |||
via a specific BGP egress node to a specific EBGP peer(s) optionally | External BGP (EBGP) peer(s) optionally also over a specific | |||
also over a specific interface. The BGP-EPE policy can be realized | interface. The BGP-EPE policy can be realized using the SR Policy | |||
using the SR Policy framework | framework [SR-POLICY]. | |||
[I-D.ietf-spring-segment-routing-policy]. | ||||
This document introduces a new BGP-LS Protocol-ID for BGP and defines | This document introduces a new BGP-LS Protocol-ID for BGP and defines | |||
new BGP-LS Node and Link Descriptor TLVs to facilitate advertising | new BGP-LS Node and Link Descriptor TLVs to facilitate advertising | |||
BGP-LS Link NLRI to represent the BGP peering topology. Further, it | BGP-LS Link NLRI to represent the BGP peering topology. Further, it | |||
specifies the BGP-LS Attribute TLVs for advertisement of the BGP | specifies the BGP-LS Attribute TLVs for advertisement of the BGP | |||
Peering Segments (i.e., PeerNode SID, PeerAdj SID, and PeerSet SID) | Peering Segments (i.e., PeerNode SID, PeerAdj SID, and PeerSet SID) | |||
to be advertised in the same BGP-LS Link NLRI. | to be advertised in the same BGP-LS Link NLRI. | |||
2. BGP Peering Segments | 2. Requirements Language | |||
As described in [RFC8402], a BGP-EPE enabled Egress PE node | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
instantiates SR Segments corresponding to its attached peers. These | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
segments are called BGP Peering Segments or BGP Peering SIDs. In | "OPTIONAL" in this document are to be interpreted as described in | |||
case of EBGP, they enable the expression of source-routed inter- | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
domain paths. | capitals, as shown here. | |||
3. BGP Peering Segments | ||||
As described in [RFC8402], a BGP-EPE-enabled Egress Provider Edge | ||||
(PE) node instantiates SR Segments corresponding to its attached | ||||
peers. These segments are called BGP Peering Segments or BGP Peering | ||||
SIDs. In the case of EBGP, they enable the expression of source- | ||||
routed interdomain paths. | ||||
An ingress border router of an AS may compose a list of SIDs to steer | An ingress border router of an AS may compose a list of SIDs to steer | |||
a flow along a selected path within the AS, towards a selected egress | a flow along a selected path within the AS, towards a selected egress | |||
border router C of the AS, and to a specific EBGP peer. At minimum, | border router C of the AS, and to a specific EBGP peer. At minimum, | |||
a BGP-EPE policy applied at an ingress PE involves two SIDs: the Node | a BGP-EPE policy applied at an ingress PE involves two SIDs: the Node | |||
SID of the chosen egress PE and then the BGP Peering SID for the | SID of the chosen egress PE and then the BGP Peering SID for the | |||
chosen egress PE peer or peering interface. | chosen egress PE peer or peering interface. | |||
Each BGP session MUST be described by a PeerNode SID. The | Each BGP session MUST be described by a PeerNode SID. The | |||
description of the BGP session MAY be augmented by additional PeerAdj | description of the BGP session MAY be augmented by additional PeerAdj | |||
SIDs. Finally, multiple PeerNode SIDs or PeerAdj SIDs MAY be part of | SIDs. Finally, multiple PeerNode SIDs or PeerAdj SIDs MAY be part of | |||
the same group/set in order to group EPE resources under a common | the same group/set in order to group EPE resources under a common | |||
PeerSet SID. These BGP Peering SIDs and their encoding are described | PeerSet SID. These BGP Peering SIDs and their encoding are described | |||
in detail in Section 4. | in detail in Section 5. | |||
The following BGP Peering SIDs need to be instantiated on a BGP | The following BGP Peering SIDs need to be instantiated on a BGP | |||
router for each of its BGP peer sessions that are enabled for Egress | router for each of its BGP peer sessions that are enabled for Egress | |||
Peer Engineering: | Peer Engineering: | |||
o One PeerNode SID MUST be instantiated to describe the BGP peer | * One PeerNode SID MUST be instantiated to describe the BGP peer | |||
session. | session. | |||
o One or more PeerAdj SID MAY be instantiated corresponding to the | * One or more PeerAdj SID MAY be instantiated corresponding to the | |||
underlying link(s) to the directly connected BGP peer session. | underlying link(s) to the directly connected BGP peer session. | |||
o A PeerSet SID MAY be instantiated and additionally associated and | * A PeerSet SID MAY be instantiated and additionally associated and | |||
shared between one or more PeerNode SIDs or PeerAdj SIDs. | shared between one or more PeerNode SIDs or PeerAdj SIDs. | |||
While an egress point in a topology usually refers to EBGP sessions | While an egress point in a topology usually refers to EBGP sessions | |||
between external peers, there's nothing in the extensions defined in | between external peers, there's nothing in the extensions defined in | |||
this document that would prevent the use of these extensions in the | this document that would prevent the use of these extensions in the | |||
context of IBGP sessions. However, unlike EBGP sessions which are | context of Internal BGP (IBGP) sessions. However, unlike EBGP | |||
generally between directly connected BGP routers which are also along | sessions, which are generally between directly connected BGP routers | |||
the traffic forwarding path, IBGP peer sessions may be setup to BGP | also along the traffic forwarding path, IBGP peer sessions may be set | |||
routers which are not in the forwarding path. As such, when the IBGP | up to BGP routers that are not in the forwarding path. As such, when | |||
design includes sessions with route-reflectors, a BGP router SHOULD | the IBGP design includes sessions with route reflectors, a BGP router | |||
NOT instantiate a BGP Peering SID for those sessions to peer nodes | SHOULD NOT instantiate a BGP Peering SID for those sessions to peer | |||
which are not in the forwarding path since the purpose of BGP Peering | nodes that are not in the forwarding path since the purpose of BGP | |||
SID is to steer traffic to that specific peers. Thus, the | Peering SID is to steer traffic to those specific peers. Thus, the | |||
applicability for IBGP peering may be limited to only those | applicability for IBGP peering may be limited to only those | |||
deployments where the IBGP peer is also along the forwarding data | deployments where the IBGP peer is also along the forwarding data | |||
path. | path. | |||
Any BGP Peering SIDs instantiated on the node are advertised via BGP- | Any BGP Peering SIDs instantiated on the node are advertised via BGP- | |||
LS Link NLRI type as described in the sections below. An | LS Link NLRI type as described in the sections below. An | |||
illustration of the BGP Peering SIDs' allocations in a reference BGP | illustration of the BGP Peering SIDs' allocations in a reference BGP | |||
peering topology along with the information carried in the BGP-LS | peering topology along with the information carried in the BGP-LS | |||
Link NLRI and its corresponding BGP-LS Attribute are described in | Link NLRI and its corresponding BGP-LS Attribute are described in | |||
[I-D.ietf-spring-segment-routing-central-epe]. | [RFC9087]. | |||
3. BGP-LS NLRI Advertisement for BGP Protocol | 4. BGP-LS NLRI Advertisement for BGP Protocol | |||
This section describes the BGP-LS NLRI encodings that describe the | This section describes the BGP-LS NLRI encodings that describe the | |||
BGP peering and link connectivity between BGP routers. | BGP peering and link connectivity between BGP routers. | |||
This document specifies the advertisement of BGP peering topology | This document specifies the advertisement of BGP peering topology | |||
information via BGP-LS Link NLRI type which requires use of a new | information via BGP-LS Link NLRI type, which requires use of a new | |||
BGP-LS Protocol-ID. | BGP-LS Protocol-ID. | |||
+-------------+----------------------------------+ | +=============+==================================+ | |||
| Protocol-ID | NLRI information source protocol | | | Protocol-ID | NLRI Information Source Protocol | | |||
+-------------+----------------------------------+ | +=============+==================================+ | |||
| 7 | BGP | | | 7 | BGP | | |||
+-------------+----------------------------------+ | +-------------+----------------------------------+ | |||
Table 1: BGP-LS Protocol Identifier for BGP | Table 1: BGP-LS Protocol Identifier for BGP | |||
The use of a new Protocol-ID allows separation and differentiation | The use of a new Protocol-ID allows separation and differentiation | |||
between the BGP-LS NLRIs carrying BGP information from the BGP-LS | between the BGP-LS NLRIs carrying BGP information from the BGP-LS | |||
NLRIs carrying IGP link-state information defined in [RFC7752]. | NLRIs carrying IGP link-state information defined in [RFC7752]. | |||
The BGP Peering information along with their Peering Segments are | The BGP Peering information along with their Peering Segments are | |||
advertised using BGP-LS Link NLRI type with the Protocol-ID set to | advertised using BGP-LS Link NLRI type with the Protocol-ID set to | |||
BGP. The BGP-LS Link NLRI type uses the Descriptor TLVs and BGP-LS | BGP. BGP-LS Link NLRI type uses the Descriptor TLVs and BGP-LS | |||
Attribute TLVs as defined in [RFC7752]. In order to correctly | Attribute TLVs as defined in [RFC7752]. In order to correctly | |||
describe BGP nodes, new TLVs are defined in this section. | describe BGP nodes, new TLVs are defined in this section. | |||
[RFC7752] defines Link NLRI Type is as follows: | [RFC7752] defines BGP-LS Link NLRI type 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 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| Protocol-ID | | | Protocol-ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Identifier | | | Identifier | | |||
| (64 bits) | | | (64 bits) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// Local Node Descriptors // | // Local Node Descriptors // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// Remote Node Descriptors // | // Remote Node Descriptors // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// Link Descriptors // | // Link Descriptors // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 1: BGP-LS Link NLRI | Figure 1: BGP-LS Link NLRI | |||
Node Descriptors and Link Descriptors are defined in [RFC7752]. | Node Descriptors and Link Descriptors are defined in [RFC7752]. | |||
3.1. BGP Router-ID and Member AS Number | 4.1. BGP Router-ID and Member AS Number | |||
Two new Node Descriptors TLVs are defined in this document: | Two new Node Descriptor TLVs are defined in this document: | |||
o BGP Router Identifier (BGP Router-ID): | * BGP Router Identifier (BGP Router-ID): | |||
Type: 516 | Type: 516 | |||
Length: 4 octets | Length: 4 octets | |||
Value: 4 octet unsigned non-zero integer representing the BGP | Value: 4-octet unsigned non-zero integer representing the BGP | |||
Identifier as defined in [RFC6286]. | Identifier as defined in [RFC6286] | |||
o Member-AS Number (Member-ASN) | * Member-AS Number (Member-ASN) | |||
Type: 517 | Type: 517 | |||
Length: 4 octets | Length: 4 octets | |||
Value: 4 octet unsigned non-zero integer representing the | Value: 4-octet unsigned non-zero integer representing the | |||
Member-AS Number [RFC5065]. | Member-AS Number [RFC5065] | |||
3.2. Mandatory BGP Node Descriptors | 4.2. Mandatory BGP Node Descriptors | |||
The following Node Descriptors TLVs MUST be included in BGP-LS NLRI | The following Node Descriptor TLVs MUST be included in BGP-LS NLRI as | |||
as Local Node Descriptors when distributing BGP information: | Local Node Descriptors when distributing BGP information: | |||
o BGP Router-ID (TLV 516), which contains a valid BGP Identifier of | * BGP Router-ID (TLV 516), which contains a valid BGP Identifier of | |||
the local BGP node. | the local BGP node. | |||
o Autonomous System Number (TLV 512) [RFC7752], which contains the | * Autonomous System Number (TLV 512) [RFC7752], which contains the | |||
ASN or AS Confederation Identifier (ASN) [RFC5065], if | Autonomous System Number (ASN) or AS Confederation Identifier (an | |||
confederations are used, of the local BGP node. | ASN) [RFC5065], if confederations are used, of the local BGP node. | |||
Note that [RFC6286] (section 2.1) requires the BGP identifier | Note that Section 2.1 of [RFC6286] requires the BGP identifier | |||
(Router-ID) to be unique within an Autonomous System and non-zero. | (Router-ID) to be unique within an Autonomous System and non-zero. | |||
Therefore, the <ASN, BGP Router-ID> tuple is globally unique. Their | Therefore, the <ASN, BGP Router-ID> tuple is globally unique. Their | |||
use in the Node Descriptor helps map Link-State NLRIs with BGP | use in the Node Descriptor helps map Link-State NLRIs with BGP | |||
protocol-ID to a unique BGP router in the administrative domain where | protocol-ID to a unique BGP router in the administrative domain where | |||
BGP-LS is enabled. | BGP-LS is enabled. | |||
The following Node Descriptors TLVs MUST be included in BGP-LS Link | The following Node Descriptor TLVs MUST be included in BGP-LS Link | |||
NLRI as Remote Node Descriptors when distributing BGP information: | NLRI as Remote Node Descriptors when distributing BGP information: | |||
o BGP Router-ID (TLV 516), which contains the valid BGP Identifier | * BGP Router-ID (TLV 516), which contains the valid BGP Identifier | |||
of the peer BGP node. | of the peer BGP node. | |||
o Autonomous System Number (TLV 512) [RFC7752], which contains the | * Autonomous System Number (TLV 512) [RFC7752], which contains the | |||
ASN or the AS Confederation Identifier (ASN) [RFC5065], if | ASN or the AS Confederation Identifier (an ASN) [RFC5065], if | |||
confederations are used, of the peer BGP node. | confederations are used, of the peer BGP node. | |||
3.3. Optional BGP Node Descriptors | 4.3. Optional BGP Node Descriptors | |||
The following Node Descriptors TLVs MAY be included in BGP-LS NLRI as | The following Node Descriptor TLVs MAY be included in BGP-LS NLRI as | |||
Local Node Descriptors when distributing BGP information: | Local Node Descriptors when distributing BGP information: | |||
o Member-ASN (TLV 517), which contains the ASN of the confederation | * Member-ASN (TLV 517), which contains the ASN of the confederation | |||
member (i.e., Member-AS Number), if BGP confederations are used, | member (i.e., Member-AS Number), if BGP confederations are used, | |||
of the local BGP node. | of the local BGP node. | |||
o Node Descriptors as defined in [RFC7752]. | * Node Descriptors as defined in [RFC7752]. | |||
The following Node Descriptors TLVs MAY be included in BGP-LS Link | The following Node Descriptor TLVs MAY be included in BGP-LS Link | |||
NLRI as Remote Node Descriptors when distributing BGP information: | NLRI as Remote Node Descriptors when distributing BGP information: | |||
o Member-ASN (TLV 517), which contains the ASN of the confederation | * Member-ASN (TLV 517), which contains the ASN of the confederation | |||
member (i.e., Member-AS Number), if BGP confederations are used, | member (i.e., Member-AS Number), if BGP confederations are used, | |||
of the peer BGP node. | of the peer BGP node. | |||
o Node Descriptors as defined in [RFC7752]. | * Node Descriptors as defined in [RFC7752]. | |||
4. BGP-LS Attributes for BGP Peering Segments | 5. BGP-LS Attributes for BGP Peering Segments | |||
This section defines the BGP-LS Attributes corresponding to the | This section defines the BGP-LS Attributes corresponding to the | |||
following BGP Peer Segment SIDs: | following BGP Peer Segment SIDs: | |||
Peer Node Segment Identifier (PeerNode SID) | * Peer Node Segment Identifier (PeerNode SID) | |||
Peer Adjacency Segment Identifier (PeerAdj SID) | ||||
Peer Set Segment Identifier (PeerSet SID) | * Peer Adjacency Segment Identifier (PeerAdj SID) | |||
The following new BGP-LS Link attributes TLVs are defined for use | * Peer Set Segment Identifier (PeerSet SID) | |||
with BGP-LS Link NLRI for advertising BGP Peering SIDs: | ||||
+----------+---------------------------+ | The following new BGP-LS Link Attribute TLVs are defined for use with | |||
| TLV Code | Description | | BGP-LS Link NLRI for advertising BGP Peering SIDs: | |||
| Point | | | ||||
+----------+---------------------------+ | ||||
| 1101 | PeerNode SID | | ||||
| 1102 | PeerAdj SID | | ||||
| 1103 | PeerSet SID | | ||||
+----------+---------------------------+ | ||||
Figure 2: BGP-LS TLV code points for BGP-EPE | +================+==============+ | |||
| TLV Code Point | Description | | ||||
+================+==============+ | ||||
| 1101 | PeerNode SID | | ||||
+----------------+--------------+ | ||||
| 1102 | PeerAdj SID | | ||||
+----------------+--------------+ | ||||
| 1103 | PeerSet SID | | ||||
+----------------+--------------+ | ||||
PeerNode SID, PeerAdj SID, and PeerSet SID have all the same format | Table 2: BGP-LS TLV Code | |||
defined here below: | Points for BGP-EPE | |||
PeerNode SID, PeerAdj SID, and PeerSet SID all have the same format | ||||
as defined below: | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Weight | Reserved | | | Flags | Weight | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label/Index (variable) | | | SID/Label/Index (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 3: BGP Peering SIDs TLV Format | Figure 2: BGP Peering SIDs TLV Format | |||
o Type: 1101, 1102 or 1103 as listed in Figure 2. | * Type: 1101, 1102, or 1103 as listed in Table 2 | |||
o Length: variable. Valid values are either 7 or 8 based on the | * Length: variable. Valid values are either 7 or 8 based on whether | |||
whether the encoding is done as a SID Index or a label. | the encoding is done as a SID Index or a label. | |||
o Flags: one octet of flags with the following definition: | * Flags: one octet of flags with the following definition: | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
|V|L|B|P| Rsvd | | |V|L|B|P| Rsvd | | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
Figure 4: Peering SID TLV Flags Format | Figure 3: Peering SID TLV Flags Format | |||
* V-Flag: Value flag. If set, then the SID carries a label | - V-Flag: Value Flag. If set, then the SID carries a label | |||
value. By default the flag is SET. | value. By default, the flag is SET. | |||
* L-Flag: Local Flag. If set, then the value/index carried by | - L-Flag: Local Flag. If set, then the value/index carried by | |||
the SID has local significance. By default the flag is SET. | the SID has local significance. By default, the flag is SET. | |||
* B-Flag: Backup Flag. If set, the SID refers to a path that is | - B-Flag: Backup Flag. If set, the SID refers to a path that is | |||
eligible for protection using fast re-route (FRR). The | eligible for protection using fast reroute (FRR). The | |||
computation of the backup forwarding path and its association | computation of the backup forwarding path and its association | |||
with the BGP Peering SID forwarding entry is implementation | with the BGP Peering SID forwarding entry is implementation | |||
specific. [I-D.ietf-spring-segment-routing-central-epe] | specific. Section 3.6 of [RFC9087] discusses some of the | |||
section 3.6 discusses some of the possible ways of identifying | possible ways of identifying backup paths for BGP Peering SIDs. | |||
backup paths for BGP Peering SIDs. | ||||
* P-Flag: Persistent Flag: If set, the SID is persistently | - P-Flag: Persistent Flag: If set, the SID is persistently | |||
allocated, i.e., the SID value remains consistent across router | allocated, i.e., the SID value remains consistent across router | |||
restart and session/interface flap. | restart and session/interface flap. | |||
* Rsvd bits: Reserved for future use and MUST be zero when | - Rsvd bits: Reserved for future use and MUST be zero when | |||
originated and ignored when received. | originated and ignored when received. | |||
o Weight: 1 octet. The value represents the weight of the SID for | * Weight: 1 octet. The value represents the weight of the SID for | |||
the purpose of load balancing. An example use of the weight is | the purpose of load balancing. An example use of the weight is | |||
described in [RFC8402]. | described in [RFC8402]. | |||
o SID/Index/Label. According to the TLV length and to the V and L | * SID/Index/Label. According to the TLV length and the V- and | |||
flags settings, it contains either: | L-Flag settings, it contains either: | |||
* A 3 octet local label where the 20 rightmost bits are used for | - A 3-octet local label where the 20 rightmost bits are used for | |||
encoding the label value. In this case, the V and L flags MUST | encoding the label value. In this case, the V- and L-Flags | |||
be SET. | MUST be SET. | |||
* A 4 octet index defining the offset in the Segment Routing | - A 4-octet index defining the offset in the Segment Routing | |||
Global Block (SRGB) [RFC8402] advertised by this router. In | Global Block (SRGB) [RFC8402] advertised by this router. In | |||
this case, the SRGB MUST be advertised using the extensions | this case, the SRGB MUST be advertised using the extensions | |||
defined in [I-D.ietf-idr-bgp-ls-segment-routing-ext]. | defined in [RFC9085]. | |||
The values of the PeerNode SID, PeerAdj SID, and PeerSet SID Sub-TLVs | The values of the PeerNode SID, PeerAdj SID, and PeerSet SID Sub-TLVs | |||
SHOULD be persistent across router restart. | SHOULD be persistent across router restart. | |||
When enabled for Egress Peer Engineering, the BGP router MUST include | When enabled for Egress Peer Engineering, the BGP router MUST include | |||
the PeerNode SID TLV in the BGP-LS Attribute for the BGP-LS Link NLRI | the PeerNode SID TLV in the BGP-LS Attribute for the BGP-LS Link NLRI | |||
corresponding to its BGP peering sessions. The PeerAdj SID and | corresponding to its BGP peering sessions. The PeerAdj SID and | |||
PeerSet SID TLVs MAY be included in the BGP-LS Attribute for the BGP- | PeerSet SID TLVs MAY be included in the BGP-LS Attribute for the BGP- | |||
LS Link NLRI. | LS Link NLRI. | |||
Additional BGP-LS Link Attribute TLVs, as defined in [RFC7752] MAY be | Additional BGP-LS Link Attribute TLVs as defined in [RFC7752] MAY be | |||
included with the BGP-LS Link NLRI in order to advertise the | included with the BGP-LS Link NLRI in order to advertise the | |||
characteristics of the peering link. E.g., one or more interface | characteristics of the peering link, e.g., one or more interface | |||
addresses (TLV 259 or TLV 261) of the underlying link(s) over which a | addresses (TLV 259 or TLV 261) of the underlying link(s) over which a | |||
multi-hop BGP peering session is setup may be included in the BGP-LS | multi-hop BGP peering session is set up may be included in the BGP-LS | |||
Attribute along with the PeerNode SID TLV. | Attribute along with the PeerNode SID TLV. | |||
4.1. Advertisement of the PeerNode SID | 5.1. Advertisement of the PeerNode SID | |||
The PeerNode SID TLV includes a SID associated with the BGP peer node | The PeerNode SID TLV includes a SID associated with the BGP peer node | |||
that is described by a BGP-LS Link NLRI as specified in Section 3. | that is described by a BGP-LS Link NLRI as specified in Section 4. | |||
The PeerNode SID, at the BGP node advertising it, has the following | The PeerNode SID, at the BGP node advertising it, has the following | |||
semantics (as defined in [RFC8402]): | semantics (as defined in [RFC8402]): | |||
o SR operation: NEXT. | * SR operation: NEXT | |||
o Next-Hop: the connected peering node to which the segment is | * Next-Hop: the connected peering node to which the segment is | |||
associated. | associated | |||
The PeerNode SID is advertised with a BGP-LS Link NLRI, where: | The PeerNode SID is advertised with a BGP-LS Link NLRI, where: | |||
o Local Node Descriptors include: | * Local Node Descriptors include: | |||
* Local BGP Router-ID (TLV 516) of the BGP-EPE enabled egress PE. | - Local BGP Router-ID (TLV 516) of the BGP-EPE-enabled Egress PE | |||
* Local ASN (TLV 512). | - Local ASN (TLV 512) | |||
o Remote Node Descriptors include: | * Remote Node Descriptors include: | |||
* Peer BGP Router-ID (TLV 516) (i.e., the peer BGP ID used in the | - Peer BGP Router-ID (TLV 516) (i.e., the peer BGP ID used in the | |||
BGP session) | BGP session) | |||
* Peer ASN (TLV 512). | - Peer ASN (TLV 512) | |||
o Link Descriptors include the addresses used by the BGP session | * Link Descriptors include the addresses used by the BGP session | |||
encoded using TLVs as defined in [RFC7752]: | encoded using TLVs as defined in [RFC7752]: | |||
* IPv4 Interface Address (TLV 259) contains the BGP session IPv4 | - IPv4 Interface Address (TLV 259) contains the BGP session IPv4 | |||
local address. | local address. | |||
* IPv4 Neighbor Address (TLV 260) contains the BGP session IPv4 | - IPv4 Neighbor Address (TLV 260) contains the BGP session IPv4 | |||
peer address. | peer address. | |||
* IPv6 Interface Address (TLV 261) contains the BGP session IPv6 | - IPv6 Interface Address (TLV 261) contains the BGP session IPv6 | |||
local address. | local address. | |||
* IPv6 Neighbor Address (TLV 262) contains the BGP session IPv6 | - IPv6 Neighbor Address (TLV 262) contains the BGP session IPv6 | |||
peer address. | peer address. | |||
o Link Attribute TLVs include the PeerNode SID TLV as defined in | * Link Attribute TLVs include the PeerNode SID TLV as defined in | |||
Figure 3. | Figure 2. | |||
4.2. Advertisement of the PeerAdj SID | 5.2. Advertisement of the PeerAdj SID | |||
The PeerAdj SID TLV includes a SID associated with the underlying | The PeerAdj SID TLV includes a SID associated with the underlying | |||
link to the BGP peer node that is described by a BGP-LS Link NLRI as | link to the BGP peer node that is described by a BGP-LS Link NLRI as | |||
specified in Section 3. | specified in Section 4. | |||
The PeerAdj SID, at the BGP node advertising it, has the following | The PeerAdj SID, at the BGP node advertising it, has the following | |||
semantics (as defined in [RFC8402]): | semantics (as defined in [RFC8402]): | |||
o SR operation: NEXT. | * SR operation: NEXT | |||
o Next-Hop: the interface peer address. | * Next-Hop: the interface peer address | |||
The PeerAdj SID is advertised with a BGP-LS Link NLRI, where: | The PeerAdj SID is advertised with a BGP-LS Link NLRI, where: | |||
o Local Node Descriptors include: | * Local Node Descriptors include: | |||
* Local BGP Router-ID (TLV 516) of the BGP-EPE enabled egress PE. | - Local BGP Router-ID (TLV 516) of the BGP-EPE-enabled Egress PE | |||
* Local ASN (TLV 512). | - Local ASN (TLV 512) | |||
o Remote Node Descriptors include: | * Remote Node Descriptors include: | |||
* Peer BGP Router-ID (TLV 516) (i.e., the peer BGP ID used in the | - Peer BGP Router-ID (TLV 516) (i.e., the peer BGP ID used in the | |||
BGP session). | BGP session) | |||
* Peer ASN (TLV 512). | - Peer ASN (TLV 512) | |||
o Link Descriptors MUST include the following TLV, as defined in | * Link Descriptors MUST include the following TLV, as defined in | |||
[RFC7752]: | [RFC7752]: | |||
* Link Local/Remote Identifiers (TLV 258) contains the 4-octet | - Link Local/Remote Identifiers (TLV 258) contains the 4-octet | |||
Link Local Identifier followed by the 4-octet Link Remote | Link Local Identifier followed by the 4-octet Link Remote | |||
Identifier. The value 0 is used by default when the link | Identifier. The value 0 is used by default when the link | |||
remote identifier is unknown. | remote identifier is unknown. | |||
o Additional Link Descriptors TLVs, as defined in [RFC7752], MAY | * Additional Link Descriptors TLVs, as defined in [RFC7752], MAY | |||
also be included to describe the addresses corresponding to the | also be included to describe the addresses corresponding to the | |||
link between the BGP routers: | link between the BGP routers: | |||
* IPv4 Interface Address (Sub-TLV 259) contains the address of | - IPv4 Interface Address (Sub-TLV 259) contains the address of | |||
the local interface through which the BGP session is | the local interface through which the BGP session is | |||
established. | established. | |||
* IPv6 Interface Address (Sub-TLV 261) contains the address of | - IPv6 Interface Address (Sub-TLV 261) contains the address of | |||
the local interface through which the BGP session is | the local interface through which the BGP session is | |||
established. | established. | |||
* IPv4 Neighbor Address (Sub-TLV 260) contains the IPv4 address | - IPv4 Neighbor Address (Sub-TLV 260) contains the IPv4 address | |||
of the peer interface used by the BGP session. | of the peer interface used by the BGP session. | |||
* IPv6 Neighbor Address (Sub-TLV 262) contains the IPv6 address | - IPv6 Neighbor Address (Sub-TLV 262) contains the IPv6 address | |||
of the peer interface used by the BGP session. | of the peer interface used by the BGP session. | |||
o Link Attribute TLVs include the PeerAdj SID TLV as defined in | * Link Attribute TLVs include the PeerAdj SID TLV as defined in | |||
Figure 3. | Figure 2. | |||
4.3. Advertisement of the PeerSet SID | 5.3. Advertisement of the PeerSet SID | |||
The PeerSet SID TLV includes a SID that is shared amongst BGP peer | The PeerSet SID TLV includes a SID that is shared amongst BGP peer | |||
nodes or the underlying links that are described by BGP-LS Link NLRI | nodes or the underlying links that are described by BGP-LS Link NLRI | |||
as specified in Section 3. | as specified in Section 4. | |||
The PeerSet SID, at the BGP node advertising it, has the following | The PeerSet SID, at the BGP node advertising it, has the following | |||
semantics (as defined in [RFC8402]): | semantics (as defined in [RFC8402]): | |||
o SR operation: NEXT. | * SR operation: NEXT | |||
o Next-Hop: load balance across any connected interface to any peer | * Next-Hop: load-balance across any connected interface to any peer | |||
in the associated peer set. | in the associated peer set | |||
The PeerSet SID TLV containing the same SID value (encoded as defined | The PeerSet SID TLV containing the same SID value (encoded as defined | |||
in Figure 3) is included in the BGP-LS Attribute for all of the BGP- | in Figure 2) is included in the BGP-LS Attribute for all of the BGP- | |||
LS Link NLRI corresponding to the PeerNode or PeerAdj segments | LS Link NLRI corresponding to the PeerNode or PeerAdj segments | |||
associated with the peer set. | associated with the peer set. | |||
5. IANA Considerations | 6. IANA Considerations | |||
This document defines: | This document defines: | |||
A new Protocol-ID: BGP. The codepoint is from the "BGP-LS | * A new Protocol-ID: BGP. The code point is from the "BGP-LS | |||
Protocol-IDs" registry. | Protocol-IDs" registry. | |||
Two new TLVs: BGP-Router-ID and BGP Confederation Member. The | * Two new TLVs: BGP-Router-ID and BGP Confederation Member. The | |||
codepoints are in the "BGP-LS Node Descriptor, Link Descriptor, | code points are in the "BGP-LS Node Descriptor, Link Descriptor, | |||
Prefix Descriptor, and Attribute TLVs" registry. | Prefix Descriptor, and Attribute TLVs" registry. | |||
Three new BGP-LS Attribute TLVs: PeerNode SID, PeerAdj SID and | * Three new BGP-LS Attribute TLVs: PeerNode SID, PeerAdj SID, and | |||
PeerSet SID. The codepoints are in the "BGP-LS Node Descriptor, | PeerSet SID. The code points are in the "BGP-LS Node Descriptor, | |||
Link Descriptor, Prefix Descriptor, and Attribute TLVs" registry. | Link Descriptor, Prefix Descriptor, and Attribute TLVs" registry. | |||
5.1. New BGP-LS Protocol-ID | 6.1. New BGP-LS Protocol-ID | |||
This document defines a new value in the registry "BGP-LS Protocol- | This document defines a new value in the registry "BGP-LS Protocol- | |||
IDs": | IDs": | |||
+------------------------------------------------------+ | +=============+==================================+===========+ | |||
| Codepoint | Description | Status | | | Protocol-ID | NLRI information source protocol | Reference | | |||
+------------------------------------------------------+ | +=============+==================================+===========+ | |||
| 7 | BGP | Early Allocation by IANA | | | 7 | BGP | RFC 9086 | | |||
+------------------------------------------------------+ | +-------------+----------------------------------+-----------+ | |||
Figure 5: BGP Protocol Codepoint | Table 3: BGP-LS Protocol-ID | |||
5.2. Node Descriptors and Link Attribute TLVs | 6.2. Node Descriptors and Link Attribute TLVs | |||
This document defines 5 new TLVs in the registry "BGP-LS Node | This document defines five new TLVs in the registry "BGP-LS Node | |||
Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs": | Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs": | |||
o Two new node descriptor TLVs | * Two new Node Descriptor TLVs | |||
o Three new link attribute TLVs | * Three new Link Attribute TLVs | |||
All the new 5 codepoints are in the same registry: "BGP-LS Node | All five of the new code points are in the same registry: "BGP-LS | |||
Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs". | Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute | |||
TLVs". | ||||
The following new Node Descriptors TLVs are defined: | The following new Node Descriptor TLVs are defined: | |||
+-------------------------------------------------------------------+ | +================+==========================+===========+ | |||
| Codepoint | Description | Status | | | TLV Code Point | Description | Reference | | |||
+-------------------------------------------------------------------+ | +================+==========================+===========+ | |||
| 516 | BGP Router-ID | Early Allocation by IANA | | | 516 | BGP Router-ID | RFC 9086 | | |||
| 517 | BGP Confederation Member | Early Allocation by IANA | | +----------------+--------------------------+-----------+ | |||
+------------+------------------------------------------------------+ | | 517 | BGP Confederation Member | RFC 9086 | | |||
+----------------+--------------------------+-----------+ | ||||
Figure 6: BGP-LS Descriptor TLVs Codepoints | Table 4: BGP-LS Descriptor TLV Code Points | |||
The following new Link Attribute TLVs are defined: | The following new Link Attribute TLVs are defined: | |||
+-------------------------------------------------------------------+ | +================+==============+===========+ | |||
| Codepoint | Description | Status | | | TLV Code Point | Description | Reference | | |||
+-------------------------------------------------------------------+ | +================+==============+===========+ | |||
| 1101 | PeerNode SID | Early Allocation by IANA | | | 1101 | PeerNode SID | RFC 9086 | | |||
| 1102 | PeerAdj SID | Early Allocation by IANA | | +----------------+--------------+-----------+ | |||
| 1103 | PeerSet SID | Early Allocation by IANA | | | 1102 | PeerAdj SID | RFC 9086 | | |||
+------------+------------------------------------------------------+ | +----------------+--------------+-----------+ | |||
| 1103 | PeerSet SID | RFC 9086 | | ||||
+----------------+--------------+-----------+ | ||||
Figure 7: BGP-LS Attribute TLVs Codepoints | Table 5: BGP-LS Attribute TLV Code Points | |||
6. Manageability Considerations | 7. Manageability Considerations | |||
The new protocol extensions introduced in this document augment the | The new protocol extensions introduced in this document augment the | |||
existing IGP topology information BGP-LS distribution [RFC7752] by | existing IGP topology information BGP-LS distribution [RFC7752] by | |||
adding support for distribution of BGP peering topology information. | adding support for distribution of BGP peering topology information. | |||
As such, the Manageability Considerations section of [RFC7752] | As such, Section 6 of [RFC7752] (Manageability Considerations) | |||
applies to these new extensions as well. | applies to these new extensions as well. | |||
Specifically, the malformed Link-State NLRI and BGP-LS Attribute | Specifically, the malformed Link-State NLRI and BGP-LS Attribute | |||
tests for syntactic checks in the Fault Management section of | tests for syntactic checks in Section 6.2.2 of [RFC7752] (Fault | |||
[RFC7752] now apply to the TLVs defined in this document. The | Management) now apply to the TLVs defined in this document. The | |||
semantic or content checking for the TLVs specified in this document | semantic or content checking for the TLVs specified in this document | |||
and their association with the BGP-LS NLRI types or their associated | and their association with the BGP-LS NLRI types or their associated | |||
BGP-LS Attributes is left to the consumer of the BGP-LS information | BGP-LS Attributes is left to the consumer of the BGP-LS information | |||
(e.g., an application or a controller) and not the BGP protocol. | (e.g., an application or a controller) and not the BGP protocol. | |||
A consumer of the BGP-LS information retrieves this information from | A consumer of the BGP-LS information retrieves this information from | |||
a BGP Speaker, over a BGP-LS session (refer Section 1 and 2 of | a BGP Speaker, over a BGP-LS session (refer to Sections 1 and 2 of | |||
[RFC7752]). The handling of semantic or content errors by the | [RFC7752]). The handling of semantic or content errors by the | |||
consumer would be dictated by the nature of its application usage and | consumer would be dictated by the nature of its application usage and | |||
hence is beyond the scope of this document. It may be expected that | is hence beyond the scope of this document. It may be expected that | |||
an error detected in the NLRI descriptor TLVs would result in that | an error detected in the NLRI Descriptor TLVs would result in that | |||
specific NLRI update being unusable and hence its update to be | specific NLRI update being unusable and hence its update to be | |||
discarded along with an error log. While an error in Attribute TLVs | discarded along with an error log, whereas an error in Attribute TLVs | |||
would result in only that specific attribute being discarded with an | would result in only that specific attribute being discarded with an | |||
error log. | error log. | |||
The operator MUST be provided with the options of configuring, | The operator MUST be provided with the options of configuring, | |||
enabling, and disabling the advertisement of each of the PeerNode | enabling, and disabling the advertisement of each of the PeerNode | |||
SID, PeerAdj SID, and PeerSet SID as well as control of which | SID, PeerAdj SID, and PeerSet SID as well as control of which | |||
information is advertised to which internal or external peer. This | information is advertised to which internal or external peer. This | |||
is not different from what is required by a BGP speaker in terms of | is not different from what is required by a BGP speaker in terms of | |||
information origination and advertisement. | information origination and advertisement. | |||
BGP Peering Segments are associated with the normal BGP routing | BGP Peering Segments are associated with the normal BGP routing | |||
peering sessions. However, the BGP peering information along with | peering sessions. However, the BGP peering information along with | |||
these Peering Segments themselves are advertised via a distinct BGP- | these Peering Segments themselves are advertised via a distinct BGP- | |||
LS peering session. It is expected that this isolation as described | LS peering session. It is expected that this isolation as described | |||
in [RFC7752] is followed when advertising BGP peering topology | in [RFC7752] is followed when advertising BGP peering topology | |||
information via BGP-LS. | information via BGP-LS. | |||
BGP-EPE functionality enables the capability for instantiation of an | BGP-EPE functionality enables the capability for instantiation of an | |||
SR path for traffic engineering a flow via an egress BGP router to a | SR path for traffic engineering a flow via an egress BGP router to a | |||
specific peer, bypassing the normal BGP best path routing for that | specific peer, bypassing the normal BGP best-path routing for that | |||
flow and any routing policies implemented in BGP on that egress BGP | flow and any routing policies implemented in BGP on that egress BGP | |||
router. As with any traffic engineering solution, the controller or | router. As with any traffic-engineering solution, the controller or | |||
application implementing the policy needs to ensure that there is no | application implementing the policy needs to ensure that there is no | |||
looping or mis-routing of traffic. Traffic counters corresponding to | looping or misrouting of traffic. Traffic counters corresponding to | |||
the MPLS label of the BGP Peering SID on the router would indicate | the MPLS label of the BGP Peering SID on the router would indicate | |||
the traffic being forwarded based on the specific EPE path. | the traffic being forwarded based on the specific EPE path. | |||
Monitoring these counters and the flows hitting the corresponding | Monitoring these counters and the flows hitting the corresponding | |||
MPLS forwarding entry would help identify issues, if any, with | MPLS forwarding entry would help identify issues, if any, with | |||
traffic engineering over the EPE paths. Errors in the encoding or | traffic engineering over the EPE paths. Errors in the encoding or | |||
decoding of the SR information in the TLVs defined in this document | decoding of the SR information in the TLVs defined in this document | |||
may result in the unavailability of such information to a Centralized | may result in the unavailability of such information to a Centralized | |||
EPE Controller or incorrect information being made available to it. | EPE Controller or incorrect information being made available to it. | |||
This may result in the controller not being able to perform the | This may result in the controller not being able to perform the | |||
desired SR based optimization functionality or to perform it in an | desired SR-based optimization functionality or performing it in an | |||
unexpected or inconsistent manner. The handling of such errors by | unexpected or inconsistent manner. The handling of such errors by | |||
applications like such a controller may be implementation specific | applications like such a controller may be implementation specific | |||
and out of scope of this document. | and out of scope of this document. | |||
7. Security Considerations | 8. Security Considerations | |||
[RFC7752] defines BGP-LS NLRI to which the extensions defined in this | [RFC7752] defines BGP-LS NLRI to which the extensions defined in this | |||
document apply. The Security Considerations section of [RFC7752] | document apply. Section 8 of [RFC7752] also applies to these | |||
also applies to these extensions. The procedures and new TLVs | extensions. The procedures and new TLVs defined in this document, by | |||
defined in this document, by themselves, do not affect the BGP-LS | themselves, do not affect the BGP-LS security model discussed in | |||
security model discussed in [RFC7752]. | [RFC7752]. | |||
BGP-EPE enables engineering of traffic when leaving the | BGP-EPE enables engineering of traffic when leaving the | |||
administrative domain via an egress BGP router. Therefore precaution | administrative domain via an egress BGP router. Therefore, | |||
is necessary to ensure that the BGP peering information collected via | precaution is necessary to ensure that the BGP peering information | |||
BGP-LS is limited to specific consumers in a secure manner. Segment | collected via BGP-LS is limited to specific consumers in a secure | |||
Routing operates within a trusted domain [RFC8402] and its security | manner. Segment Routing operates within a trusted domain [RFC8402], | |||
considerations also apply to BGP Peering Segments. The BGP-EPE | and its security considerations also apply to BGP Peering Segments. | |||
policies are expected to be used entirely within this trusted SR | The BGP-EPE policies are expected to be used entirely within this | |||
domain (e.g., between multiple AS/domains within a single provider | trusted SR domain (e.g., between multiple AS/domains within a single | |||
network). | provider network). | |||
The isolation of BGP-LS peering sessions is also required to ensure | The isolation of BGP-LS peering sessions is also required to ensure | |||
that BGP-LS topology information (including the newly added BGP | that BGP-LS topology information (including the newly added BGP | |||
peering topology) is not advertised to an external BGP peering | peering topology) is not advertised to an external BGP peering | |||
session outside an administrative domain. | session outside an administrative domain. | |||
8. Contributors | 9. References | |||
Mach (Guoyi) Chen | ||||
Huawei Technologies | ||||
China | ||||
Email: mach.chen@huawei.com | ||||
Acee Lindem | ||||
Cisco Systems Inc. | ||||
US | ||||
Email: acee@cisco.com | ||||
9. Acknowledgements | ||||
The authors would like to thank Jakob Heitz, Howard Yang, Hannes | ||||
Gredler, Peter Psenak, Arjun Sreekantiah and Bruno Decraene for their | ||||
feedback and comments. Susan Hares helped in improving the clarity | ||||
of the document with her substantial contributions during her | ||||
shepherd's review. The authors would also like to thank Alvaro | ||||
Retana for his extensive review and comments which helped correct | ||||
issues and improve the document. | ||||
10. References | ||||
10.1. Normative References | ||||
[I-D.ietf-idr-bgp-ls-segment-routing-ext] | 9.1. Normative References | |||
Previdi, S., Talaulikar, K., Filsfils, C., Gredler, H., | ||||
and M. Chen, "BGP Link-State extensions for Segment | ||||
Routing", draft-ietf-idr-bgp-ls-segment-routing-ext-14 | ||||
(work in progress), May 2019. | ||||
[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, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC5065] Traina, P., McPherson, D., and J. Scudder, "Autonomous | [RFC5065] Traina, P., McPherson, D., and J. Scudder, "Autonomous | |||
System Confederations for BGP", RFC 5065, | System Confederations for BGP", RFC 5065, | |||
DOI 10.17487/RFC5065, August 2007, | DOI 10.17487/RFC5065, August 2007, | |||
<https://www.rfc-editor.org/info/rfc5065>. | <https://www.rfc-editor.org/info/rfc5065>. | |||
skipping to change at page 17, line 14 ¶ | skipping to change at line 738 ¶ | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., | [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., | |||
Decraene, B., Litkowski, S., and R. Shakir, "Segment | Decraene, B., Litkowski, S., and R. Shakir, "Segment | |||
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, | Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, | |||
July 2018, <https://www.rfc-editor.org/info/rfc8402>. | July 2018, <https://www.rfc-editor.org/info/rfc8402>. | |||
10.2. Informative References | [RFC9085] Previdi, S., Talaulikar, K., Ed., Filsfils, C., Gredler, | |||
H., and M. Chen, "Border Gateway Protocol - Link State | ||||
(BGP-LS) Extensions for Segment Routing", RFC 9085, | ||||
DOI 10.17487/RFC9085, August 2021, | ||||
<https://www.rfc-editor.org/info/rfc9085>. | ||||
[I-D.dawra-idr-bgpls-srv6-ext] | 9.2. Informative References | |||
[BGPLS-SRV6] | ||||
Dawra, G., Filsfils, C., Talaulikar, K., Chen, M., | Dawra, G., Filsfils, C., Talaulikar, K., Chen, M., | |||
daniel.bernier@bell.ca, d., Uttaro, J., Decraene, B., and | Bernier, D., and B. Decraene, "BGP Link State Extensions | |||
H. Elmalky, "BGP Link State Extensions for SRv6", draft- | for SRv6", Work in Progress, Internet-Draft, draft-ietf- | |||
dawra-idr-bgpls-srv6-ext-06 (work in progress), March | idr-bgpls-srv6-ext-08, 8 June 2021, | |||
2019. | <https://datatracker.ietf.org/doc/html/draft-ietf-idr- | |||
bgpls-srv6-ext-08>. | ||||
[I-D.ietf-spring-segment-routing-central-epe] | [RFC9087] Filsfils, C., Ed., Previdi, S., Dawra, G., Ed., Aries, E., | |||
Filsfils, C., Previdi, S., Dawra, G., Aries, E., and D. | and D. Afanasiev, "Segment Routing Centralized BGP Egress | |||
Afanasiev, "Segment Routing Centralized BGP Egress Peer | Peer Engineering", RFC 9087, DOI 10.17487/RFC9087, August | |||
Engineering", draft-ietf-spring-segment-routing-central- | 2021, <https://www.rfc-editor.org/info/rfc9087>. | |||
epe-10 (work in progress), December 2017. | ||||
[I-D.ietf-spring-segment-routing-policy] | [SR-POLICY] | |||
Filsfils, C., Sivabalan, S., daniel.voyer@bell.ca, d., | Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and | |||
bogdanov@google.com, b., and P. Mattes, "Segment Routing | P. Mattes, "Segment Routing Policy Architecture", Work in | |||
Policy Architecture", draft-ietf-spring-segment-routing- | Progress, Internet-Draft, draft-ietf-spring-segment- | |||
policy-03 (work in progress), May 2019. | routing-policy-13, 28 May 2021, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-spring- | ||||
segment-routing-policy-13>. | ||||
Acknowledgements | ||||
The authors would like to thank Jakob Heitz, Howard Yang, Hannes | ||||
Gredler, Peter Psenak, Arjun Sreekantiah, and Bruno Decraene for | ||||
their feedback and comments. Susan Hares helped in improving the | ||||
clarity of the document with her substantial contributions during her | ||||
shepherd's review. The authors would also like to thank Alvaro | ||||
Retana for his extensive review and comments, which helped correct | ||||
issues and improve the document. | ||||
Contributors | ||||
Mach(Guoyi) Chen | ||||
Huawei Technologies | ||||
China | ||||
Email: mach.chen@huawei.com | ||||
Acee Lindem | ||||
Cisco Systems Inc. | ||||
United States of America | ||||
Email: acee@cisco.com | ||||
Authors' Addresses | Authors' Addresses | |||
Stefano Previdi | Stefano Previdi | |||
Individual | Huawei Technologies | |||
Email: stefano@previdi.net | Email: stefano@previdi.net | |||
Ketan Talaulikar (editor) | Ketan Talaulikar (editor) | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
India | India | |||
Email: ketant@cisco.com | Email: ketant@cisco.com | |||
Clarence Filsfils | Clarence Filsfils | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Brussels | Brussels | |||
Belgium | Belgium | |||
Email: cfilsfil@cisco.com | Email: cfilsfil@cisco.com | |||
Keyur Patel | Keyur Patel | |||
Arrcus, Inc. | Arrcus, Inc. | |||
skipping to change at page 18, line 17 ¶ | skipping to change at line 817 ¶ | |||
Belgium | Belgium | |||
Email: cfilsfil@cisco.com | Email: cfilsfil@cisco.com | |||
Keyur Patel | Keyur Patel | |||
Arrcus, Inc. | Arrcus, Inc. | |||
Email: Keyur@arrcus.com | Email: Keyur@arrcus.com | |||
Saikat Ray | Saikat Ray | |||
Individual Contributor | Individual | |||
Email: raysaikat@gmail.com | Email: raysaikat@gmail.com | |||
Jie Dong | Jie Dong | |||
Huawei Technologies | Huawei Technologies | |||
Huawei Campus, No. 156 Beiqing Rd. | Huawei Campus, No. 156 Beiqing Rd. | |||
Beijing 100095 | Beijing | |||
100095 | ||||
China | China | |||
Email: jie.dong@huawei.com | Email: jie.dong@huawei.com | |||
End of changes. 161 change blocks. | ||||
345 lines changed or deleted | 354 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/ |