RFC 9117 PROPOSED STANDARD ROUTING · BGP · SECURITY

BGP Flowspec Validation: Revised Validation Procedure for BGP Flow Specifications

A small change to BGP Flow Specification validation so a central controller inside your own network can originate filters.

On rfc-editor.org ↗
PUBLISHED
August 2021
AUTHORS
J. Uttaro, J. Alcaide, C. Filsfils, D. Smith, P. Mohapatra
STREAM
IETF
BUILDS ON
RFC 8955 — BGP Flowspec
SPEC SECTION CHANGED
Section 6 of RFC 8955
NEW CONDITION
b.2: empty or AS_CONFED_SEQUENCE-only AS_PATH
IANA ACTIONS
None
DOI
10.17487/RFC9117

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                         J. Uttaro
Request for Comments: 9117                                          AT&T
Updates: 8955                                                 J. Alcaide
Category: Standards Track                                    C. Filsfils
ISSN: 2070-1721                                                 D. Smith
                                                                   Cisco
                                                            P. Mohapatra
                                                        Sproute Networks
                                                             August 2021


        Revised Validation Procedure for BGP Flow Specifications

Abstract

   This document describes a modification to the validation procedure
   defined for the dissemination of BGP Flow Specifications.  The
   dissemination of BGP Flow Specifications as specified in RFC 8955
   requires that the originator of the Flow Specification match the
   originator of the best-match unicast route for the destination prefix
   embedded in the Flow Specification.  For an Internal Border Gateway
   Protocol (iBGP) received route, the originator is typically a border
   router within the same autonomous system (AS).  The objective is to
   allow only BGP speakers within the data forwarding path to originate
   BGP Flow Specifications.  Sometimes it is desirable to originate the
   BGP Flow Specification from any place within the autonomous system
   itself, for example, from a centralized BGP route controller.
   However, the validation procedure described in RFC 8955 will fail in
   this scenario.  The modification proposed herein relaxes 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 rules so Flow Specifications received from an External
   Border Gateway Protocol (eBGP) peer can be validated when such a peer
   is a BGP route server.

   This document updates the validation procedure in RFC 8955.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 7841.

   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 (c) 2021 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction
   2.  Definitions of Terms Used in This Memo
   3.  Motivation
   4.  Revised Validation Procedure
     4.1.  Revision of Route Feasibility
     4.2.  Revision of AS_PATH Validation
   5.  Topology Considerations
   6.  IANA Considerations
   7.  Security Considerations
   8.  References
     8.1.  Normative References
     8.2.  Informative References
   Acknowledgements
   Authors' Addresses

