draft-ietf-idr-bgp-flowspec-oid-07.txt   draft-ietf-idr-bgp-flowspec-oid-08.txt 
Network Working Group J. Uttaro Network Working Group J. Uttaro
Internet-Draft AT&T Internet-Draft AT&T
Updates: 5575 (if approved) J. Alcaide Updates: 5575bis (if approved) J. Alcaide
Intended status: Standards Track C. Filsfils Intended status: Standards Track C. Filsfils
Expires: May 9, 2019 D. Smith Expires: November 10, 2019 D. Smith
Cisco Cisco
P. Mohapatra P. Mohapatra
Sproute Networks Sproute Networks
November 5, 2018 May 9, 2019
Revised Validation Procedure for BGP Flow Specifications Revised Validation Procedure for BGP Flow Specifications
draft-ietf-idr-bgp-flowspec-oid-07 draft-ietf-idr-bgp-flowspec-oid-08
Abstract Abstract
This document describes a modification to the validation procedure This document describes a modification to the validation procedure
defined in RFC 5575 for the dissemination of BGP flow specifications. defined in RFC 5575bis for the dissemination of BGP flow
RFC 5575 requires that the originator of the flow specification specifications. RFC 5575bis requires that the originator of the flow
matches the originator of the best-match unicast route for the specification matches the originator of the best-match unicast route
destination prefix embedded in the flow specification. This allows for the destination prefix embedded in the flow specification. This
only BGP speakers within the data forwarding path (such as autonomous allows only BGP speakers within the data forwarding path (such as
system border routers) to originate BGP flow specifications. Though autonomous system border routers) to originate BGP flow
it is possible to disseminate such flow specifications directly from specifications. Though it is possible to disseminate such flow
border routers, it may be operationally cumbersome in an autonomous specifications directly from border routers, it may be operationally
system with a large number of border routers having complex BGP cumbersome in an autonomous system with a large number of border
policies. The modification proposed herein enables flow routers having complex BGP policies. The modification proposed
specifications to be originated from a centralized BGP route herein enables flow specifications to be originated from a
controller. centralized BGP route controller.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
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 May 9, 2019. This Internet-Draft will expire on November 10, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2019 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
skipping to change at page 2, line 40 skipping to change at page 2, line 40
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8
1. Requirements Language 1. 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", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
2. Motivation 2. Motivation
Step (a) of the validation procedure in [RFC5575], section 6 is Step (a) of the validation procedure in [RFC5575bis], section 6 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, for example, the flow In the case of inter-domain traffic filtering, for example, the flow
specification originator at the egress border routers of ASN1 (RTR-D specification originator at the egress border routers of ASN1 (RTR-D
and RTR-E in figure 1) matches the EBGP neighbor that advertised the and RTR-E in figure 1) matches the EBGP neighbor that advertised the
longest match destination prefix (RTR-F and RTR-G respectively). longest match destination prefix (RTR-F and RTR-G respectively).
Similarly, at the ingress border routers of ASN1 (RTR-A and RTR-B in Similarly, at the ingress border routers of ASN1 (RTR-A and RTR-B in
skipping to change at page 4, line 17 skipping to change at page 4, line 17
central BGP route controller that is not within the data forwarding central BGP route controller that is not within the data forwarding
plane. In this way, operators can direct border routers within their plane. In this way, operators can direct border routers within their
ASN with specific attack mitigation actions (drop the traffic, ASN with specific attack mitigation actions (drop the traffic,
forward to a clean-pipe center, etc.). To originate a flow forward to a clean-pipe center, etc.). To originate a flow
specification NLRI, a central BGP route controller must set itself as specification NLRI, a central BGP route controller must set itself as
the originator in the flowspec NLRI. This is necessary given the the originator in the flowspec NLRI. This is necessary given the
route controller is originating the flow specification not reflecting route controller is originating the flow specification not reflecting
it, and to avoid the complexity of having to determine the egress it, and to avoid the complexity of having to determine the egress
border router whose path was chosen as the best in each of the border router whose path was chosen as the best in each of the
ingress border routers. It thus becomes necessary to modify step (a) ingress border routers. It thus becomes necessary to modify step (a)
of the [RFC5575] validation procedure such that an IBGP peer that is of the [RFC5575bis] validation procedure such that an IBGP peer that
not within the data forwarding plane may originate flow specification is not within the data forwarding plane may originate flow
NLRIs. specification NLRIs.
3. Introduction 3. Introduction
[RFC5575] defined a new BGP capability that can be used to distribute [RFC5575bis] defined a new BGP capability that can be used to
traffic flow specifications amongst BGP speakers in support of distribute traffic flow specifications amongst BGP speakers in
traffic filtering. The primary intention of [RFC5575] is to enable support of traffic filtering. The primary intention of [RFC5575bis]
downstream autonomous systems to signal traffic filtering policies to is to enable downstream autonomous systems to signal traffic
upstream autonomous systems. In this way, traffic is filtered closer filtering policies to upstream autonomous systems. In this way,
to the source and the upstream autonomous system(s) avoid carrying traffic is filtered closer to the source and the upstream autonomous
the traffic to the downstream autonomous system only to be discarded. system(s) avoid carrying the traffic to the downstream autonomous
[RFC5575] also enables more granular traffic filtering based upon system only to be discarded. [RFC5575bis] also enables more granular
upper layer protocol information (e.g., protocol port numbers) as traffic filtering based upon upper layer protocol information (e.g.,
opposed to coarse IP destination prefix-based filtering. Flow protocol port numbers) as opposed to coarse IP destination prefix-
specification NLRIs received from a BGP peer are subject to validity based filtering. Flow specification NLRIs received from a BGP peer
checks before being considered feasible and subsequently installed are subject to validity checks before being considered feasible and
within the respective Adj-RIB-In. The validation procedure defined subsequently installed within the respective Adj-RIB-In. The
within [RFC5575] requires that the originator of the flow validation procedure defined within [RFC5575bis] requires that the
specification NLRI matches the originator of the best-match unicast originator of the flow specification NLRI matches the originator of
route for the destination prefix embedded in the flow specification. the best-match unicast route for the destination prefix embedded in
This allows only BGP speakers [RFC4271] within the data forwarding the flow specification. This allows only BGP speakers [RFC4271]
path (such as autonomous system border routers) to originate BGP flow within the data forwarding path (such as autonomous system border
specification NLRIs. Though it is possible to disseminate such flow routers) to originate BGP flow specification NLRIs. Though it is
specification NLRIs directly from border routers, it may be possible to disseminate such flow specification NLRIs directly from
operationally cumbersome in an autonomous system with a large number border routers, it may be operationally cumbersome in an autonomous
of border routers having complex BGP policies. This document system with a large number of border routers having complex BGP
describes a modification to the [RFC5575] validation procedure policies. This document describes a modification to the [RFC5575bis]
allowing flow specification NLRIs to be originated from a centralized validation procedure allowing flow specification NLRIs to be
BGP route controller within the local autonomous system that is not originated from a centralized BGP route controller within the local
in the data forwarding path. While the proposed modification cannot autonomous system that is not in the data forwarding path. While the
be used for inter-domain coordination of traffic filtering, it proposed modification cannot be used for inter-domain coordination of
greatly simplifies distribution of intra-domain traffic filtering traffic filtering, it greatly simplifies distribution of intra-domain
policies in an autonomous system with a large number of border traffic filtering policies in an autonomous system with a large
routers having complex BGP policies. By relaxing the validation number of 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 an autonomous system. manner throughout an autonomous system.
4. Revised Validation Procedure 4. Revised Validation Procedure
Step (a) of the validation procedure specified in [RFC5575], section Step (a) of the validation procedure specified in [RFC5575bis],
6 is redefined as follows: section 6 is redefined as follows:
a. One of the following conditions MUST hold true. a. One of the following conditions MUST hold true.
* The originator of the flow specification matches the * 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 destination
prefix embedded in the flow specification. prefix embedded in the flow specification.
* The AS_PATH attribute of the flow specification does not * The AS_PATH attribute of the flow specification does not
contain AS_SET and/or AS_SEQUENCE segments. contain AS_SET and/or AS_SEQUENCE segments.
An AS_PATH without AS_SET and/or AS_SEQUENCE segments indicates that An AS_PATH without AS_SET and/or AS_SEQUENCE segments indicates that
the flow specification was originated inside the local AS [RFC4271] the flow specification was originated inside the local AS [RFC4271]
or inside the local confederation (in the case that the local AS or inside the local confederation (in the case that the local AS
belongs to a confederation of ASes) [RFC5065]. With this belongs to a confederation of ASes) [RFC5065]. With this
modification to the [RFC5575] validation procedure, it is now modification to the [RFC5575bis] validation procedure, it is now
possible for an IBGP peer that is not within the data forwarding path possible for an IBGP peer that is not within the data forwarding path
to originate flow specification NLRIs. This applies whether the AS to originate flow specification NLRIs. This applies whether the AS
belongs or not to a confederation of ASes. Checking the (newly belongs or not to a confederation of ASes. Checking the (newly
introduced) second condition above MAY be disabled by configuration introduced) second condition above MAY be disabled by configuration
on a BGP speaker. However, it SHOULD be enabled by default. on a BGP speaker. However, it SHOULD be enabled by default.
Disabling the condition may be a good practice when the administrator Disabling the condition may be a good practice when the administrator
knows with certainty that there are not flow specification NLRI knows with certainty that there are not flow specification NLRI
originated inside the local AS (or local confederation). The default originated inside the local AS (or local confederation). The default
behavior is thus to validate an empty AS_PATH. In this context, an behavior is thus to validate an empty AS_PATH. In this context, an
empty AS_PATH means that it does not have AS_SET and/or AS_SEQUENCE empty AS_PATH means that it does not have AS_SET and/or AS_SEQUENCE
segments. Optionally, an implementation MAY also validate a specific segments. Optionally, an implementation MAY also validate a specific
non-empty AS_PATH. For instance, it could validate a flowspec NLRI non-empty AS_PATH. For instance, it could validate a flowspec NLRI
whose AS_PATH contains only an AS_SEQUENCE of ASes known (via whose AS_PATH contains only an AS_SEQUENCE of ASes known (via
configuration) to belong to the same administrative domain. configuration) to belong to the same administrative domain.
Further, [RFC5575] states that "BGP (flow specification) Further, [RFC5575bis] states that "BGP (flow specification)
implementations MUST also enforce that AS_PATH attribute of a route implementations MUST also enforce that AS_PATH attribute of a route
received via the External Border Gateway Protocol (EBGP) contains the received via the External Border Gateway Protocol (EBGP) contains the
neighboring AS in the left-most position of the AS_PATH attribute". neighboring AS in the left-most position of the AS_PATH attribute".
This rule is not valid for all topologies. For example, it prevents This rule is not valid for all topologies. For example, it prevents
the exchange of BGP flow specification NLRIs at Internet exchanges the exchange of BGP flow specification NLRIs at Internet exchanges
with BGP route servers. Therefore, this document also redefines the with BGP route servers. Therefore, this document also redefines the
[RFC5575] AS_PATH validation procedure referenced above as follows: [RFC5575bis] AS_PATH validation procedure referenced above as
follows:
BGP flow specification implementations MUST enforce that the last AS BGP flow specification implementations MUST enforce that the last AS
added within the AS_PATH attribute of a EBGP learned flow added within the AS_PATH attribute of a EBGP learned flow
specification NLRI MUST match the last AS added within the AS_PATH specification NLRI MUST match the last AS added within the AS_PATH
attribute of the best-match unicast route for the destination prefix attribute of the best-match unicast route for the destination prefix
embedded in the flow specification. This proposed modification embedded in the flow specification. This proposed modification
enables the exchange of BGP flow specification NLRIs at Internet enables the exchange of BGP flow specification NLRIs at Internet
exchanges with BGP route servers while at the same time, for security exchanges with BGP route servers while at the same time, for security
reasons, prevents an EBGP peer from advertising an inter-domain flow reasons, prevents an EBGP peer from advertising an inter-domain flow
specification for a destination prefix that it does not provide specification for a destination prefix that it does not provide
skipping to change at page 6, line 34 skipping to change at page 6, line 34
specification does not embed a destination prefix component. The specification does not embed a destination prefix component. The
default behavior SHOULD be not to perform any validation procedure. default behavior SHOULD be not to perform any validation procedure.
Further, support for two-octet AS number space is out of the scope of Further, support for two-octet AS number space is out of the scope of
this document. this document.
In this context, AS_PATH attribute is defined as the reconstructed AS In this context, AS_PATH attribute is defined as the reconstructed AS
Path information (by combining AS_PATH and AS4_PATH attributes, if Path information (by combining AS_PATH and AS4_PATH attributes, if
the BGP speaker is a NEW speaker and receives the route from an OLD the BGP speaker is a NEW speaker and receives the route from an OLD
speaker), according to section 4.2.3 of [RFC6793]. speaker), according to section 4.2.3 of [RFC6793].
[RFC5575] references "the best-match unicast route for the [RFC5575bis] references "the best-match unicast route for the
destination prefix embedded in the flow specification". For clarity, destination prefix embedded in the flow specification". For clarity,
this route is defined hereby as the best path of the unicast network this route is defined hereby as the best path of the unicast network
that covers destination prefix embedded in the flow specification that covers destination prefix embedded in the flow specification
with the longer prefix-length. In other words, we consider only the with the longer prefix-length. In other words, we consider only the
best-match network and we do not consider unicast non-best paths best-match network and we do not consider unicast non-best paths
(even if it is received from the same peer than the flowspec route). (even if it is received from the same peer than the flowspec route).
Note that, per [RFC5575], originator may refer to the BGP Note that, per [RFC5575bis], originator may refer to the BGP
ORIGINATOR_ID attribute or the transport address of the peer from ORIGINATOR_ID attribute or the transport address of the peer from
which we received the update. If the later, a network must be which we received the update. If the later, a network must be
designed so it has a congruent topology. Otherwise, using two designed so it has a congruent topology. Otherwise, using two
peering sessions between the same pair of BGP speakers, one for peering sessions between the same pair of BGP speakers, one for
unicast and one for flowspec, will cause the flowspec validation unicast and one for flowspec, will cause the flowspec validation
procedure to fail. Consider, for example, the case where a BGP route procedure to fail. Consider, for example, the case where a BGP route
reflector receives the NLRIs from a route reflector client, thus not reflector receives the NLRIs from a route reflector client, thus not
receiving the ORIGINATOR_ID attribute. If the speaker belongs to a receiving the ORIGINATOR_ID attribute. If the speaker belongs to a
confederation [RFC5065] and we are receiving a flowspec route from confederation [RFC5065] and we are receiving a flowspec route from
different peers than its best match unicast route, the flowspec different peers than its best match unicast route, the flowspec
skipping to change at page 7, line 15 skipping to change at page 7, line 15
misconfiguration where flowspec address-family is not configured for misconfiguration where flowspec address-family is not configured for
a particular peering between different member-AS (but it is a particular peering between different member-AS (but it is
configured for unicast). Even if we receive the flowspec route via a configured for unicast). Even if we receive the flowspec route via a
redundant peer, we may receive the unicast route and the flowspec redundant peer, we may receive the unicast route and the flowspec
from different peers, and thus flowspec validation will fail. Thus, from different peers, and thus flowspec validation will fail. Thus,
with the (newly introduced) second condition above applied, with the (newly introduced) second condition above applied,
incongruent topologies are supported. incongruent topologies are supported.
Note that if the flowspec NLRI is learned from another AS (and thus Note that if the flowspec NLRI is learned from another AS (and thus
the AS_PATH is not empty), the original validation procedures defined the AS_PATH is not empty), the original validation procedures defined
in [RFC5575] still apply and incongruent topologies may cause in [RFC5575bis] still apply and incongruent topologies may cause
validation rules to fail. validation rules to fail.
5. IANA Considerations 5. IANA Considerations
This memo includes no request to IANA. This memo includes no request to IANA.
6. Security Considerations 6. Security Considerations
No new security issues are introduced by relaxing the validation No new security issues are introduced by relaxing the validation
procedure for IBGP learned flow specifications. With this proposal, procedure for IBGP learned flow specifications. With this proposal,
the security characteristics of BGP flow specifications remain the security characteristics of BGP flow specifications remain
equivalent to the existing security properties of BGP unicast equivalent to the existing security properties of BGP unicast
routing. Traffic flow specifications learned from IBGP peers are routing. Traffic flow specifications learned from IBGP peers are
trusted, hence, it is not required to validate that the originator of trusted, hence, 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 flow destination prefix. the best-match unicast route for the flow destination prefix.
Conversely, this proposal continues to enforce the validation Conversely, this proposal continues to enforce the validation
procedure for EBGP learned traffic flow specifications. In this way, procedure for EBGP learned traffic flow specifications. In this way,
the security properties of [RFC5575] are maintained such that an EBGP the security properties of [RFC5575bis] are maintained such that an
peer cannot cause a denial-of-service attack by advertising an inter- EBGP peer cannot cause a denial-of-service attack by advertising an
domain flow specification for a destination prefix that it does not inter-domain flow specification for a destination prefix that it does
provide reachability information for. not provide reachability information for.
7. Acknowledgements 7. Acknowledgements
The authors would like to thank Han Nguyen for his direction on this 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 work as well as Waqas Alam, Keyur Patel, Robert Raszuk, Eric Rosen
and Shyam Sethuram for their review comments. and Shyam Sethuram for their review comments.
8. Normative References 8. Normative References
[I-D.ietf-idr-rfc5575bis]
Hares, S., Loibl, C., Raszuk, R., McPherson, D., and M.
Bacher, "Dissemination of Flow Specification Rules",
draft-ietf-idr-rfc5575bis-14 (work in progress), April
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>.
[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>.
[RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route [RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route
Reflection: An Alternative to Full Mesh Internal BGP Reflection: An Alternative to Full Mesh Internal BGP
(IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006, (IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006,
<https://www.rfc-editor.org/info/rfc4456>. <https://www.rfc-editor.org/info/rfc4456>.
[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>.
[RFC5575] Marques, P., Sheth, N., Raszuk, R., Greene, B., Mauch, J.,
and D. McPherson, "Dissemination of Flow Specification
Rules", RFC 5575, DOI 10.17487/RFC5575, August 2009,
<https://www.rfc-editor.org/info/rfc5575>.
[RFC6793] Vohra, Q. and E. Chen, "BGP Support for Four-Octet [RFC6793] Vohra, Q. and E. Chen, "BGP Support for Four-Octet
Autonomous System (AS) Number Space", RFC 6793, Autonomous System (AS) Number Space", RFC 6793,
DOI 10.17487/RFC6793, December 2012, DOI 10.17487/RFC6793, December 2012,
<https://www.rfc-editor.org/info/rfc6793>. <https://www.rfc-editor.org/info/rfc6793>.
Authors' Addresses Authors' Addresses
James Uttaro James Uttaro
AT&T AT&T
200 S. Laurel Ave 200 S. Laurel Ave
 End of changes. 20 change blocks. 
72 lines changed or deleted 74 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/