rfc9117.original   rfc9117.txt 
Network Working Group J. Uttaro Internet Engineering Task Force (IETF) J. Uttaro
Internet-Draft AT&T Request for Comments: 9117 AT&T
Updates: 8955 (if approved) J. Alcaide Updates: 8955 J. Alcaide
Intended status: Standards Track C. Filsfils Category: Standards Track C. Filsfils
Expires: December 5, 2021 D. Smith ISSN: 2070-1721 D. Smith
Cisco Cisco
P. Mohapatra P. Mohapatra
Sproute Networks Sproute Networks
June 3, 2021 August 2021
Revised Validation Procedure for BGP Flow Specifications Revised Validation Procedure for BGP Flow Specifications
draft-ietf-idr-bgp-flowspec-oid-15
Abstract Abstract
This document describes a modification to the validation procedure This document describes a modification to the validation procedure
defined for the dissemination of BGP Flow Specifications. The defined for the dissemination of BGP Flow Specifications. The
dissemination of BGP Flow Specifications as specified in [RFC8955] dissemination of BGP Flow Specifications as specified in RFC 8955
requires that the originator of the Flow Specification matches the requires that the originator of the Flow Specification match the
originator of the best-match unicast route for the destination prefix originator of the best-match unicast route for the destination prefix
embedded in the Flow Specification. For an iBGP received route, the embedded in the Flow Specification. For an Internal Border Gateway
originator is typically a border router within the same autonomous Protocol (iBGP) received route, the originator is typically a border
system. The objective is to allow only BGP speakers within the data router within the same autonomous system (AS). The objective is to
forwarding path to originate BGP Flow Specifications. Sometimes it allow only BGP speakers within the data forwarding path to originate
is desirable to originate the BGP Flow Specification from any place BGP Flow Specifications. Sometimes it is desirable to originate the
within the autonomous system itself, for example, from a centralized BGP Flow Specification from any place within the autonomous system
BGP route controller. However, the RFC 8955 validation procedure itself, for example, from a centralized BGP route controller.
will fail in this scenario. The modification proposed herein relaxes However, the validation procedure described in RFC 8955 will fail in
the validation rule to enable Flow Specifications to be originated this scenario. The modification proposed herein relaxes the
within the same autonomous system as the BGP speaker performing the validation rule to enable Flow Specifications to be originated within
the same autonomous system as the BGP speaker performing the
validation. Additionally, this document revises the AS_PATH validation. Additionally, this document revises the AS_PATH
validation rules so Flow Specifications received from an eBGP peer validation rules so Flow Specifications received from an External
can be validated when such peer is a BGP route server. Border Gateway Protocol (eBGP) peer can be validated when such a peer
is a BGP route server.
This document updates the validation procedure in [RFC8955]. This document updates the validation procedure in RFC 8955.
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 December 5, 2021. 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/rfc9117.
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
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. Requirements Language . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Definitions of Terms Used in This Memo
3. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Motivation
4. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4 4. Revised Validation Procedure
5. Revised Validation Procedure . . . . . . . . . . . . . . . . 7 4.1. Revision of Route Feasibility
5.1. Revision of Route Feasibility . . . . . . . . . . . . . . 7 4.2. Revision of AS_PATH Validation
5.2. Revision of AS_PATH Validation . . . . . . . . . . . . . 8 5. Topology Considerations
6. Topology Considerations . . . . . . . . . . . . . . . . . . . 10 6. IANA Considerations
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 7. Security Considerations
8. Security Considerations . . . . . . . . . . . . . . . . . . . 11 8. References
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 8.1. Normative References
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 8.2. Informative References
10.1. Normative References . . . . . . . . . . . . . . . . . . 12 Acknowledgements
10.2. Informative References . . . . . . . . . . . . . . . . . 13 Authors' Addresses
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13
1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
2. Terminology
Local Domain: the local AS or the local confederation of ASes
[RFC5065].
eBGP: BGP peering to a router not within the Local Domain.
iBGP: BGP peering not eBGP as defined above (i.e. both classic iBGP
and any form of eBGP peering with a router within the same
confederation).
3. Introduction 1. Introduction
[RFC8955] defines a BGP NLRI [RFC4760] that can be used to distribute [RFC8955] defines BGP Network Layer Reachability Information (NLRI)
traffic Flow Specifications amongst BGP speakers in support of [RFC4760] that can be used to distribute traffic Flow Specifications
traffic filtering. The primary intention of [RFC8955] is to enable amongst BGP speakers in support of traffic filtering. The primary
downstream autonomous systems to signal traffic filtering policies to intention of [RFC8955] is to enable downstream autonomous systems to
upstream autonomous systems. In this way, traffic is filtered closer signal traffic filtering policies to upstream autonomous systems. In
to the source and the upstream autonomous system(s) avoid carrying this way, traffic is filtered closer to the source and the upstream
the traffic to the downstream autonomous system only to be discarded. autonomous systems avoid carrying the traffic to the downstream
[RFC8955] also enables more granular traffic filtering based upon autonomous systems only to be discarded. [RFC8955] also enables more
upper layer protocol information (e.g., protocol or port numbers) as granular traffic filtering based upon upper-layer protocol
opposed to coarse IP destination prefix-based filtering. Flow information (e.g., protocol or port numbers) as opposed to coarse IP
Specification NLRIs received from a BGP peer are subject to validity destination prefix-based filtering. Flow Specification NLRIs
checks before being considered feasible and subsequently installed received from a BGP peer is subject to validity checks before being
within the respective Adj-RIB-In. considered feasible and subsequently installed within the respective
Adj-RIB-In.
The validation procedure defined within [RFC8955] requires that the The validation procedure defined within [RFC8955] requires that the
originator of the Flow Specification NLRI matches the originator of originator of the Flow Specification NLRI match the originator of the
the best-match unicast route for the destination prefix embedded in best-match unicast route for the destination prefix embedded in the
the Flow Specification. The aim is to make sure that only speakers Flow Specification. The aim is to make sure that only speakers on
on the forwarding path can originate the Flow Specification. Let's the forwarding path can originate the Flow Specification. Let's
consider the particular case where the Flow Specification is consider the particular case where the Flow Specification is
originated in any location within the same Local Domain as the originated in any location within the same Local Domain as the
speaker performing the validation (for example by a centralized BGP speaker performing the validation (for example, by a centralized BGP
route controller), and the best-match unicast route is originated in route controller), and the best-match unicast route is originated in
another Local Domain. In order for the validation to succeed for a another Local Domain. In order for the validation to succeed for a
Flow Specification received from an iBGP peer, it would be necessary Flow Specification received from an iBGP peer, it would be necessary
to disseminate such Flow Specification NLRI directly from the to disseminate such Flow Specification NLRI directly from the
specific border router (within the Local Domain) that is advertising specific border router (within the Local Domain) that is advertising
the corresponding best-match unicast route to the Local Domain. the corresponding best-match unicast route to the Local Domain.
Those border routers would be acting as de facto route controllers. Those border routers would be acting as de facto route controllers.
This approach would be, however, operationally cumbersome in a Local This approach would be, however, operationally cumbersome in a Local
Domain with numerous border routers having complex BGP policies. Domain with numerous border routers having complex BGP policies.
Figure 1 illustrates this principle. R1 (the upstream router) and RR Figure 1 illustrates this principle. R1 (the upstream router) and RR
(a route reflector) need to validate the Flow Specification whose (a route reflector) need to validate the Flow Specification whose
embedded destination prefix has a best-match unicast route (dest- embedded destination prefix has a best-match unicast route (dest-
route) originated by ASBR2. ASBR2 could originate the Flow route) originated by ASBR2. ASBR2 could originate the Flow
Specification, and it would be validated when received by RR and R1 Specification, and it would be validated when received by RR and R1
(from their point of view, the originator of both the FLow (from their point of view, the originator of both the Flow
Specification and the best-match unicast route will be ASBR1). Specification and the best-match unicast route will be ASBR1).
Sometimes the Flow Specification needs to be originated within AS1. Sometimes the Flow Specification needs to be originated within AS1.
ASBR1 could originate it, and the Flow Specification would still be ASBR1 could originate it, and the Flow Specification would still be
validated. In both cases, the Flow Specification is originated by a validated. In both cases, the Flow Specification is originated by a
router in the same forwarding path as the dest-route. For the case router in the same forwarding path as the dest-route. For the case
where AS1 has thousands of ASBRs, it becomes impractical to originate where AS1 has thousands of ASBRs, it becomes impractical to originate
different Flow Specification rules on each ASBR in AS1 based on which different Flow Specification rules on each ASBR in AS1 based on which
ASBR each dest-route is learned from. To make the situation more ASBR each dest-route is learned from. To make the situation more
tenable, the objective is to advertise all the Flow Specifications tenable, the objective is to advertise all the Flow Specifications
from the same route-controller. from the same route controller.
R1(AS1) --- RR(AS1) --- ASBR1(AS1) --- ASBR2(AS2) R1(AS1) --- RR(AS1) --- ASBR1(AS1) --- ASBR2(AS2)
| |
route-controller(AS1) route controller(AS1)
Figure 1 Figure 1
This document describes a modification to the [RFC8955] validation This document describes a modification to the validation procedure
procedure, allowing Flow Specification NLRIs to be originated from a described in [RFC8955], by allowing Flow Specification NLRIs to be
centralized BGP route controller located within the Local Domain and originated from a centralized BGP route controller located within the
not necessarily in the data forwarding path. While the proposed Local Domain and not necessarily in the data-forwarding path. While
modification cannot be used for inter-domain coordination of traffic the proposed modification cannot be used for inter-domain
filtering, it greatly simplifies distribution of intra-domain traffic coordination of traffic filtering, it greatly simplifies distribution
filtering policies within a Local Domain which has numerous border of intra-domain traffic filtering policies within a Local Domain that
routers having complex BGP policies. By relaxing the validation has numerous border routers having complex BGP policies. By relaxing
procedure for iBGP, the proposed modification allows Flow the validation procedure for iBGP, the proposed modification allows
Specifications to be distributed in a standard and scalable manner Flow Specifications to be distributed in a standard and scalable
throughout the Local Domain. manner throughout the Local Domain.
Throughout this document, some references are made to Throughout this document, some references are made to
AS_CONFED_SEQUENCE segments; see Sections 4.1 and 5. If AS_CONFED_SEQUENCE segments; see Sections 4.1 and 5. If
AS_CONFED_SET segments are also present in the AS_PATH, the same AS_CONFED_SET segments are also present in the AS_PATH, the same
considerations apply to them. Note, however, that the use of considerations apply to them. Note, however, that the use of
AS_CONFED_SET segments is not recommended [RFC6472]. Refer to AS_CONFED_SET segments is not recommended [RFC6472]. Refer to
[I-D.ietf-idr-deprecate-as-set-confed-set] as well. [CONFED-SET] as well.
4. Motivation 2. Definitions of Terms Used in This Memo
Local Domain: the local AS or the local confederation of ASes
[RFC5065].
eBGP: BGP peering to a router not within the Local Domain.
iBGP: Both classic iBGP and any form of eBGP peering with a router
within the same confederation (i.e., iBGP peering is a peering
that is not eBGP as defined above).
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
3. Motivation
Step (b) of the validation procedure in Section 6 of [RFC8955] is Step (b) of the validation procedure in Section 6 of [RFC8955] is
defined with the underlying assumption that the Flow Specification defined with the underlying assumption that the Flow Specification
NLRI traverses the same path, in the inter-domain and intra-domain NLRI traverses the same path, in the inter-domain and intra-domain
route distribution graph, as that of the longest-match unicast route route distribution graph, as that of the longest-match unicast route
for the destination prefix embedded in the Flow Specification. for the destination prefix embedded in the Flow Specification.
In the case of inter-domain traffic filtering, the Flow Specification In the case of inter-domain traffic filtering, the Flow Specification
originator at the egress border routers of an AS (e.g. RTR-D and originator at the egress border routers of an AS (e.g., RTR-D and
RTR-E of AS1 in Figure 2) matches the eBGP neighbor that advertised RTR-E of AS1 in Figure 2) matches the eBGP neighbor that advertised
the longest match destination prefix (see RTR-F and RTR-G the longest match destination prefix (see RTR-F and RTR-G,
respectively in Figure 2). respectively, in Figure 2).
Similarly, at the upstream routers of an AS (see RTR-A and RTR-B of Similarly, at the upstream routers of an AS (see RTR-A and RTR-B of
AS1 in Figure 2), the Flow Specification originator matches the AS1 in Figure 2), the Flow Specification originator matches the
egress iBGP border routers that had advertised the unicast route for egress iBGP border routers that had advertised the unicast route for
the best-match destination prefix (see RTR-D and RTR-E respectively the best-match destination prefix (see RTR-D and RTR-E, respectively,
in Figure 2). This is true even when upstream routers select paths in Figure 2). This is true even when upstream routers select paths
from different egress border routers as best route based upon IGP from different egress border routers as the best route based upon IGP
distance. For example, in Figure 2: distance. For example, in Figure 2:
RTR-A chooses RTR-D as the best route RTR-A chooses RTR-D as the best route
RTR-B chooses RTR-E as the best route RTR-B chooses RTR-E as the best route
/ - - - - - - - - - - - - - - / - - - - - - - - - - - - - -
| AS1 | | AS1 |
+-------+ +-------+ +-------+ +-------+
| | | | | | | | | | | |
| RTR-A | | RTR-B | | RTR-A | | RTR-B |
| | | | | | | | | | | |
+-------+ +-------+ +-------+ +-------+
| \ / | | \ / |
iBGP \ / iBGP iBGP \ / iBGP
| \ / | | \ / |
skipping to change at page 6, line 40 skipping to change at line 241
- - -|- - - - - - - - -|- - -/ - - -|- - - - - - - - -|- - -/
| | | | | | | |
+-------+ +-------+ +-------+ +-------+
| | | | | | | | | | | |
| RTR-F | | RTR-G | | RTR-F | | RTR-G |
| | | | | | | | | | | |
+-------+ +-------+ +-------+ +-------+
| AS2 | | AS2 |
/ - - - - - - - - - - - - - - / - - - - - - - - - - - - - -
Figure 2 Figure 2
It is highly desirable that mechanisms exist to protect each AS It is highly desirable that mechanisms exist to protect each AS
independently from network security attacks using the BGP Flow independently from network security attacks using the BGP Flow
Specification NLRI for intra-AS purposes only. Network operators Specification NLRI for intra-AS purposes only. Network operators
often deploy a dedicated Security Operations Center (SOC) within often deploy a dedicated Security Operations Center (SOC) within
their AS to monitor and detect such security attacks. To mitigate their AS to monitor and detect such security attacks. To mitigate
attacks within an AS, operators require the ability to originate attacks within an AS, operators require the ability to originate
intra-AS Flow Specification NLRIs from a central BGP route controller intra-AS Flow Specification NLRIs from a central BGP route controller
that is not within the data forwarding plane. In this way, operators that is not within the data forwarding plane. In this way, operators
can direct border routers within their AS with specific attack can direct border routers within their AS with specific attack-
mitigation actions (drop the traffic, forward to a pipe-cleaning mitigation actions (drop the traffic, forward to a pipe-cleaning
location, etc.). location, etc.).
In addition, an operator may extend the requirements above for a In addition, an operator may extend the requirements above for a
group of ASes via policy. This is described below in Section (b.2.3) group of ASes via policy. This is described in Section 4.1 (b.2.3)
of the validation procedure. of the validation procedure.
A central BGP route controller that originates a Flow Specification A central BGP route controller that originates Flow Specification
NLRI should be able to avoid the complexity of having to determine NLRI should be able to avoid the complexity of having to determine
the egress border router whose path was chosen as the best for each the egress border router whose path was chosen as the best for each
of its neighbors. When a central BGP route controller originates a of its neighbors. When a central BGP route controller originates
Flow Specification NLRI, the rest of the speakers within the AS will Flow Specification NLRI, the rest of the speakers within the AS will
see the BGP route controller as the originator of the Flow see the BGP route controller as the originator of the Flow
Specification in terms of the validation procedure rules. Thus, it Specification in terms of the validation procedure rules. Thus, it
is necessary to modify step (b) of the [RFC8955] validation procedure is necessary to modify step (b) of the validation procedure described
such that an iBGP peer that is not within the data forwarding plane in [RFC8955] such that an iBGP peer that is not within the data
may originate Flow Specification NLRIs. forwarding plane may originate Flow Specification NLRIs.
5. Revised Validation Procedure 4. Revised Validation Procedure
5.1. Revision of Route Feasibility 4.1. Revision of Route Feasibility
Step (b) of the validation procedure specified in Section 6 of Step (b) of the validation procedure specified in Section 6 of
[RFC8955] is redefined as follows: [RFC8955] is redefined as follows:
b) One of the following conditions MUST hold true: | b) One of the following conditions MUST hold true:
|
1. The originator of the Flow Specification matches the | 1. The originator of the Flow Specification matches the
originator of the best-match unicast route for the destination | originator of the best-match unicast route for the
prefix embedded in the Flow Specification (this is the unicast | destination prefix embedded in the Flow Specification (this
route with the longest possible prefix length covering the | is the unicast route with the longest possible prefix
destination prefix embedded in the Flow Specification). | length covering the destination prefix embedded in the Flow
| Specification).
2. The AS_PATH attribute of the Flow Specification is empty or |
contains only an AS_CONFED_SEQUENCE segment [RFC5065]. | 2. The AS_PATH attribute of the Flow Specification is empty or
| contains only an AS_CONFED_SEQUENCE segment [RFC5065].
1. This condition SHOULD be enabled by default. |
| 1. This condition SHOULD be enabled by default.
2. This condition MAY be disabled by explicit configuration |
on a BGP speaker. | 2. This condition MAY be disabled by explicit
| configuration on a BGP speaker.
3. As an extension to this rule, a given non-empty AS_PATH |
(besides AS_CONFED_SEQUENCE segments) MAY be permitted by | 3. As an extension to this rule, a given non-empty AS_PATH
policy. | (besides AS_CONFED_SEQUENCE segments) MAY be permitted
| by policy.
Explanation: Explanation:
Receiving either an empty AS_PATH or one with only an Receiving either an empty AS_PATH or one with only an
AS_CONFED_SEQUENCE segment indicates that the Flow Specification AS_CONFED_SEQUENCE segment indicates that the Flow Specification
was originated inside the Local Domain. was originated inside the Local Domain.
With the above modification to the [RFC8955] validation procedure, With the above modification to the [RFC8955] validation procedure,
a BGP peer within the Local Domain that is not within the data a BGP peer within the Local Domain that is not within the data-
forwarding path can originate a Flow Specification. forwarding path can originate a Flow Specification.
Disabling the new condition above (b.2.2) could be a good practice Disabling the new condition above (see step b.2.2 in Section 4.1)
if the operator knew with certainty that a Flow Specification could be a good practice if the operator knew with certainty that
would not be originated inside the Local Domain. An additional a Flow Specification would not be originated inside the Local
case would be if it was known for a fact that only the right Domain. An additional case would be if it was known for a fact
egress border routers (i.e. those that were also egress border that only the right egress border routers (i.e., those that were
routers for the best routes) were originating a Flow Specification also egress border routers for the best routes) were originating
NLRI. Flow Specification NLRI.
Also, policy may be useful to permit a specific set of non-empty Also, policy may be useful to permit a specific set of non-empty
AS_PATHs (b.2.3). For example, it could validate a Flow AS_PATHs (see step b.2.3 in Section 4.1). For example, it could
Specification whose AS_PATH contained only an AS_SEQUENCE segment validate a Flow Specification whose AS_PATH contained only an
with ASes that were all known to belong to the same administrative AS_SEQUENCE segment with ASes that were all known to belong to the
domain. same administrative domain.
5.2. Revision of AS_PATH Validation 4.2. Revision of AS_PATH Validation
Section 6 of [RFC8955] states: Section 6 of [RFC8955] states:
BGP implementations MUST also enforce that the AS_PATH attribute | BGP implementations MUST also enforce that the AS_PATH
of a route received via the External Border Gateway Protocol | attribute of a route received via the External Border Gateway
(eBGP) contains the neighboring AS in the left-most position of | Protocol (eBGP) contains the neighboring AS in the left-most
the AS_PATH attribute. While this rule is optional in the BGP | position of the AS_PATH attribute. While this rule is optional
specification, it becomes necessary to enforce it here for | in the BGP specification, it becomes necessary to enforce it
security reasons. | here for security reasons.
This rule prevents the exchange of BGP Flow Specification NLRIs at This rule prevents the exchange of BGP Flow Specification NLRIs at
Internet exchanges with BGP route servers, which by design don't Internet exchanges with BGP route servers, which by design don't
insert their own AS number into the AS_PATH (Section 2.2.2.1 of insert their own AS number into the AS_PATH (Section 2.2.2.1 of
[RFC7947]). Therefore, this document also redefines the [RFC8955] [RFC7947]). Therefore, this document also redefines the [RFC8955]
AS_PATH validation procedure referenced above as follows: AS_PATH validation procedure referenced above as follows:
BGP Flow Specification implementations MUST enforce that the AS in | BGP Flow Specification implementations MUST enforce that the AS
the left-most position of the AS_PATH attribute of a Flow | in the left-most position of the AS_PATH attribute of a Flow
Specification route received via the External Border Gateway | Specification route received via the External Border Gateway
Protocol (eBGP) matches the AS in the left-most position of the | Protocol (eBGP) matches the AS in the left-most position of the
AS_PATH attribute of the best-match unicast route for the | AS_PATH attribute of the best-match unicast route for the
destination prefix embedded in the Flow Specification NLRI. | destination prefix embedded in the Flow Specification NLRI.
Explanation: Explanation:
For clarity, the AS in the left-most position of the AS_PATH means For clarity, the AS in the left-most position of the AS_PATH means
the AS that was last added to an AS_SEQUENCE. the AS that was last added to an AS_SEQUENCE.
This proposed modification enables the exchange of BGP Flow This proposed modification enables the exchange of BGP Flow
Specification NLRIs at Internet exchanges with BGP route servers Specification NLRIs at Internet exchanges with BGP route servers
while at the same time, for security reasons, prevents an eBGP while at the same time, for security reasons, prevents an eBGP
peer from advertising an inter-domain Flow Specification for a peer from advertising an inter-domain Flow Specification for a
destination prefix that it does not provide reachability destination prefix that it does not provide reachability
information for. information for.
Comparing only the left-most AS in the AS-PATH for eBGP learned Comparing only the left-most AS in the AS-PATH for eBGP-learned
Flow Specification NLRIs is roughly equivalent to checking the Flow Specification NLRIs is roughly equivalent to checking the
neighboring AS. If the peer is a route server, security is neighboring AS. If the peer is a route server, security is
necessarily weakened for the Flow Specification NLRI, as it is for necessarily weakened for the Flow Specification NLRI, as it is for
any unicast route advertised from a route server. An example is any unicast route advertised from a route server. An example is
discussed in the Security Considerations Section. discussed in the Security Considerations section.
Redefinition of this AS_PATH validation rule for a Flow Redefinition of this AS_PATH validation rule for a Flow
Specification does not mean that the original rule in [RFC8955] Specification does not mean that the original rule in [RFC8955]
cannot be enforced as well. Its enforcement remains optional per cannot be enforced as well. Its enforcement remains optional per
Section 6.3 of [RFC4271]. That is, a BGP speaker can enforce the Section 6.3 of [RFC4271]. That is, a BGP speaker can enforce the
first AS in the AS_PATH to be the same as the neighbor AS for a first AS in the AS_PATH to be the same as the neighbor AS for a
route belonging to any Address Family (including Flow route belonging to any Address Family (including Flow
Specification Address Family). If the BGP speaker peer is not a Specification Address Family). If the BGP speaker peer is not a
route server, when enforcing this optional rule, the security route server, when enforcing this optional rule, the security
characteristics are exactly equivalent to those specified in characteristics are exactly equivalent to those specified in
skipping to change at page 9, line 46 skipping to change at line 389
after all validations, the neighboring AS will be the same as the after all validations, the neighboring AS will be the same as the
left-most AS in the AS-PATH for the unicast route, and the left- left-most AS in the AS-PATH for the unicast route, and the left-
most AS in the AS_PATH for the unicast route will be the same as most AS in the AS_PATH for the unicast route will be the same as
the left-most AS in the AS_PATH for the Flow Specification NLRI. the left-most AS in the AS_PATH for the Flow Specification NLRI.
Therefore, the neighboring AS will be the same as the left-most AS Therefore, the neighboring AS will be the same as the left-most AS
in the AS_PATH for the Flow Specification NLRI (as the original in the AS_PATH for the Flow Specification NLRI (as the original
AS_PATH validation rule in [RFC8955] states). AS_PATH validation rule in [RFC8955] states).
Note, however, that not checking the full AS_PATH allows any rogue Note, however, that not checking the full AS_PATH allows any rogue
or misconfigured AS the ability to originate undesired Flow or misconfigured AS the ability to originate undesired Flow
Specifications. This is a BGP security threat, already present on Specifications. This is a BGP security threat, already present in
[RFC8955], but out of the scope of this document. [RFC8955], but out of the scope of this document.
Using the new rule to validate a Flow Specification route received Using the new rule to validate a Flow Specification route received
from a peer belonging to the same Local Domain is out of the scope from a peer belonging to the same Local Domain is out of the scope
of this document. Note that although it's possible, its utility of this document. Note that although it's possible, its utility
is dubious. Although it is conceivable that a router in the same is dubious. Although it is conceivable that a router in the same
Local Domain could send a rogue update, only eBGP risk is Local Domain could send a rogue update, only eBGP risk is
considered within this document (in the same spirit as the considered within this document (in the same spirit as the
aforementioned AS_PATH validation in [RFC4271]). aforementioned AS_PATH validation in [RFC4271]).
6. Topology Considerations 5. Topology Considerations
[RFC8955] indicates that the originator may refer to the originator [RFC8955] indicates that the originator may refer to the originator
path attribute (ORIGINATOR_ID) or (if the attribute is not present) path attribute (ORIGINATOR_ID) or (if the attribute is not present)
the transport address of the peer from which the BGP speaker received the transport address of the peer from which the BGP speaker received
the update. If the latter applies, a network should be designed so the update. If the latter applies, a network should be designed so
it has a congruent topology amongst unicast routes and Flow it has a congruent topology amongst unicast routes and Flow
Specification routes. By congruent topology, it is understood that Specification routes. By congruent topology, it is understood that
the two routes (i.e. the Flow Specification route and its best-match the two routes (i.e., the Flow Specification route and its best-match
unicast route) are learned from the same peer across the AS. That unicast route) are learned from the same peer across the AS. That
would likely not be true, for instance, if some peers only negotiated would likely not be true, for instance, if some peers only negotiated
one Address Family or if each Address Family peering had a different one Address Family or if each Address Family peering had a different
set of policies. Failing to have a congruent topology would result set of policies. Failing to have a congruent topology would result
in step (b.1) of the validation procedure to fail. in step (b.1) of the validation procedure to fail.
With the additional second condition (b.2) in the validation With the additional second condition (b.2) in the validation
procedure, non-congruent topologies are supported within the Local procedure, non-congruent topologies are supported within the Local
Domain if the Flow Specification is originated within the Local Domain if the Flow Specification is originated within the Local
Domain. Domain.
Explanation: Explanation:
Consider the following scenarios of a non-congruent topology Consider the following scenarios of a non-congruent topology
without the second condition (b.2) being added to the validation without the second condition (b.2) being added to the validation
procedure: procedure:
1. Consider a topology with two BGP speakers with two iBGP 1. Consider a topology with two BGP speakers with two iBGP
peering sessions between them, one for unicast and one for peering sessions between them, one for unicast and one for
Flow Specification. This is a non-congruent topology. Let's Flow Specification. This is a non-congruent topology. Let's
assume that the ORIGINATOR_ID attribute was not received (e.g. assume that the ORIGINATOR_ID attribute was not received
a route reflector receiving routes from its clients). In this (e.g., a route reflector receiving routes from its clients).
case, the Flow Specification validation procedure will fail In this case, the Flow Specification validation procedure will
because of the first condition (b.1). fail because of the first condition (b.1).
2. Consider a confederation of ASes with local AS X and local AS 2. Consider a confederation of ASes with local AS X and local AS
Y (both belonging to the same Local Domain), and a given BGP Y (both belonging to the same Local Domain), and a given BGP
speaker X1 inside local AS X. The ORIGINATOR_ID attribute is speaker X1 inside local AS X. The ORIGINATOR_ID attribute is
not advertised when propagating routes across local ASes. not advertised when propagating routes across local ASes.
Let's assume the Flow Specification route is received from Let's assume the Flow Specification route is received from
peer Y1 and the best-match unicast route is received from peer peer Y1 and the best-match unicast route is received from peer
Y2. Both peers belong to local AS Y. The Flow Specification Y2. Both peers belong to local AS Y. The Flow Specification
validation procedure will also fail because of the first validation procedure will also fail because of the first
condition (b.1). condition (b.1).
Consider now that the second conditon (b.2) is added to the Consider now that the second condition (b.2) is added to the
validation procedure. In the scenarios above, if Flow validation procedure. In the scenarios above, if Flow
Specifications are originated in the same Local Domain, the Specifications are originated in the same Local Domain, the
AS_PATH will be empty or contain only an AS_CONFED_SEQUENCE AS_PATH will be empty or contain only an AS_CONFED_SEQUENCE
segment. Condition (b.2) will evaluate to true. Therefore, using segment. Condition (b.2) will evaluate to true. Therefore, using
the second condition (b.2), as defined by this document, the second condition (b.2), as defined by this document,
guarantees that the overall validation procedure will pass. Thus, guarantees that the overall validation procedure will pass. Thus,
non-congruent topologies are supported if the Flow Specification non-congruent topologies are supported if the Flow Specification
is originated in the same Local Domain. is originated in the same Local Domain.
Flow Specifications originated in a different Local Domain sill Flow Specifications originated in a different Local Domain sill
need a congruent topology. The reason is that in a non-congruent need a congruent topology. The reason is that in a non-congruent
topology the second condition (b.2) evaluates to false and only topology, the second condition (b.2) evaluates to false and only
the first condition (b.1) is evaluated. the first condition (b.1) is evaluated.
7. IANA Considerations 6. IANA Considerations
This document includes no request to IANA. This document has no IANA actions.
8. Security Considerations 7. Security Considerations
This document updates the route feasibility validation procedures for This document updates the route feasibility validation procedures for
Flow Specifications learned from iBGP peers and through route Flow Specifications learned from iBGP peers and through route
servers. This change is in line with the procedures described in servers. This change is in line with the procedures described in
[RFC8955] and, thus, security characteristics remain essentially [RFC8955] and, thus, security characteristics remain essentially
equivalent to the existing security properties of BGP unicast equivalent to the existing security properties of BGP unicast
routing, except as detailed below. routing, except as detailed below.
The security considerations discussed in [RFC8955] apply to this The security considerations discussed in [RFC8955] apply to this
specification as well. specification as well.
This document makes the original AS_PATH validation rule (Section 6.3 This document makes the original AS_PATH validation rule (Section 6.3
of [RFC4271]) again OPTIONAL (Section 5.2) for Flow Specification of [RFC4271]) again OPTIONAL (Section 4.2) for Flow Specification
Address Family (the rule is no longer mandatory as had been specified Address Family (the rule is no longer mandatory as had been specified
by [RFC8955]). If that original rule is not enforced for Flow by [RFC8955]). If that original rule is not enforced for Flow
Specification it may introduce some new security risks. A speaker in Specification, it may introduce some new security risks. A speaker
AS X peering with a route server could advertise a rogue Flow in AS X peering with a route server could advertise a rogue Flow
Specification route whose first AS in AS_PATH was Y. Assume Y is the Specification route whose first AS in AS_PATH was Y. Assume Y is the
first AS in the AS_PATH of the best-match unicast route. When the first AS in the AS_PATH of the best-match unicast route. When the
route server advertises the Flow Specification to a speaker in AS Z, route server advertises the Flow Specification to a speaker in AS Z,
it will be validated by that speaker. This risk is impossible to it will be validated by that speaker. This risk is impossible to
prevent if the Flow Specification route is received from a route prevent if the Flow Specification route is received from a route
server peer. If configuration (or other means beyond the scope of server peer. If configuration (or other means beyond the scope of
this document) indicates that the peer is not a route server, that this document) indicates that the peer is not a route server, that
optional rule SHOULD be enforced, for unicast and/or for Flow optional rule SHOULD be enforced for unicast and/or for Flow
Specification routes (as discussed in the AS_PATH Validation Section, Specification routes (as discussed in the Revision of AS_PATH
just enforcing it in one of those Addres Families is enough). If the Validation section, just enforcing it in one of those Address
indication is that the peer is not a route server or there is no Families is enough). If the indication is that the peer is not a
conclusive indication, that optional rule SHOULD NOT be enforced. route server or there is no conclusive indication, that optional rule
SHOULD NOT be enforced.
A route server itself may be in a good position to enforce the A route server itself may be in a good position to enforce the
AS_PATH validation rule described in the previous paragraph. If it AS_PATH validation rule described in the previous paragraph. If it
is known that a route server is not peering with any other route is known that a route server is not peering with any other route
server, it can enforce the AS_PATH validation rule across all its server, it can enforce the AS_PATH validation rule across all its
peers. peers.
BGP updates learned from iBGP peers are considered trusted, so the BGP updates learned from iBGP peers are considered trusted, so the
Traffic Flow Specifications contained in BGP updates are also Traffic Flow Specifications contained in BGP updates are also
considered trusted. Therefore, it is not required to validate that considered trusted. Therefore, it is not required to validate that
the originator of an intra-domain Traffic Flow Specification matches the originator of an intra-domain Traffic Flow Specification matches
the originator of the best-match unicast route for the destination the originator of the best-match unicast route for the destination
prefix embedded in that Flow Specification. Note that this prefix embedded in that Flow Specification. Note that this
trustworthiness consideration is not absolute and the new possibility trustworthiness consideration is not absolute and the new possibility
that an iBGP speaker could send a rogue Flow Specification is that an iBGP speaker could send a rogue Flow Specification is
introduced. introduced.
The changes in Section 5.1 don't affect the validation procedures for The changes in Section 4.1 don't affect the validation procedures for
eBGP-learned routes. eBGP-learned routes.
It's worth mentioning that allowing (or making operationally It's worth mentioning that allowing (or making operationally
feasible) to originate Flow Specifications within the Local Domain feasible) Flow Specifications to originate within the Local Domain
makes the network overall more secure. Flow Specifications can be makes the network overall more secure. Flow Specifications can be
originated more readily during attacks and improve the stability and originated more readily during attacks and improve the stability and
security of the network. security of the network.
9. Acknowledgements 8. References
The authors would like to thank Han Nguyen for his direction on this
work as well as Waqas Alam, Keyur Patel, Robert Raszuk, Eric Rosen,
Shyam Sethuram, Susan Hares, Alvaro Retana and John Scudder for their
review comments.
10. References
10.1. Normative References 8.1. Normative References
[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>.
skipping to change at page 13, line 29 skipping to change at line 558
[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>.
[RFC8955] Loibl, C., Hares, S., Raszuk, R., McPherson, D., and M. [RFC8955] Loibl, C., Hares, S., Raszuk, R., McPherson, D., and M.
Bacher, "Dissemination of Flow Specification Rules", Bacher, "Dissemination of Flow Specification Rules",
RFC 8955, DOI 10.17487/RFC8955, December 2020, RFC 8955, DOI 10.17487/RFC8955, December 2020,
<https://www.rfc-editor.org/info/rfc8955>. <https://www.rfc-editor.org/info/rfc8955>.
10.2. Informative References 8.2. Informative References
[I-D.ietf-idr-deprecate-as-set-confed-set] [CONFED-SET]
Kumari, W., Sriram, K., Hannachi, L., and J. Haas, Kumari, W., Sriram, K., Hannachi, L., and J. Haas,
"Deprecation of AS_SET and AS_CONFED_SET in BGP", draft- "Deprecation of AS_SET and AS_CONFED_SET in BGP", Work in
ietf-idr-deprecate-as-set-confed-set-05 (work in Progress, Internet-Draft, draft-ietf-idr-deprecate-as-set-
progress), March 2021. confed-set-05, 12 March 2021,
<https://datatracker.ietf.org/doc/html/draft-ietf-idr-
deprecate-as-set-confed-set-05>.
[RFC6472] Kumari, W. and K. Sriram, "Recommendation for Not Using [RFC6472] Kumari, W. and K. Sriram, "Recommendation for Not Using
AS_SET and AS_CONFED_SET in BGP", BCP 172, RFC 6472, AS_SET and AS_CONFED_SET in BGP", BCP 172, RFC 6472,
DOI 10.17487/RFC6472, December 2011, DOI 10.17487/RFC6472, December 2011,
<https://www.rfc-editor.org/info/rfc6472>. <https://www.rfc-editor.org/info/rfc6472>.
Acknowledgements
The authors would like to thank Han Nguyen for his direction on this
work as well as Waqas Alam, Keyur Patel, Robert Raszuk, Eric Rosen,
Shyam Sethuram, Susan Hares, Alvaro Retana, and John Scudder for
their review and comments.
Authors' Addresses Authors' Addresses
James Uttaro James Uttaro
AT&T AT&T
200 S. Laurel Ave 200 S. Laurel Ave
Middletown, NJ 07748 Middletown, NJ 07748
USA United States of America
Email: ju1738@att.com Email: ju1738@att.com
Juan Alcaide Juan Alcaide
Cisco Cisco
Research Triangle Park
7100 Kit Creek Road 7100 Kit Creek Road
Research Triangle Park, NC 27709 Morrisville, NC 27709
USA United States of America
Email: jalcaide@cisco.com Email: jalcaide@cisco.com
Clarence Filsfils Clarence Filsfils
Cisco Cisco
Email: cf@cisco.com Email: cf@cisco.com
David Smith David Smith
Cisco Cisco
111 Wood Ave South 111 Wood Ave South
Iselin, NJ 08830 Iselin, NJ 08830
USA United States of America
Email: djsmith@cisco.com Email: djsmith@cisco.com
Pradosh Mohapatra Pradosh Mohapatra
Sproute Networks Sproute Networks
Email: mpradosh@yahoo.com Email: mpradosh@yahoo.com
 End of changes. 69 change blocks. 
207 lines changed or deleted 210 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/