1.  Introduction

   [RFC8955] defines BGP Network Layer Reachability Information (NLRI)
   [RFC4760] that can be used to distribute traffic Flow Specifications
   amongst BGP speakers in support of traffic filtering.  The primary
   intention of [RFC8955] is to enable downstream autonomous systems to
   signal traffic filtering policies to upstream autonomous systems.  In
   this way, traffic is filtered closer to the source and the upstream
   autonomous systems avoid carrying the traffic to the downstream
   autonomous systems only to be discarded.  [RFC8955] also enables more
   granular traffic filtering based upon upper-layer protocol
   information (e.g., protocol or port numbers) as opposed to coarse IP
   destination prefix-based filtering.  Flow Specification NLRIs
   received from a BGP peer is subject to validity checks before being
   considered feasible and subsequently installed within the respective
   Adj-RIB-In.

   The validation procedure defined within [RFC8955] requires that the
   originator of the Flow Specification NLRI match the originator of the
   best-match unicast route for the destination prefix embedded in the
   Flow Specification.  The aim is to make sure that only speakers on
   the forwarding path can originate the Flow Specification.  Let's
   consider the particular case where the Flow Specification is
   originated in any location within the same Local Domain as the
   speaker performing the validation (for example, by a centralized BGP
   route controller), and the best-match unicast route is originated in
   another Local Domain.  In order for the validation to succeed for a
   Flow Specification received from an iBGP peer, it would be necessary
   to disseminate such Flow Specification NLRI directly from the
   specific border router (within the Local Domain) that is advertising
   the corresponding best-match unicast route to the Local Domain.
   Those border routers would be acting as de facto route controllers.
   This approach would be, however, operationally cumbersome in a Local
   Domain with numerous border routers having complex BGP policies.

   Figure 1 illustrates this principle.  R1 (the upstream router) and RR
   (a route reflector) need to validate the Flow Specification whose
   embedded destination prefix has a best-match unicast route (dest-
   route) originated by ASBR2.  ASBR2 could originate the Flow
   Specification, and it would be validated when received by RR and R1
   (from their point of view, the originator of both the Flow
   Specification and the best-match unicast route will be ASBR1).
   Sometimes the Flow Specification needs to be originated within AS1.
   ASBR1 could originate it, and the Flow Specification would still be
   validated.  In both cases, the Flow Specification is originated by a
   router in the same forwarding path as the dest-route.  For the case
   where AS1 has thousands of ASBRs, it becomes impractical to originate
   different Flow Specification rules on each ASBR in AS1 based on which
   ASBR each dest-route is learned from.  To make the situation more
   tenable, the objective is to advertise all the Flow Specifications
   from the same route controller.

           R1(AS1) --- RR(AS1) --- ASBR1(AS1) --- ASBR2(AS2)
                        |
                route controller(AS1)

                                  Figure 1

   This document describes a modification to the validation procedure
   described in [RFC8955], by allowing Flow Specification NLRIs to be
   originated from a centralized BGP route controller located within the
   Local Domain and not necessarily in the data-forwarding path.  While
   the proposed modification cannot be used for inter-domain
   coordination of traffic filtering, it greatly simplifies distribution
   of intra-domain traffic filtering policies within a Local Domain that
   has numerous border routers having complex BGP policies.  By relaxing
   the validation procedure for iBGP, the proposed modification allows
   Flow Specifications to be distributed in a standard and scalable
   manner throughout the Local Domain.

   Throughout this document, some references are made to
   AS_CONFED_SEQUENCE segments; see Sections 4.1 and 5.  If
   AS_CONFED_SET segments are also present in the AS_PATH, the same
   considerations apply to them.  Note, however, that the use of
   AS_CONFED_SET segments is not recommended [RFC6472].  Refer to
   [CONFED-SET] as well.

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
   defined with the underlying assumption that the Flow Specification
   NLRI traverses the same path, in the inter-domain and intra-domain
   route distribution graph, as that of the longest-match unicast route
   for the destination prefix embedded in 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
   RTR-E of AS1 in Figure 2) matches the eBGP neighbor that advertised
   the longest match destination prefix (see RTR-F and RTR-G,
   respectively, in Figure 2).

   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
   egress iBGP border routers that had advertised the unicast route for
   the best-match destination prefix (see RTR-D and RTR-E, respectively,
   in Figure 2).  This is true even when upstream routers select paths
   from different egress border routers as the best route based upon IGP
   distance.  For example, in Figure 2:

      RTR-A chooses RTR-D as the best route

      RTR-B chooses RTR-E as the best route

                     / - - - - - - - - - - - - -  -
                     |            AS1              |
                       +-------+        +-------+
                     | |       |        |       |  |
                       | RTR-A |        | RTR-B |
                     | |       |        |       |  |
                       +-------+        +-------+
                     |       \           /         |
                        iBGP  \         / iBGP
                     |         \       /           |
                               +-------+
                     |         |       |           |
                               | RTR-C |
                     |         |  RC   |           |
                               +-------+
                     |           /   \             |
                                /     \
                     |   iBGP  /       \ iBGP      |
                       +-------+        +-------+
                     | | RTR-D |        | RTR-E |  |
                       |       |        |       |
                     | |       |        |       |  |
                       +-------+        +-------+
                     |     |                 |     |
                      - - -|- - - - - - - - -|- - -/
                           | eBGP       eBGP |
                      - - -|- - - - - - - - -|- - -/
                     |     |                 |     |
                       +-------+        +-------+
                     | |       |        |       |  |
                       | RTR-F |        | RTR-G |
                     | |       |        |       |  |
                       +-------+        +-------+
                     |            AS2              |
                     / - - - - - - - - - - - - -  -

                                  Figure 2

   It is highly desirable that mechanisms exist to protect each AS
   independently from network security attacks using the BGP Flow
   Specification NLRI for intra-AS purposes only.  Network operators
   often deploy a dedicated Security Operations Center (SOC) within
   their AS to monitor and detect such security attacks.  To mitigate
   attacks within an AS, operators require the ability to originate
   intra-AS Flow Specification NLRIs from a central BGP route controller
   that is not within the data forwarding plane.  In this way, operators
   can direct border routers within their AS with specific attack-
   mitigation actions (drop the traffic, forward to a pipe-cleaning
   location, etc.).

   In addition, an operator may extend the requirements above for a
   group of ASes via policy.  This is described in Section 4.1 (b.2.3)
   of the validation procedure.

   A central BGP route controller that originates Flow Specification
   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
   of its neighbors.  When a central BGP route controller originates
   Flow Specification NLRI, the rest of the speakers within the AS will
   see the BGP route controller as the originator of the Flow
   Specification in terms of the validation procedure rules.  Thus, it
   is necessary to modify step (b) of the validation procedure described
   in [RFC8955] such that an iBGP peer that is not within the data
   forwarding plane may originate Flow Specification NLRIs.

