draft-ietf-idr-bgp-open-policy-16.txt | draft-ietf-idr-bgp-open-policy-17.txt | |||
---|---|---|---|---|
Network Working Group A. Azimov | Network Working Group A. Azimov | |||
Internet-Draft Qrator Labs & Yandex | Internet-Draft Qrator Labs & Yandex | |||
Intended status: Standards Track E. Bogomazov | Intended status: Standards Track E. Bogomazov | |||
Expires: February 11, 2022 Qrator Labs | Expires: April 16, 2022 Qrator Labs | |||
R. Bush | R. Bush | |||
Internet Initiative Japan & Arrcus, Inc. | Internet Initiative Japan & Arrcus, Inc. | |||
K. Patel | K. Patel | |||
Arrcus | Arrcus | |||
K. Sriram | K. Sriram | |||
USA NIST | USA NIST | |||
August 10, 2021 | October 13, 2021 | |||
Route Leak Prevention and Detection using Roles in UPDATE and OPEN | Route Leak Prevention and Detection using Roles in UPDATE and OPEN | |||
Messages | Messages | |||
draft-ietf-idr-bgp-open-policy-16 | draft-ietf-idr-bgp-open-policy-17 | |||
Abstract | Abstract | |||
Route leaks are the propagation of BGP prefixes that violate | Route leaks are the propagation of BGP prefixes that violate | |||
assumptions of BGP topology relationships, e.g., passing a route | assumptions of BGP topology relationships, e.g., announcing a route | |||
learned from one lateral peer to another lateral peer or a transit | learned from one transit provider to another transit provider or a | |||
provider and passing a route learned from one transit provider to | lateral (i.e., non-transit) peer or announcing a route learned from | |||
another transit provider or a lateral peer. Existing approaches to | one lateral peer to another lateral peer or a transit provider. | |||
leak prevention rely on marking routes by operator configuration, | These are usually the result of misconfigured or absent BGP route | |||
with no check that the configuration corresponds to that of the eBGP | filtering or lack of coordination between autonomous systems (ASes). | |||
neighbor, or enforcement that the two eBGP speakers agree on the | Existing approaches to leak prevention rely on marking routes by | |||
relationship. This document enhances the BGP OPEN message to | operator configuration, with no check that the configuration | |||
establish an agreement of the relationship on each eBGP session | corresponds to that of the eBGP neighbor, or enforcement that the two | |||
between autonomous systems in order to enforce appropriate | eBGP speakers agree on the relationship. This document enhances the | |||
configuration on both sides. Propagated routes are then marked | BGP OPEN message to establish an agreement of the relationship on | |||
according to the agreed relationship, allowing both prevention and | each eBGP session between autonomous systems in order to enforce | |||
detection of route leaks. | appropriate configuration on both sides. Propagated routes are then | |||
marked according to the agreed relationship, allowing both prevention | ||||
and detection of route leaks. | ||||
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 | "OPTIONAL" in this document are to be interpreted as described in | |||
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 2, line 15 ¶ | skipping to change at page 2, line 20 ¶ | |||
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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 February 11, 2022. | This Internet-Draft will expire on April 16, 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 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 | |||
skipping to change at page 2, line 39 ¶ | skipping to change at page 2, line 44 ¶ | |||
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 . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Peering Relationships . . . . . . . . . . . . . . . . . . . . 4 | 2. Peering Relationships . . . . . . . . . . . . . . . . . . . . 4 | |||
3. BGP Role . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. BGP Role . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3.1. BGP Role Capability . . . . . . . . . . . . . . . . . . . 5 | 3.1. BGP Role Capability . . . . . . . . . . . . . . . . . . . 5 | |||
3.2. Role Correctness . . . . . . . . . . . . . . . . . . . . 5 | 3.2. Role Correctness . . . . . . . . . . . . . . . . . . . . 6 | |||
4. BGP Only to Customer (OTC) Attribute . . . . . . . . . . . . 6 | 4. BGP Only to Customer (OTC) Attribute . . . . . . . . . . . . 7 | |||
5. Additional Considerations . . . . . . . . . . . . . . . . . . 8 | 5. Additional Considerations . . . . . . . . . . . . . . . . . . 8 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 10 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 11 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 11 | 8.2. Informative References . . . . . . . . . . . . . . . . . 12 | |||
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 11 | Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
1. Introduction | 1. Introduction | |||
A BGP route leak occurs when a route is learned from a transit | Route leaks are the propagation of BGP prefixes that violate | |||
provider or lateral peer and then announced to another provider or | assumptions of BGP topology relationships, e.g., announcing a route | |||
lateral peer [RFC7908]. These are usually the result of | learned from one transit provider to another transit provider or a | |||
misconfigured or absent BGP route filtering or lack of coordination | lateral (i.e., non-transit) peer or announcing a route learned from | |||
between autonomous systems (ASes). | one lateral peer to another lateral peer or a transit provider | |||
[RFC7908]. These are usually the result of misconfigured or absent | ||||
BGP route filtering or lack of coordination between autonomous | ||||
systems (ASes). | ||||
Existing approaches to leak prevention rely on marking routes by | Existing approaches to leak prevention rely on marking routes by | |||
operator configuration, with no check that the configuration | operator configuration, with no check that the configuration | |||
corresponds to that of the eBGP neighbor, or enforcement that the two | corresponds to that of the eBGP neighbor, or enforcement that the two | |||
eBGP speakers agree on the relationship. This document enhances the | eBGP speakers agree on the relationship. This document enhances the | |||
BGP OPEN message to establish an agreement of the relationship on | BGP OPEN message to establish an agreement of the relationship on | |||
each eBGP session between autonomous systems in order to enforce | each eBGP session between autonomous systems in order to enforce | |||
appropriate configuration on both sides. Propagated routes are then | appropriate configuration on both sides. Propagated routes are then | |||
marked according to the agreed relationship, allowing both prevention | marked according to the agreed relationship, allowing both prevention | |||
and detection of route leaks. | and detection of route leaks. | |||
This document provides configuration automation using BGP Roles, | This document provides configuration automation using BGP Roles, | |||
which are negotiated using a BGP Role Capability in the OPEN message | which are negotiated using a BGP Role Capability in the OPEN message | |||
[RFC5492]. An eBGP speaker may require the use of this capability | [RFC5492]. An eBGP speaker may require the use of this capability | |||
and confirmation of BGP Role with a neighbor for the BGP OPEN to | and confirmation of BGP Role with a neighbor for the BGP OPEN to | |||
succeed. | succeed. | |||
An optional, transitive BGP Path Attribute, called Only to Customer | An optional, transitive BGP Path Attribute, called Only to Customer | |||
(OTC), is specified in Section 4. It prevents ASes from creating | (OTC), is specified in Section 4. It prevents ASes from creating | |||
leaks, and detects leaks created by the ASes in the middle of an AS | leaks and detects leaks created by the ASes in the middle of an AS | |||
path. The main focus/applicability is the Internet (IPv4 and IPv6 | path. The main focus/applicability is the Internet (IPv4 and IPv6 | |||
unicast route advertisements). | unicast route advertisements). | |||
1.1. Terminology | 1.1. Terminology | |||
In the rest of this document, the term "Peer" is used to refer to a | In the rest of this document, the term "Peer" is used to refer to a | |||
"lateral peer" for simplicity. Also, the terms Provider and Customer | "lateral (i.e., non-transit) peer" for simplicity. Also, the terms | |||
are used to refer to a transit provider and a transit customer, | Provider and Customer are used to refer to a transit provider and a | |||
respectively. Further, the terms RS and RS-Client are used to refer | transit customer, respectively. Further, the terms RS and RS-Client | |||
to a Route Server and its client, respectively. | are used to refer to a Route Server and its client, respectively. | |||
The terms "local AS" and "remote AS" are used to refer to the two | The terms "local AS" and "remote AS" are used to refer to the two | |||
ends of an eBGP session. The "local AS" is the AS where the protocol | ends of an eBGP session. The "local AS" is the AS where the protocol | |||
action being described is to be performed, and "remote AS" is the AS | action being described is to be performed, and "remote AS" is the AS | |||
at the other end of the eBGP session in consideration. | at the other end of the eBGP session in consideration. | |||
The use of the term "route is ineligible" in this document has the | The use of the term "route is ineligible" in this document has the | |||
same meaning as in [RFC4271], i.e., "route is ineligible to be | same meaning as in [RFC4271], i.e., "route is ineligible to be | |||
installed in Loc-RIB and will be excluded from the next phase of | installed in Loc-RIB and will be excluded from the next phase of | |||
route selection." | route selection." | |||
skipping to change at page 4, line 36 ¶ | skipping to change at page 4, line 41 ¶ | |||
Peer: MAY propagate any route learned from a Customer, or locally | Peer: MAY propagate any route learned from a Customer, or locally | |||
originated, to a Peer. All other routes MUST NOT be propagated. | originated, to a Peer. All other routes MUST NOT be propagated. | |||
A BGP speaker may apply policy to reduce what is announced, and a | A BGP speaker may apply policy to reduce what is announced, and a | |||
recipient may apply policy to reduce the set of routes they accept. | recipient may apply policy to reduce the set of routes they accept. | |||
Violation of the above rules may result in route leaks. Automatic | Violation of the above rules may result in route leaks. Automatic | |||
enforcement of these rules should significantly reduce route leaks | enforcement of these rules should significantly reduce route leaks | |||
that may otherwise occur due to manual configuration mistakes. | that may otherwise occur due to manual configuration mistakes. | |||
As specified in Section 4, the Only to Customer (OTC) Attribute is | ||||
used to identify all the routes in the AS that have been received | ||||
from a Peer, Provider, or RS. | ||||
3. BGP Role | 3. BGP Role | |||
The BGP Role characterizes the relationship between the eBGP speakers | The BGP Role characterizes the relationship between the eBGP speakers | |||
forming a session. BGP Role is configured on a per-session basis. | forming a session. One of the Roles described below SHOULD be | |||
An eBGP speaker SHOULD configure the BGP Role locally based on the | configured at the local AS for each eBGP session (see definitions in | |||
local AS's knowledge of its Role. The only exception is when the | Section 1.1) based on the local AS's knowledge of its Role. The only | |||
eBGP connection is complex (see Section 5). BGP Roles are mutually | exception is when the eBGP connection is 'complex' (see Section 5). | |||
confirmed using the BGP Role Capability (described in Section 3.1) on | ||||
each eBGP session between autonomous systems (ASes). One of the | BGP Roles are mutually confirmed using the BGP Role Capability | |||
Roles described below SHOULD be configured at the local AS for each | (described in Section 3.1) on each eBGP session. | |||
eBGP session with a neighbor (remote AS) (see definitions in | ||||
Section 1.1). | ||||
Allowed Roles for eBGP sessions are: | Allowed Roles for eBGP sessions are: | |||
o Provider - the local AS is a transit Provider of the remote AS; | o Provider - the local AS is a transit Provider of the remote AS; | |||
o Customer - the local AS is a transit Customer of the remote AS; | o Customer - the local AS is a transit Customer of the remote AS; | |||
o RS - the local AS is a Route Server (usually at an Internet | o RS - the local AS is a Route Server (usually at an Internet | |||
exchange point) and the remote AS is its RS-Client; | exchange point) and the remote AS is its RS-Client; | |||
o RS-Client - the local AS is a client of an RS and the RS is the | o RS-Client - the local AS is a client of an RS and the RS is the | |||
remote AS; | remote AS; | |||
o Peer - the local and remote ASes are Peers (i.e., have a lateral | o Peer - the local and remote ASes are Peers (i.e., have a lateral | |||
peering relationship). | peering relationship). | |||
skipping to change at page 6, line 19 ¶ | skipping to change at page 6, line 29 ¶ | |||
+---------------+----------------+ | +---------------+----------------+ | |||
| Provider | Customer | | | Provider | Customer | | |||
| Customer | Provider | | | Customer | Provider | | |||
| RS | RS-Client | | | RS | RS-Client | | |||
| RS-Client | RS | | | RS-Client | RS | | |||
| Peer | Peer | | | Peer | Peer | | |||
+---------------+----------------+ | +---------------+----------------+ | |||
Table 2: Allowed Pairs of Role Capabilities | Table 2: Allowed Pairs of Role Capabilities | |||
If the BGP Role Capability is sent, but one is not received, then the | For backward compatibility, if the BGP Role Capability is sent but | |||
connection MAY be rejected using the Role Mismatch Notification (code | one is not received, the BGP Speaker SHOULD ignore the absence of the | |||
2, subcode 8); this mode of operation is called the "strict mode". | BGP Role Capability and proceed with session establishment. The | |||
For backward compatibility, if the BGP speaker does not receive the | locally configured BGP Role is used for the procedures described in | |||
capability from its peer, it SHOULD ignore the absence of BGP Role | ||||
Capability and proceed with session establishment; this SHOULD be the | ||||
default non-strict mode of operation. In this case, the locally | ||||
configured BGP Role is used for the procedures described in | ||||
Section 4. | Section 4. | |||
An operator may choose to apply a "strict mode" in which the receipt | ||||
of a BGP Role Capability from the remote AS is required. When | ||||
operating in the "strict mode", if the BGP Role Capability is sent, | ||||
but one is not received, then the connection is rejected using the | ||||
Role Mismatch Notification (code 2, subcode 8). See comments in | ||||
Section 7. | ||||
If an eBGP speaker receives multiple but identical BGP Role | If an eBGP speaker receives multiple but identical BGP Role | |||
Capabilities with the same value in each, then the speaker MUST | Capabilities with the same value in each, then the speaker must | |||
consider it to be a single BGP Role Capability and proceed [RFC5492]. | consider it to be a single BGP Role Capability and proceed [RFC5492]. | |||
If multiple BGP Role Capabilities are received and not all of them | If multiple BGP Role Capabilities are received and not all of them | |||
have the same value, then the BGP speaker MUST reject the connection | have the same value, then the BGP speaker MUST reject the connection | |||
using the Role Mismatch Notification (code 2, subcode 8). | using the Role Mismatch Notification (code 2, subcode 8). | |||
The BGP Role value for the local AS is used in the route leak | The BGP Role value for the local AS is used in the route leak | |||
prevention and detection procedures described in Section 4. | prevention and detection procedures described in Section 4. | |||
4. BGP Only to Customer (OTC) Attribute | 4. BGP Only to Customer (OTC) Attribute | |||
The Only to Customer (OTC) Attribute is an optional transitive path | The Only to Customer (OTC) Attribute is an optional transitive path | |||
attribute with Attribute Type Code 35 and a length of 4 octets. The | attribute with Attribute Type Code 35 and a length of 4 octets. The | |||
purpose of this attribute is to guarantee that once a route is sent | purpose of this attribute is to guarantee that once a route is sent | |||
to a Customer, Peer, or RS-Client, it will subsequently go only to | to a Customer, Peer, or RS-Client, it will subsequently go only to | |||
Customers. The attribute value is an AS number determined by the | Customers. The attribute value is an AS number (ASN) determined by | |||
policy described below. | the policy described below. | |||
The following ingress policy applies to the processing of the OTC | The following ingress policy applies to the processing of the OTC | |||
Attribute: | Attribute: | |||
1. If a route with the OTC Attribute is received from a Customer or | 1. If a route with the OTC Attribute is received from a Customer or | |||
RS-Client, then it is a route leak and MUST be considered | RS-Client, then it is a route leak and MUST be considered | |||
ineligible (see Section 1.1). | ineligible (see Section 1.1). | |||
2. If a route with the OTC Attribute is received from a Peer and at | 2. If a route with the OTC Attribute is received from a Peer and at | |||
least one of the OTC Attributes has a value that is not equal to | least one of the OTC Attributes has a value that is not equal to | |||
skipping to change at page 7, line 38 ¶ | skipping to change at page 7, line 50 ¶ | |||
The described policies provide both leak prevention for the local AS | The described policies provide both leak prevention for the local AS | |||
and leak detection and mitigation multiple hops away. In the case of | and leak detection and mitigation multiple hops away. In the case of | |||
prevention at the local AS, the presence of an OTC Attribute | prevention at the local AS, the presence of an OTC Attribute | |||
indicates to the egress router that the route was learned from a | indicates to the egress router that the route was learned from a | |||
Peer, Provider, or RS, and it can be advertised only to the | Peer, Provider, or RS, and it can be advertised only to the | |||
customers. The same OTC Attribute which is set locally also provides | customers. The same OTC Attribute which is set locally also provides | |||
a way to detect route leaks by an AS multiple hops away if a route is | a way to detect route leaks by an AS multiple hops away if a route is | |||
received from a Customer, Peer, or RS-Client. | received from a Customer, Peer, or RS-Client. | |||
The OTC Attribute may be set by the egress policy of remote AS or by | The OTC Attribute may be set by the egress policy of the remote AS or | |||
the ingress policy of local AS. In both scenarios, the OTC value | by the ingress policy of the local AS. In both scenarios, the OTC | |||
will be the same. This makes the scheme more robust and benefits | value will be the same. This makes the scheme more robust and | |||
early adopters. | benefits early adopters. | |||
If an eBGP speaker receives an UPDATE with an OTC Attribute with a | If an eBGP speaker receives an UPDATE with an OTC Attribute with a | |||
length different from 4 octets, then the UPDATE SHALL be considered | length different from 4 octets, then the UPDATE SHALL be considered | |||
malformed. If malformed, the UPDATE message SHALL be handled using | malformed. If malformed, the UPDATE message SHALL be handled using | |||
the approach of "treat-as-withdraw" [RFC7606]. | the approach of "treat-as-withdraw" [RFC7606]. | |||
Once the OTC Attribute has been set, it MUST be preserved unchanged. | The procedures specified in this document are NOT RECOMMENDED to be | |||
used between autonomous systems in an AS Confederation [RFC5065]. If | ||||
an OTC Attribute is added on egress from the AS Confederation, its | ||||
value MUST equal the AS Confederation Identifier. Also, on egress | ||||
from the AS Confederation, an UPDATE MUST NOT contain an OTC | ||||
Attribute with a value corresponding to any Member-AS Number other | ||||
than the AS Confederation Identifier. | ||||
The procedures specified in this document in scenarios that use | ||||
private AS numbers behind an Internet-facing ASN (e.g., a data center | ||||
network [RFC7938] or stub customer) may be used, but any details are | ||||
outside the scope of this document. On egress from the Internet- | ||||
facing AS, the OTC Attribute MUST NOT contain a value other than the | ||||
Internet-facing ASN. | ||||
Once the OTC Attribute has been set, it MUST be preserved unchanged | ||||
(this also applies to an AS Confederation). | ||||
Correct implementation of the procedures specified in this document | Correct implementation of the procedures specified in this document | |||
is not expected to result in the presence of multiple OTC Attributes | is not expected to result in the presence of multiple OTC Attributes | |||
in an UPDATE. However, if an eBGP speaker receives multiple OTC | in an UPDATE. However, if an eBGP speaker receives multiple OTC | |||
Attributes with a route, then the only difference in the processing | Attributes with a route, then the only difference in the processing | |||
is in Step 2 of the ingress policy. | is in Step 2 of the ingress policy. | |||
The described ingress and egress policies are applicable only for | The described ingress and egress policies are applicable only for | |||
unicast IPv4 and IPv6 address families and MUST not affect other | unicast IPv4 and IPv6 address families and MUST NOT be applied to | |||
address families by default. The operator MUST NOT have the ability | other address families by default. The operator MUST NOT have the | |||
to modify the policies defined in this section. | ability to modify the policies defined in this section. | |||
5. Additional Considerations | 5. Additional Considerations | |||
There are peering relationships that are 'complex', i.e., both | There are peering relationships that are 'complex', i.e., both | |||
parties intentionally advertise prefixes received from each other to | parties intentionally advertise prefixes received from each other to | |||
their Peers and/or transit Providers. If multiple eBGP sessions can | their Peers and/or transit Providers. If multiple eBGP sessions can | |||
segregate the 'complex' parts of the relationship, then the complex | segregate the 'complex' parts of the relationship, then the complex | |||
peering roles can be segregated into different normal eBGP sessions, | peering roles can be segregated into different normal eBGP sessions, | |||
and BGP Roles MUST be used on each of the resulting normal (non- | and BGP Roles MUST be used on each of the resulting normal (non- | |||
complex) eBGP sessions. | complex) eBGP sessions. | |||
No Roles SHOULD be configured on a 'complex' eBGP session (assuming | No Roles SHOULD be configured on a 'complex' eBGP session (assuming | |||
it is not segregated) and in that case, the OTC Attribute processing | it is not segregated). An operator may want to achieve an equivalent | |||
MUST be done relying on configuration on a per-prefix basis. Also, | outcome by configuring policies on a per-prefix basis to follow the | |||
in this case, the per-prefix peering configuration MUST follow the | definitions of peering relations as described in Section 2. However, | |||
same definitions of peering relations as described in Section 2. | in this case, there are no built-in measures to check the correctness | |||
However, in this case, there are no built-in measures to check | of the per-prefix peering configuration. | |||
correctness of the per-prefix peering configuration. | ||||
The incorrect setting of BGP Roles and/or OTC Attributes may affect | The incorrect setting of BGP Roles and/or OTC Attributes may affect | |||
prefix propagation. Further, this document does not specify any | prefix propagation. Further, this document does not specify any | |||
special handling of incorrect AS numbers in the OTC Attribute. Such | special handling of incorrect AS numbers in the OTC Attribute. | |||
errors should not happen with proper configuration. | ||||
6. IANA Considerations | 6. IANA Considerations | |||
IANA has registered a new BGP Capability described in Section 3.1 in | IANA has registered a new BGP Capability (Section 3.1) in the | |||
the "Capability Codes" registry's "IETF Review" range [RFC5492]. The | "Capability Codes" registry's "IETF Review" range [RFC5492]. The | |||
description for the new capability is "BGP Role". IANA has assigned | description for the new capability is "BGP Role". IANA has assigned | |||
the value 9 [to be removed upon publication: | the value 9 [to be removed upon publication: | |||
https://www.iana.org/assignments/capability-codes/capability- | https://www.iana.org/assignments/capability-codes/capability- | |||
codes.xhtml]. This document is the reference for the new capability. | codes.xhtml]. This document is the reference for the new capability. | |||
The BGP Role capability includes a Value field, for which IANA is | The BGP Role capability includes a Value field, for which IANA is | |||
requested to create and maintain a new sub-registry called "BGP Role | requested to create and maintain a new sub-registry called "BGP Role | |||
Value" in the Capability Codes registry. Assignments consist of a | Value" in the Capability Codes registry. Assignments consist of a | |||
Value and a corresponding Role name. Initially, this registry is to | Value and a corresponding Role name. Initially, this registry is to | |||
be populated with the data contained in Table 1 found in Section 3.1. | be populated with the data contained in Table 1 found in Section 3.1. | |||
skipping to change at page 9, line 43 ¶ | skipping to change at page 10, line 23 ¶ | |||
The security considerations of BGP (as specified in [RFC4271] and | The security considerations of BGP (as specified in [RFC4271] and | |||
[RFC4272]) apply. | [RFC4272]) apply. | |||
This document proposes a mechanism using BGP Role for the prevention | This document proposes a mechanism using BGP Role for the prevention | |||
and detection of route leaks that are the result of BGP policy | and detection of route leaks that are the result of BGP policy | |||
misconfiguration. A misconfiguration of the BGP Role may affect | misconfiguration. A misconfiguration of the BGP Role may affect | |||
prefix propagation. For example, if a downstream (i.e., towards a | prefix propagation. For example, if a downstream (i.e., towards a | |||
Customer) peering link were misconfigured with a Provider or Peer | Customer) peering link were misconfigured with a Provider or Peer | |||
role, this will limit the number of prefixes that can be advertised | role, this will limit the number of prefixes that can be advertised | |||
in this direction. On the other hand if an upstream provider were | in this direction. On the other hand, if an upstream provider were | |||
misconfigured (by a local AS) with the Customer role, this may result | misconfigured (by a local AS) with the Customer role, this may result | |||
in propagating routes that are received from other Providers or | in propagating routes that are received from other Providers or | |||
Peers. But the BGP Role negotiation and the resulting confirmation | Peers. But the BGP Role negotiation and the resulting confirmation | |||
of Roles make such misconfigurations unlikely. | of Roles make such misconfigurations unlikely. | |||
Setting the strict mode of operation for BGP Role negotiation as the | Setting the strict mode of operation for BGP Role negotiation as the | |||
default may result in a situation where the eBGP session will not | default may result in a situation where the eBGP session will not | |||
come up after a software update. Such an implementation of this | come up after a software update. Implementations with such default | |||
document is strongly discouraged. | behavior are strongly discouraged. | |||
Removing the OTC Attribute or changing its value can limit the | Removing the OTC Attribute or changing its value can limit the | |||
opportunity of route leak detection. Such activity can be done on | opportunity of route leak detection. Such activity can be done on | |||
purpose as part of a Man in the Middle (MITM) attack. For example, | purpose as part of an on-path attack. For example, an AS can remove | |||
an AS can remove the OTC Attribute on a received route and then leak | the OTC Attribute on a received route and then leak the route to its | |||
the route to its transit provider. Such malicious activity cannot be | transit provider. This kind of threat is not new in BGP and it may | |||
prevented without cryptographically signing the BGP UPDATE [RFC8205] | affect any Attribute (Note: BGPsec [RFC8205] offers protection only | |||
or out of band detection [I-D.ietf-sidrops-aspa-verification], but | for the AS_PATH Attribute). | |||
such schemes are beyond the scope of this document. | ||||
Adding an OTC Attribute when the route is advertised from Customer to | Adding an OTC Attribute when the route is advertised from Customer to | |||
Provider will limit the propagation of the route. Such a route may | Provider will limit the propagation of the route. Such a route may | |||
be considered as ineligible by the immediate Provider or its Peers or | be considered as ineligible by the immediate Provider or its Peers or | |||
upper layer Providers. This kind of OTC Attribute addition is | upper layer Providers. This kind of OTC Attribute addition is | |||
unlikely to happen on the Provider side because it will limit the | unlikely to happen on the Provider side because it will limit the | |||
traffic volume towards its Customer. On the Customer side, adding an | traffic volume towards its Customer. On the Customer side, adding an | |||
OTC Attribute for traffic engineering purposes is also discouraged | OTC Attribute for traffic engineering purposes is also discouraged | |||
because it will limit route propagation in an unpredictable way. | because it will limit route propagation in an unpredictable way. | |||
skipping to change at page 10, line 37 ¶ | skipping to change at page 11, line 19 ¶ | |||
[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>. | |||
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | |||
Border Gateway Protocol 4 (BGP-4)", RFC 4271, | Border Gateway Protocol 4 (BGP-4)", RFC 4271, | |||
DOI 10.17487/RFC4271, January 2006, | DOI 10.17487/RFC4271, January 2006, | |||
<https://www.rfc-editor.org/info/rfc4271>. | <https://www.rfc-editor.org/info/rfc4271>. | |||
[RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", | [RFC5065] Traina, P., McPherson, D., and J. Scudder, "Autonomous | |||
RFC 4272, DOI 10.17487/RFC4272, January 2006, | System Confederations for BGP", RFC 5065, | |||
<https://www.rfc-editor.org/info/rfc4272>. | DOI 10.17487/RFC5065, August 2007, | |||
<https://www.rfc-editor.org/info/rfc5065>. | ||||
[RFC5492] Scudder, J. and R. Chandra, "Capabilities Advertisement | [RFC5492] Scudder, J. and R. Chandra, "Capabilities Advertisement | |||
with BGP-4", RFC 5492, DOI 10.17487/RFC5492, February | with BGP-4", RFC 5492, DOI 10.17487/RFC5492, February | |||
2009, <https://www.rfc-editor.org/info/rfc5492>. | 2009, <https://www.rfc-editor.org/info/rfc5492>. | |||
[RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. | [RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. | |||
Patel, "Revised Error Handling for BGP UPDATE Messages", | Patel, "Revised Error Handling for BGP UPDATE Messages", | |||
RFC 7606, DOI 10.17487/RFC7606, August 2015, | RFC 7606, DOI 10.17487/RFC7606, August 2015, | |||
<https://www.rfc-editor.org/info/rfc7606>. | <https://www.rfc-editor.org/info/rfc7606>. | |||
[RFC7908] Sriram, K., Montgomery, D., McPherson, D., Osterweil, E., | [RFC7908] Sriram, K., Montgomery, D., McPherson, D., Osterweil, E., | |||
and B. Dickson, "Problem Definition and Classification of | and B. Dickson, "Problem Definition and Classification of | |||
BGP Route Leaks", RFC 7908, DOI 10.17487/RFC7908, June | BGP Route Leaks", RFC 7908, DOI 10.17487/RFC7908, June | |||
2016, <https://www.rfc-editor.org/info/rfc7908>. | 2016, <https://www.rfc-editor.org/info/rfc7908>. | |||
[RFC7938] Lapukhov, P., Premji, A., and J. Mitchell, Ed., "Use of | ||||
BGP for Routing in Large-Scale Data Centers", RFC 7938, | ||||
DOI 10.17487/RFC7938, August 2016, | ||||
<https://www.rfc-editor.org/info/rfc7938>. | ||||
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
<https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
[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>. | |||
8.2. Informative References | 8.2. Informative References | |||
[Gao] Gao, L. and J. Rexford, "Stable Internet routing without | [Gao] Gao, L. and J. Rexford, "Stable Internet routing without | |||
global coordination", IEEE/ACM Transactions on | global coordination", IEEE/ACM Transactions on | |||
Networking, Volume 9, Issue 6, pp 689-692, DOI | Networking, Volume 9, Issue 6, pp 689-692, DOI | |||
10.1109/90.974523, December 2001, | 10.1109/90.974523, December 2001, | |||
<https://ieeexplore.ieee.org/document/974523>. | <https://ieeexplore.ieee.org/document/974523>. | |||
[I-D.ietf-sidrops-aspa-verification] | [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", | |||
Azimov, A., Bogomazov, E., Bush, R., Patel, K., and J. | RFC 4272, DOI 10.17487/RFC4272, January 2006, | |||
Snijders, "Verification of AS_PATH Using the Resource | <https://www.rfc-editor.org/info/rfc4272>. | |||
Certificate Public Key Infrastructure and Autonomous | ||||
System Provider Authorization", draft-ietf-sidrops-aspa- | ||||
verification-07 (work in progress), February 2021. | ||||
[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>. | |||
Acknowledgements | Acknowledgments | |||
The authors wish to thank Alvaro Retana, Andrei Robachevsky, Daniel | The authors wish to thank Alvaro Retana, Andrei Robachevsky, Daniel | |||
Ginsburg, Jeff Haas, Ruediger Volk, Pavel Lunin, Gyan Mishra, Ignas | Ginsburg, Jeff Haas, Ruediger Volk, Pavel Lunin, Gyan Mishra, Ignas | |||
Bagdonas, Sue Hares, and John Scudder for comments, suggestions, and | Bagdonas, Sue Hares, and John Scudder for comments, suggestions, and | |||
critique. | critique. | |||
Contributors | Contributors | |||
Brian Dickson | Brian Dickson | |||
Independent | Independent | |||
Email: brian.peter.dickson@gmail.com | Email: brian.peter.dickson@gmail.com | |||
Doug Montgomery | Doug Montgomery | |||
USA National Institute of Standards and Technology | USA National Institute of Standards and Technology | |||
Email: dougm@nist.gov | Email: dougm@nist.gov | |||
Authors' Addresses | Authors' Addresses | |||
End of changes. 31 change blocks. | ||||
93 lines changed or deleted | 121 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/ |