4.  Revised Validation Procedure

4.1.  Revision of Route Feasibility

   Step (b) of the validation procedure specified in Section 6 of
   [RFC8955] is redefined as follows:

   |  b)  One of the following conditions MUST hold true:
   |
   |     1.  The originator of the Flow Specification matches the
   |         originator of the best-match unicast route for the
   |         destination prefix embedded in the Flow Specification (this
   |         is the unicast route with the longest possible prefix
   |         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].
   |
   |         1.  This condition SHOULD be enabled by default.
   |
   |         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 policy.

   Explanation:

      Receiving either an empty AS_PATH or one with only an
      AS_CONFED_SEQUENCE segment indicates that the Flow Specification
      was originated inside the Local Domain.

      With the above modification to the [RFC8955] validation procedure,
      a BGP peer within the Local Domain that is not within the data-
      forwarding path can originate a Flow Specification.

      Disabling the new condition above (see step b.2.2 in Section 4.1)
      could be a good practice if the operator knew with certainty that
      a Flow Specification would not be originated inside the Local
      Domain.  An additional case would be if it was known for a fact
      that only the right egress border routers (i.e., those that were
      also egress border routers for the best routes) were originating
      Flow Specification NLRI.

      Also, policy may be useful to permit a specific set of non-empty
      AS_PATHs (see step b.2.3 in Section 4.1).  For example, it could
      validate a Flow Specification whose AS_PATH contained only an
      AS_SEQUENCE segment with ASes that were all known to belong to the
      same administrative domain.

4.2.  Revision of AS_PATH Validation

   Section 6 of [RFC8955] states:

      |  BGP implementations MUST also enforce that the AS_PATH
      |  attribute of a route received via the External Border Gateway
      |  Protocol (eBGP) contains the neighboring AS in the left-most
      |  position of the AS_PATH attribute.  While this rule is optional
      |  in the BGP specification, it becomes necessary to enforce it
      |  here for security reasons.

   This rule prevents the exchange of BGP Flow Specification NLRIs at
   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
   [RFC7947]).  Therefore, this document also redefines the [RFC8955]
   AS_PATH validation procedure referenced above as follows:

      |  BGP Flow Specification implementations MUST enforce that the AS
      |  in the left-most position of the AS_PATH attribute of a Flow
      |  Specification route received via the External Border Gateway
      |  Protocol (eBGP) matches the AS in the left-most position of the
      |  AS_PATH attribute of the best-match unicast route for the
      |  destination prefix embedded in the Flow Specification NLRI.

   Explanation:

      For clarity, the AS in the left-most position of the AS_PATH means
      the AS that was last added to an AS_SEQUENCE.

      This proposed modification enables the exchange of BGP Flow
      Specification NLRIs at Internet exchanges with BGP route servers
      while at the same time, for security reasons, prevents an eBGP
      peer from advertising an inter-domain Flow Specification for a
      destination prefix that it does not provide reachability
      information for.

      Comparing only the left-most AS in the AS-PATH for eBGP-learned
      Flow Specification NLRIs is roughly equivalent to checking the
      neighboring AS.  If the peer is a route server, security is
      necessarily weakened for the Flow Specification NLRI, as it is for
      any unicast route advertised from a route server.  An example is
      discussed in the Security Considerations section.

      Redefinition of this AS_PATH validation rule for a Flow
      Specification does not mean that the original rule in [RFC8955]
      cannot be enforced as well.  Its enforcement remains optional per
      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
      route belonging to any Address Family (including Flow
      Specification Address Family).  If the BGP speaker peer is not a
      route server, when enforcing this optional rule, the security
      characteristics are exactly equivalent to those specified in
      [RFC8955].

      Alternatively, enforcing this optional rule for unicast routes
      (even if not enforced on Flow Specification NLRIs) achieves
      exactly the same security characteristics.  The reason is that,
      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-
      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.
      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
      AS_PATH validation rule in [RFC8955] states).

      Note, however, that not checking the full AS_PATH allows any rogue
      or misconfigured AS the ability to originate undesired Flow
      Specifications.  This is a BGP security threat, already present in
      [RFC8955], but out of the scope of this document.

      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
      of this document.  Note that although it's possible, its utility
      is dubious.  Although it is conceivable that a router in the same
      Local Domain could send a rogue update, only eBGP risk is
      considered within this document (in the same spirit as the
      aforementioned AS_PATH validation in [RFC4271]).

5.  Topology Considerations

   [RFC8955] indicates that the originator may refer to the originator
   path attribute (ORIGINATOR_ID) or (if the attribute is not present)
   the transport address of the peer from which the BGP speaker received
   the update.  If the latter applies, a network should be designed so
   it has a congruent topology amongst unicast routes and Flow
   Specification routes.  By congruent topology, it is understood that
   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
   would likely not be true, for instance, if some peers only negotiated
   one Address Family or if each Address Family peering had a different
   set of policies.  Failing to have a congruent topology would result
   in step (b.1) of the validation procedure to fail.

   With the additional second condition (b.2) in the validation
   procedure, non-congruent topologies are supported within the Local
   Domain if the Flow Specification is originated within the Local
   Domain.

   Explanation:

      Consider the following scenarios of a non-congruent topology
      without the second condition (b.2) being added to the validation
      procedure:

      1.  Consider a topology with two BGP speakers with two iBGP
          peering sessions between them, one for unicast and one for
          Flow Specification.  This is a non-congruent topology.  Let's
          assume that the ORIGINATOR_ID attribute was not received
          (e.g., a route reflector receiving routes from its clients).
          In this case, the Flow Specification validation procedure will
          fail because of the first condition (b.1).

      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
          speaker X1 inside local AS X.  The ORIGINATOR_ID attribute is
          not advertised when propagating routes across local ASes.
          Let's assume the Flow Specification route is received from
          peer Y1 and the best-match unicast route is received from peer
          Y2.  Both peers belong to local AS Y.  The Flow Specification
          validation procedure will also fail because of the first
          condition (b.1).

      Consider now that the second condition (b.2) is added to the
      validation procedure.  In the scenarios above, if Flow
      Specifications are originated in the same Local Domain, the
      AS_PATH will be empty or contain only an AS_CONFED_SEQUENCE
      segment.  Condition (b.2) will evaluate to true.  Therefore, using
      the second condition (b.2), as defined by this document,
      guarantees that the overall validation procedure will pass.  Thus,
      non-congruent topologies are supported if the Flow Specification
      is originated in the same Local Domain.

      Flow Specifications originated in a different Local Domain sill
      need a congruent topology.  The reason is that in a non-congruent
      topology, the second condition (b.2) evaluates to false and only
      the first condition (b.1) is evaluated.

6.  IANA Considerations

   This document has no IANA actions.

7.  Security Considerations

   This document updates the route feasibility validation procedures for
   Flow Specifications learned from iBGP peers and through route
   servers.  This change is in line with the procedures described in
   [RFC8955] and, thus, security characteristics remain essentially
   equivalent to the existing security properties of BGP unicast
   routing, except as detailed below.

   The security considerations discussed in [RFC8955] apply to this
   specification as well.

   This document makes the original AS_PATH validation rule (Section 6.3
   of [RFC4271]) again OPTIONAL (Section 4.2) for Flow Specification
   Address Family (the rule is no longer mandatory as had been specified
   by [RFC8955]).  If that original rule is not enforced for Flow
   Specification, it may introduce some new security risks.  A speaker
   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
   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,
   it will be validated by that speaker.  This risk is impossible to
   prevent if the Flow Specification route is received from a route
   server peer.  If configuration (or other means beyond the scope of
   this document) indicates that the peer is not a route server, that
   optional rule SHOULD be enforced for unicast and/or for Flow
   Specification routes (as discussed in the Revision of AS_PATH
   Validation section, just enforcing it in one of those Address
   Families is enough).  If the indication is that the peer is not a
   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
   AS_PATH validation rule described in the previous paragraph.  If it
   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
   peers.

   BGP updates learned from iBGP peers are considered trusted, so the
   Traffic Flow Specifications contained in BGP updates are also
   considered trusted.  Therefore, it is not required to validate that
   the originator of an intra-domain Traffic Flow Specification matches
   the originator of the best-match unicast route for the destination
   prefix embedded in that Flow Specification.  Note that this
   trustworthiness consideration is not absolute and the new possibility
   that an iBGP speaker could send a rogue Flow Specification is
   introduced.

   The changes in Section 4.1 don't affect the validation procedures for
   eBGP-learned routes.

   It's worth mentioning that allowing (or making operationally
   feasible) Flow Specifications to originate within the Local Domain
   makes the network overall more secure.  Flow Specifications can be
   originated more readily during attacks and improve the stability and
   security of the network.

8.  References

8.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC4271]  Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
              Border Gateway Protocol 4 (BGP-4)", RFC 4271,
              DOI 10.17487/RFC4271, January 2006,
              <https://www.rfc-editor.org/info/rfc4271>.

   [RFC4760]  Bates, T., Chandra, R., Katz, D., and Y. Rekhter,
              "Multiprotocol Extensions for BGP-4", RFC 4760,
              DOI 10.17487/RFC4760, January 2007,
              <https://www.rfc-editor.org/info/rfc4760>.

   [RFC5065]  Traina, P., McPherson, D., and J. Scudder, "Autonomous
              System Confederations for BGP", RFC 5065,
              DOI 10.17487/RFC5065, August 2007,
              <https://www.rfc-editor.org/info/rfc5065>.

   [RFC7947]  Jasinska, E., Hilliard, N., Raszuk, R., and N. Bakker,
              "Internet Exchange BGP Route Server", RFC 7947,
              DOI 10.17487/RFC7947, September 2016,
              <https://www.rfc-editor.org/info/rfc7947>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8955]  Loibl, C., Hares, S., Raszuk, R., McPherson, D., and M.
              Bacher, "Dissemination of Flow Specification Rules",
              RFC 8955, DOI 10.17487/RFC8955, December 2020,
              <https://www.rfc-editor.org/info/rfc8955>.

8.2.  Informative References

   [CONFED-SET]
              Kumari, W., Sriram, K., Hannachi, L., and J. Haas,
              "Deprecation of AS_SET and AS_CONFED_SET in BGP", Work in
              Progress, Internet-Draft, draft-ietf-idr-deprecate-as-set-
              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
              AS_SET and AS_CONFED_SET in BGP", BCP 172, RFC 6472,
              DOI 10.17487/RFC6472, December 2011,
              <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

   James Uttaro
   AT&T
   200 S. Laurel Ave
   Middletown, NJ 07748
   United States of America

   Email: ju1738@att.com


   Juan Alcaide
   Cisco
   Research Triangle Park
   7100 Kit Creek Road
   Morrisville, NC 27709
   United States of America

   Email: jalcaide@cisco.com


   Clarence Filsfils
   Cisco

   Email: cf@cisco.com


   David Smith
   Cisco
   111 Wood Ave South
   Iselin, NJ 08830
   United States of America

   Email: djsmith@cisco.com


   Pradosh Mohapatra
   Sproute Networks

   Email: mpradosh@yahoo.com

AI ELI5

On this page
PROBLEMRFC 8955 only accepts a BGP Flow Specification if its originator matches the originator of the best-match unicast route for the destination prefix. That rules out a centralized route controller in the same domain that is not in the forwarding path, and it also blocks Flow Specifications from route servers.
MECHANISMThe validation step gets a second way to pass: a Flow Specification whose AS_PATH is empty or holds only an AS_CONFED_SEQUENCE segment was originated inside the Local Domain. The eBGP AS_PATH rule is changed to compare the left-most AS with that of the best-match unicast route.
WHY IT MATTERSOperators can distribute intra-domain filtering from a central controller and can exchange Flow Specifications at Internet exchanges with route servers. Security stays about the same as BGP unicast routing, with some weakening when the peer is a route server.

§1Introduction

RFC 8955 defines BGP NLRI that carries traffic Flow Specifications, which let BGP speakers distribute traffic filtering rules. The main aim is to let downstream autonomous systems tell upstream ones to filter traffic closer to the source, so the upstream networks do not carry traffic only to have it discarded.

Before a Flow Specification is considered feasible and installed in the Adj-RIB-In, it must pass validity checks. This document changes two of those checks. It does not change the Flow Specification format itself.

Imagine a neighborhood where people can post notes saying which kind of mail to stop at the gate. This document changes who is allowed to post those notes.

§2Terms Used in the Document

Three terms are defined. The Local Domain is the local AS or the local confederation of ASes. eBGP means BGP peering to a router not within the Local Domain. iBGP means classic iBGP plus any eBGP peering with a router in the same confederation; in short, any peering that is not eBGP as defined here.

The document uses the key words MUST, SHOULD and MAY as described in BCP 14 (RFC 2119 and RFC 8174).

The 'Local Domain' is your own street. Friends on your street are iBGP peers, and anyone from another street is an eBGP peer.

§3Why the Old Rule Gets in the Way

Step (b) of the validation in Section 6 of RFC 8955 assumes the Flow Specification travels the same path as the longest-match unicast route for the destination prefix inside it. For inter-domain filtering this works: at the egress border routers the Flow Specification originator matches the eBGP neighbor that advertised the best unicast route, and upstream routers see the matching egress iBGP border router.

Operators, however, often run a Security Operations Center and want to originate intra-AS Flow Specifications from a central BGP route controller that is not in the data forwarding plane. With the old rule, the controller would be seen as the originator, which never matches the border router that advertised the unicast route. The only workaround is to have each border router act as a de facto route controller, which is operationally cumbersome with many border routers and complex BGP policies.

The modification cannot be used for inter-domain coordination of traffic filtering. Its purpose is to make distributing intra-domain filtering policies simple, standard and scalable. Operators can then direct border routers to drop traffic or forward it to a pipe-cleaning location.

The old rule said only the guard standing at the right gate could post the note. But the boss in the office could not, even though the boss knows best. This change lets the boss post the note.

§4.1Revised Route Feasibility Check

Step (b) now says that one of two conditions MUST hold. Condition b.1 is the old one: the originator of the Flow Specification matches the originator of the best-match unicast route (the one with the longest prefix covering the destination prefix in the Flow Specification).

Condition b.2 is new: the AS_PATH of the Flow Specification is empty or contains only an AS_CONFED_SEQUENCE segment. Such a path shows the Flow Specification was originated inside the Local Domain, so a peer outside the forwarding path may originate it.

  • b.2 SHOULD be enabled by default.
  • b.2 MAY be disabled by explicit configuration on a BGP speaker, for example when the operator knows no Flow Specification will be originated inside the Local Domain.
  • By policy, a given non-empty AS_PATH MAY also be permitted, for example one with only an AS_SEQUENCE of ASes known to be in the same administrative domain.

There are now two ways to get your note accepted: the guard at the right gate posts it, or someone from inside your own street posts it.

THE TWO CONDITIONS IN STEP (B), RFC 9117 SECTION 4.1
ConditionWhat must be trueDefault
b.1Originator of the Flow Specification matches originator of the best-match unicast routeOriginal RFC 8955 rule
b.2 THIS RFCAS_PATH is empty or has only an AS_CONFED_SEQUENCE segmentSHOULD be enabled; MAY be disabled

§4.2Revised AS_PATH Validation for eBGP

RFC 8955 required that the AS_PATH of a Flow Specification received over eBGP has the neighboring AS in the left-most position. That blocks Internet exchanges with BGP route servers, which by design do not insert their own AS number into the AS_PATH (Section 2.2.2.1 of RFC 7947).

The new rule: the AS in the left-most position of the AS_PATH of an eBGP-received Flow Specification MUST match the AS in the left-most position of the AS_PATH of the best-match unicast route. The left-most AS means the AS that was last added to an AS_SEQUENCE.

The old check stays optional under Section 6.3 of RFC 4271, and a speaker may still enforce it. If the peer is not a route server, enforcing it gives security equivalent to RFC 8955. The RFC notes that not checking the full AS_PATH lets a rogue or misconfigured AS originate undesired Flow Specifications, a threat already present in RFC 8955 and out of scope here. Using the new rule for peers in the same Local Domain is also out of scope.

A meeting-place helper passes notes along without signing them. So instead of checking the helper, the rule checks that the note's first signer matches the first signer on the matching delivery route.

§5Topology Considerations

The originator in RFC 8955 is the ORIGINATOR_ID attribute or, if absent, the transport address of the peer the update came from. In the latter case the network should have a congruent topology, meaning the Flow Specification and its best-match unicast route are learned from the same peer. That fails, for example, if some peers negotiated only one Address Family or each Address Family peering has different policies.

Two examples of failure under the old rule: two BGP speakers with separate iBGP sessions for unicast and for Flow Specification and no ORIGINATOR_ID (such as a route reflector receiving from its clients), and a confederation where ORIGINATOR_ID is not advertised across local ASes and the two routes arrive from different peers Y1 and Y2.

With condition b.2, such non-congruent topologies work when the Flow Specification is originated in the Local Domain, because its AS_PATH is empty or has only an AS_CONFED_SEQUENCE. Flow Specifications from a different Local Domain still need a congruent topology.

If the note and the delivery route come to you through different doors, the old rule gets confused. The new rule lets notes from your own street through anyway.

§7Security Considerations

The security properties stay essentially equivalent to BGP unicast routing, apart from the exceptions the RFC lists. The considerations in RFC 8955 still apply, and the changes in Section 4.1 do not affect validation of eBGP-learned routes.

Making the AS_PATH check optional again for the Flow Specification family can add risk with route servers. A speaker in AS X peering with a route server could advertise a rogue Flow Specification whose first AS is Y, where Y is also the first AS of the best-match unicast route. A speaker in AS Z validates it when the route server passes it on. This risk cannot be prevented for a route server peer. If the peer is known not to be a route server, the optional rule SHOULD be enforced, on unicast or Flow Specification routes. With no conclusive indication, it SHOULD NOT be enforced.

BGP updates from iBGP peers are considered trusted, so the intra-domain originator check is not required. That trust is not absolute, and a rogue iBGP speaker could now send a bad Flow Specification. The RFC argues that making intra-domain origination feasible makes the network overall more secure.

Trusting your own street is mostly fine, but one bad neighbor could now post a fake note. The shared meeting place is riskier, so check the sender when you can.

§8References