draft-ietf-opsec-urpf-improvements-02.txt | draft-ietf-opsec-urpf-improvements-03.txt | |||
---|---|---|---|---|
OPSEC Working Group K. Sriram | OPSEC Working Group K. Sriram | |||
Internet-Draft D. Montgomery | Internet-Draft D. Montgomery | |||
Intended status: Best Current Practice USA NIST | Updates: RFC3704 (if approved) USA NIST | |||
Expires: October 6, 2019 J. Haas | Intended status: Best Current Practice J. Haas | |||
Juniper Networks, Inc. | Expires: January 9, 2020 Juniper Networks, Inc. | |||
April 4, 2019 | July 8, 2019 | |||
Enhanced Feasible-Path Unicast Reverse Path Filtering | Enhanced Feasible-Path Unicast Reverse Path Filtering | |||
draft-ietf-opsec-urpf-improvements-02 | draft-ietf-opsec-urpf-improvements-03 | |||
Abstract | Abstract | |||
This document identifies a need for improvement of the unicast | This document identifies a need for improvement of the unicast | |||
Reverse Path Filtering techniques (uRPF) [BCP84] for source address | Reverse Path Filtering techniques (uRPF) (see BCP 84) for detection | |||
validation (SAV) [BCP38]. The strict uRPF is inflexible about | and mitigation of source address spoofing (see BCP 38). The strict | |||
directionality, the loose uRPF is oblivious to directionality, and | uRPF is inflexible about directionality, the loose uRPF is oblivious | |||
the current feasible-path uRPF attempts to strike a balance between | to directionality, and the current feasible-path uRPF attempts to | |||
the two [BCP84]. However, as shown in this draft, the existing | strike a balance between the two (see BCP 84). However, as shown in | |||
feasible-path uRPF still has shortcomings. This document describes | this draft, the existing feasible-path uRPF still has shortcomings. | |||
an enhanced feasible-path uRPF technique, which aims to be more | This document describes an enhanced feasible-path uRPF technique, | |||
flexible (in a meaningful way) about directionality than the | which aims to be more flexible (in a meaningful way) about | |||
feasible-path uRPF. It can potentially alleviate ISPs' concerns | directionality than the feasible-path uRPF. It can potentially | |||
about the possibility of disrupting service for their customers, and | alleviate ISPs' concerns about the possibility of disrupting service | |||
encourage greater deployment of uRPF techniques. | for their customers, and encourage greater deployment of uRPF | |||
techniques. | ||||
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 October 6, 2019. | This Internet-Draft will expire on January 9, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 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 | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
2. Review of Existing Source Address Validation Techniques . . . 3 | 2. Review of Existing Source Address Validation Techniques . . . 4 | |||
2.1. SAV using Access Control List . . . . . . . . . . . . . . 4 | 2.1. SAV using Access Control List . . . . . . . . . . . . . . 4 | |||
2.2. SAV using Strict Unicast Reverse Path Filtering . . . . . 4 | 2.2. SAV using Strict Unicast Reverse Path Filtering . . . . . 4 | |||
2.3. SAV using Feasible-Path Unicast Reverse Path Filtering . 5 | 2.3. SAV using Feasible-Path Unicast Reverse Path Filtering . 5 | |||
2.4. SAV using Loose Unicast Reverse Path Filtering . . . . . 6 | 2.4. SAV using Loose Unicast Reverse Path Filtering . . . . . 7 | |||
2.5. SAV using VRF Table . . . . . . . . . . . . . . . . . . . 7 | 2.5. SAV using VRF Table . . . . . . . . . . . . . . . . . . . 7 | |||
3. SAV using Enhanced Feasible-Path uRPF . . . . . . . . . . . . 7 | 3. SAV using Enhanced Feasible-Path uRPF . . . . . . . . . . . . 7 | |||
3.1. Description of the Method . . . . . . . . . . . . . . . . 7 | 3.1. Description of the Method . . . . . . . . . . . . . . . . 7 | |||
3.1.1. Algorithm A: Enhanced Feasible-Path uRPF . . . . . . 8 | 3.1.1. Algorithm A: Enhanced Feasible-Path uRPF . . . . . . 9 | |||
3.2. Operational Recommendations . . . . . . . . . . . . . . . 9 | 3.2. Operational Recommendations . . . . . . . . . . . . . . . 10 | |||
3.3. A Challenging Scenario . . . . . . . . . . . . . . . . . 9 | 3.3. A Challenging Scenario . . . . . . . . . . . . . . . . . 10 | |||
3.4. Algorithm B: Enhanced Feasible-Path uRPF with Additional | 3.4. Algorithm B: Enhanced Feasible-Path uRPF with Additional | |||
Flexibility Across Customer Cone . . . . . . . . . . . . 10 | Flexibility Across Customer Cone . . . . . . . . . . . . 11 | |||
3.5. Augmenting RPF Tables with ROA and IRR Data . . . . . . . 11 | 3.5. Augmenting RPF Lists with ROA and IRR Data . . . . . . . 12 | |||
3.6. Implementation Considerations . . . . . . . . . . . . . . 11 | 3.6. Implementation and Operations Considerations . . . . . . 12 | |||
3.6.1. Impact on FIB Memory Size Requirement . . . . . . . . 11 | 3.6.1. Impact on FIB Memory Size Requirement . . . . . . . . 12 | |||
3.6.2. Coping with BGP's Transient Behavior . . . . . . . . 12 | 3.6.2. Coping with BGP's Transient Behavior . . . . . . . . 14 | |||
3.7. Summary of Recommendations . . . . . . . . . . . . . . . 13 | 3.7. Summary of Recommendations . . . . . . . . . . . . . . . 14 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 | |||
7. Informative References . . . . . . . . . . . . . . . . . . . 14 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 15 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 16 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
1. Introduction | 1. Introduction | |||
This internet draft identifies a need for improvement of the unicast | Source Address Validation (SAV) refers to the detection and | |||
Reverse Path Filtering (uRPF) techniques [RFC2827] for source address | mitigation of source address spoofing [RFC2827]. This document | |||
validation (SAV) [RFC3704]. The strict uRPF is inflexible about | identifies a need for improvement of the unicast Reverse Path | |||
directionality, the loose uRPF is oblivious to directionality, and | Filtering (uRPF) techniques [RFC3704] for SAV. The strict uRPF is | |||
the current feasible-path uRPF attempts to strike a balance between | inflexible about directionality (see [RFC3704] for definitions), the | |||
the two [RFC3704]. However, as shown in this draft, the existing | loose uRPF is oblivious to directionality, and the current feasible- | |||
feasible-path uRPF still has shortcomings. Even with the feasible- | path uRPF attempts to strike a balance between the two [RFC3704]. | |||
path uRPF, ISPs are often apprehensive that they may be dropping | However, as shown in this draft, the existing feasible-path uRPF | |||
customers' data packets with legitimate source addresses. | still has shortcomings. Even with the feasible-path uRPF, ISPs are | |||
often apprehensive that they may be dropping customers' data packets | ||||
with legitimate source addresses. | ||||
This document describes an enhanced feasible-path uRPF technique, | This document describes an enhanced feasible-path uRPF technique, | |||
which aims to be more flexible (in a meaningful way) about | which aims to be more flexible (in a meaningful way) about | |||
directionality than the feasible-path uRPF. It is based on the | directionality than the feasible-path uRPF. It is based on the | |||
principle that if BGP updates for multiple prefixes with the same | principle that if BGP updates for multiple prefixes with the same | |||
origin AS were received on different interfaces (at border routers), | origin AS were received on different interfaces (at border routers), | |||
then incoming data packets with source addresses in any of those | then incoming data packets with source addresses in any of those | |||
prefixes should be accepted on any of those interfaces (presented in | prefixes should be accepted on any of those interfaces (presented in | |||
Section 3). For some challenging ISP-customer scenarios (see | Section 3). For some challenging ISP-customer scenarios (see | |||
Section 3.3), this document also describes a more relaxed version of | Section 3.3), this document also describes a more relaxed version of | |||
the enhanced feasible-path uRPF technique (presented in Section 3.4). | the enhanced feasible-path uRPF technique (presented in Section 3.4). | |||
Implementation considerations are discussed in Section 3.6. | Implementation and operations considerations are discussed in | |||
Section 3.6. | ||||
Definition of Reverse Path Filtering (RPF) list: The list of | Definition of Reverse Path Filtering (RPF) list: The list of | |||
permissible source address prefixes for incoming data packets on a | permissible source address prefixes for incoming data packets on a | |||
given interface. | given interface. | |||
Throughout this document, the routes in consideration are assumed to | Throughout this document, the routes under consideration are assumed | |||
have been vetted based on prefix filtering [RFC7454] and possibly (in | to have been vetted based on prefix filtering [RFC7454] and possibly | |||
the future) origin validation [RFC6811]. | (in the future) origin validation [RFC6811]. | |||
The enhanced feasible-path uRPF methods described here are expected | The enhanced feasible-path uRPF methods described here are expected | |||
to add greater operational robustness and efficacy to uRPF, while | to add greater operational robustness and efficacy to uRPF, while | |||
minimizing ISPs' concerns about accidental service disruption for | minimizing ISPs' concerns about accidental service disruption for | |||
their customers. It is expected that this will encourage more | their customers. It is expected that this will encourage more | |||
deployment of uRPF to help realize its DDoS prevention benefits | deployment of uRPF to help realize its DDoS prevention benefits | |||
network wide. | network wide. | |||
1.1. Requirements Language | 1.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. Review of Existing Source Address Validation Techniques | 2. Review of Existing Source Address Validation Techniques | |||
There are various existing techniques for mitigation against DDoS | There are various existing techniques for mitigation against DDoS | |||
attacks with spoofed addresses [RFC2827] [RFC3704]. There are also | attacks with spoofed addresses [RFC2827] [RFC3704]. Source address | |||
some techniques used for mitigating reflection attacks [RRL] | validation (SAV) is performed in network edge devices such as border | |||
[TA14-017A], which are used to amplify the impact in DDoS attacks. | routers, Cable Modem Termination Systems (CMTS) [RFC4036], and Packet | |||
Employing a combination of these preventive techniques (as | Data Network (PDN) gateways in mobile networks [Firmin]. Ingress | |||
applicable) in enterprise and ISP border routers, broadband and | Access Control List (ACL) and unicast Reverse Path Filtering (uRPF) | |||
wireless access network, data centers, and DNS/NTP servers provides | are techniques employed for implementing SAV [RFC2827] [RFC3704] | |||
reasonably effective protection against DDoS attacks. | [ISOC]. | |||
Source address validation (SAV) is performed in network edge devices | ||||
such as border routers, Cable Modem Termination Systems (CMTS), | ||||
Digital Subscriber Line Access Multiplexers (DSLAM), and Packet Data | ||||
Network (PDN) gateways in mobile networks. Ingress Access Control | ||||
List (ACL) and unicast Reverse Path Filtering (uRPF) are techniques | ||||
employed for implementing SAV [RFC2827][RFC3704][ISOC]. | ||||
2.1. SAV using Access Control List | 2.1. SAV using Access Control List | |||
Ingress/egress Access Control Lists (ACLs) are maintained which list | Ingress/egress Access Control Lists (ACLs) are maintained which list | |||
acceptable (or alternatively, unacceptable) prefixes for the source | acceptable (or alternatively, unacceptable) prefixes for the source | |||
addresses in the incoming Internet Protocol (IP) packets. Any packet | addresses in the incoming/outgoing Internet Protocol (IP) packets. | |||
with a source address that does not match the filter is dropped. The | Any packet with a source address that does not match the filter is | |||
ACLs for the ingress/egress filters need to be maintained to keep | dropped. The ACLs for the ingress/egress filters need to be | |||
them up to date. Updating the ACLs is an operator driven manual | maintained to keep them up to date. Updating the ACLs is an operator | |||
process, and hence operationally difficult or infeasible. | driven manual process, and hence operationally difficult or | |||
infeasible. | ||||
Typically, the egress ACLs in access aggregation devices (e.g. CMTS, | Typically, the egress ACLs in access aggregation devices (e.g. CMTS, | |||
DSLAM) permit source addresses only from the address spaces | DSLAM) permit source addresses only from the address spaces | |||
(prefixes) that are associated with the interface on which the | (prefixes) that are associated with the interface on which the | |||
customer network is connected. Ingress ACLs are typically deployed | customer network is connected. Ingress ACLs are typically deployed | |||
on border routers, and drop ingress packets when the source address | on border routers, and drop ingress packets when the source address | |||
is spoofed (i.e. belongs to obviously disallowed prefix blocks, RFC | is spoofed (e.g., belongs to obviously disallowed prefix blocks, IANA | |||
1918 prefixes, or provider's own prefixes). | special-purpose prefixes [SPAR-v4][SPAR-v6], provider's own prefixes, | |||
etc.). | ||||
2.2. SAV using Strict Unicast Reverse Path Filtering | 2.2. SAV using Strict Unicast Reverse Path Filtering | |||
Note: In the figures (scenarios) that follow, the following | ||||
terminology is used: "fails" means drops packets with legitimate | ||||
source addresses; "works (but not desirable)" means passes all | ||||
packets with legitimate source addresses but is oblivious to | ||||
directionality; "works best" means passes all packets with legitimate | ||||
source addresses with no (or minimal) compromise of directionality. | ||||
Further, the notation Pi[ASn ASm ...] denotes a BGP update with | ||||
prefix Pi and an AS_PATH as shown in the square brackets. | ||||
In the strict unicast Reverse Path Filtering (uRPF) method, an | In the strict unicast Reverse Path Filtering (uRPF) method, an | |||
ingress packet at border router is accepted only if the Forwarding | ingress packet at border router is accepted only if the Forwarding | |||
Information Base (FIB) contains a prefix that encompasses the source | Information Base (FIB) contains a prefix that encompasses the source | |||
address, and forwarding information for that prefix points back to | address, and forwarding information for that prefix points back to | |||
the interface over which the packet was received. In other words, | the interface over which the packet was received. In other words, | |||
the reverse path for routing to the source address (if it were used | the reverse path for routing to the source address (if it were used | |||
as a destination address) should use the same interface over which | as a destination address) should use the same interface over which | |||
the packet was received. It is well known that this method has | the packet was received. It is well known that this method has | |||
limitations when networks are multi-homed, routes are not | limitations when networks are multi-homed, routes are not | |||
symmetrically announced to all transit providers, and there is | symmetrically announced to all transit providers, and there is | |||
skipping to change at page 5, line 32 ¶ | skipping to change at page 5, line 42 ¶ | |||
with source address in P1: | with source address in P1: | |||
* Strict uRPF fails | * Strict uRPF fails | |||
* Feasible-path uRPF fails | * Feasible-path uRPF fails | |||
* Loose uRPF works (but not desirable) | * Loose uRPF works (but not desirable) | |||
* Enhanced Feasible-path uRPF works best | * Enhanced Feasible-path uRPF works best | |||
Figure 1: Scenario 1 for illustration of efficacy of uRPF schemes. | Figure 1: Scenario 1 for illustration of efficacy of uRPF schemes. | |||
2.3. SAV using Feasible-Path Unicast Reverse Path Filtering | 2.3. SAV using Feasible-Path Unicast Reverse Path Filtering | |||
The feasible-path uRPF helps partially overcome the problem | The feasible-path uRPF technique helps partially overcome the problem | |||
identified with the strict uRPF in the multi-homing case. The | identified with the strict uRPF in the multi-homing case. The | |||
feasible-path uRPF is similar to the strict uRPF, but in addition to | feasible-path uRPF is similar to the strict uRPF, but in addition to | |||
inserting the best-path prefix, additional prefixes from alternative | inserting the best-path prefix, additional prefixes from alternative | |||
announced routes are also included in the RPF table. This method | announced routes are also included in the RPF list. This method | |||
relies on announcements for the same prefixes (albeit some may be | relies on either (a) announcements for the same prefixes (albeit some | |||
prepended to effect lower preference) propagating to all routers | may be prepended to effect lower preference) propagating to all | |||
performing feasible-path uRPF checks. Therefore, in the multi-homing | transit providers performing feasible-path uRPF checks, or (b) | |||
scenario (see Figure 2), if the customer AS announces routes for both | announcement of an aggregate less specific prefix to all transit | |||
prefixes (P1, P2) to both transit providers (with suitable prepends | providers while announcing more specific prefixes (covered by the | |||
if needed for traffic engineering), then the feasible-path uRPF | less specific prefix) to different transit providers as needed for | |||
method works. It should be mentioned that the feasible-path uRPF | traffic engineering. As an example, in the multi-homing scenario | |||
works in this scenario only if customer routes are preferred at AS2 | (see Figure 2), if the customer AS announces routes for both prefixes | |||
and AS3 over a shorter non-customer route. | (P1, P2) to both transit providers (with suitable prepends if needed | |||
for traffic engineering), then the feasible-path uRPF method works. | ||||
It should be mentioned that the feasible-path uRPF works in this | ||||
scenario only if customer routes are preferred at AS2 and AS3 over a | ||||
shorter non-customer route. However, the feasible-path uRPF method | ||||
has limitations as well. One form of limitation naturally occurs | ||||
when the recommendation (a) or (b) mentioned above regarding | ||||
propagation of prefixes is not followed. Another form of limitation | ||||
can be described as follows. In Scenario 2 (described above, | ||||
illustrated in Figure 2), it is possible that the second transit | ||||
provider (ISP-b or AS3) does not propagate the prepended route for | ||||
prefix P1 to the first transit provider (ISP-a or AS2). This is | ||||
because AS3's decision policy permits giving priority to a shorter | ||||
route to prefix P1 via a lateral peer (AS2) over a longer route | ||||
learned directly from the customer (AS1). In such a scenario, AS3 | ||||
would not send any route announcement for prefix P1 to AS2 (over the | ||||
p2p link). Then a data packet with source address in prefix P1 that | ||||
originates from AS1 and traverses via AS3 to AS2 will get dropped at | ||||
AS2. | ||||
+------------+ routes for P1, P2 +-----------+ | +------------+ routes for P1, P2 +-----------+ | |||
| AS2(ISP-a) |<-------------------->| AS3(ISP-b)| | | AS2(ISP-a) |<-------------------->| AS3(ISP-b)| | |||
+------------+ (p2p) +-----------+ | +------------+ (p2p) +-----------+ | |||
/\ /\ | /\ /\ | |||
\ / | \ / | |||
P1[AS1]\ /P2[AS1] | P1[AS1]\ /P2[AS1] | |||
\ / | \ / | |||
P2[AS1 AS1 AS1]\ /P1[AS1 AS1 AS1] | P2[AS1 AS1 AS1]\ /P1[AS1 AS1 AS1] | |||
\ / | \ / | |||
skipping to change at page 6, line 30 ¶ | skipping to change at page 7, line 5 ¶ | |||
that originated from AS1 and have source address in P1: | that originated from AS1 and have source address in P1: | |||
* Feasible-path uRPF works (if customer route to P1 | * Feasible-path uRPF works (if customer route to P1 | |||
is preferred at AS3 over shorter path) | is preferred at AS3 over shorter path) | |||
* Feasible-path uRPF fails (if shorter path to P1 | * Feasible-path uRPF fails (if shorter path to P1 | |||
is preferred at AS3 over customer route) | is preferred at AS3 over customer route) | |||
* Loose uRPF works (but not desirable) | * Loose uRPF works (but not desirable) | |||
* Enhanced Feasible-path uRPF works best | * Enhanced Feasible-path uRPF works best | |||
Figure 2: Scenario 2 for illustration of efficacy of uRPF schemes. | Figure 2: Scenario 2 for illustration of efficacy of uRPF schemes. | |||
However, the feasible-path uRPF method has limitations as well. One | ||||
form of limitation naturally occurs when the recommendation of | ||||
propagating the same prefixes to all routers is not followed. | ||||
Another form of limitation can be described as follows. In Scenario | ||||
2 (described above, illustrated in Figure 2), it is possible that the | ||||
second transit provider (ISP-b or AS3) does not propagate the | ||||
prepended route for prefix P1 to the first transit provider (ISP-a or | ||||
AS2). This is because AS3's decision policy permits giving priority | ||||
to a shorter route to prefix P1 via a peer (AS2) over a longer route | ||||
learned directly from the customer (AS1). In such a scenario, AS3 | ||||
would not send any route announcement for prefix P1 to AS2. Then a | ||||
data packet with source address in prefix P1 that originates from AS1 | ||||
and traverses via AS3 to AS2 will get dropped at AS2. | ||||
2.4. SAV using Loose Unicast Reverse Path Filtering | 2.4. SAV using Loose Unicast Reverse Path Filtering | |||
In the loose unicast Reverse Path Filtering (uRPF) method, an ingress | In the loose unicast Reverse Path Filtering (uRPF) method, an ingress | |||
packet at the border router is accepted only if the FIB has one or | packet at the border router is accepted only if the FIB has one or | |||
more prefixes that encompass the source address. That is, a packet | more prefixes that encompass the source address. That is, a packet | |||
is dropped if no route exists in the FIB for the source address. | is dropped if no route exists in the FIB for the source address. | |||
Loose uRPF sacrifices directionality. This method is not effective | Loose uRPF sacrifices directionality. It only drops packets if the | |||
for prevention of address spoofing since there is little unrouted | spoofed address is unreachable in the current FIB (e.g., IANA | |||
address space in IPv4. It only drops packets if the spoofed address | special-purpose prefixes [SPAR-v4][SPAR-v6], unallocated, allocated | |||
is unreachable in the current FIB (e.g. RFC 1918, unallocated, | but currently not routed). | |||
allocated but currently not routed). | ||||
2.5. SAV using VRF Table | 2.5. SAV using VRF Table | |||
The Virtual Routing and Forwarding (VRF) technology allows a router | The Virtual Routing and Forwarding (VRF) technology allows a router | |||
to maintain multiple routing table instances, separate from the | to maintain multiple routing table instances, separate from the | |||
global Routing Information Base (RIB) [Cisco3]. External BGP (eBGP) | global Routing Information Base (RIB) [Juniper][RFC4364]. External | |||
peering sessions send specific routes to be stored in a dedicated VRF | BGP (eBGP) peering sessions send specific routes to be stored in a | |||
table. The uRPF process queries the VRF table (instead of the FIB) | dedicated VRF table. The uRPF process queries the VRF table (instead | |||
for source address validation. VRF table can be dedicated per eBGP | of the FIB) for source address validation. A VRF table can be | |||
peer and used for uRPF for only that peer, resulting in strict mode | dedicated per eBGP peer and used for uRPF for only that peer, | |||
operation. On the other hand, if loose mode uRPF is desired with | resulting in strict mode operation. For implementing loose uRPF on | |||
VRF, then the VRF table can be global (contains VRF routes received | an interface, the corresponding VRF table would be global, i.e., | |||
on all eBGP sessions at the router). | contains the same routes as in the FIB. | |||
3. SAV using Enhanced Feasible-Path uRPF | 3. SAV using Enhanced Feasible-Path uRPF | |||
3.1. Description of the Method | 3.1. Description of the Method | |||
Enhanced feasible-path uRPF adds greater operational robustness and | Enhanced feasible-path uRPF (EFP-uRPF) method adds greater | |||
efficacy to existing uRPF methods discussed in Section 2. The | operational robustness and efficacy to existing uRPF methods | |||
technique is based on the principle that if BGP updates for multiple | discussed in Section 2. That is because it avoids dropping | |||
legitimate data packets and avoids compromising directionality. The | ||||
method is based on the principle that if BGP updates for multiple | ||||
prefixes with the same origin AS were received on different | prefixes with the same origin AS were received on different | |||
interfaces (at border routers), then incoming data packets with | interfaces (at border routers), then incoming data packets with | |||
source addresses in any of those prefixes should be accepted on any | source addresses in any of those prefixes should be accepted on any | |||
of those interfaces. It can be best explained with an example as | of those interfaces. The EFP-uRPF method can be best explained with | |||
follows: | an example as follows: | |||
Let us say, a border router of ISP-A has in its Adj-RIB-Ins [RFC4271] | Let us say, a border router of ISP-A has in its Adj-RIB-Ins [RFC4271] | |||
the set of prefixes {Q1, Q2, Q3} each of which has AS-x as its origin | the set of prefixes {Q1, Q2, Q3} each of which has AS-x as its origin | |||
and AS-x is in ISP-A's customer cone. In this set, the border router | and AS-x is in ISP-A's customer cone. In this set, the border router | |||
received the route for prefix Q1 over a customer facing interface, | received the route for prefix Q1 over a customer facing interface, | |||
while it learned the routes for prefixes Q2 and Q3 from a lateral | while it learned the routes for prefixes Q2 and Q3 from a lateral | |||
peer and an upstream transit provider, respectively. In this example | peer and an upstream transit provider, respectively. In this example | |||
scenario, the enhanced feasible-path uRPF method requires Q1, Q2, and | scenario, the enhanced feasible-path uRPF method requires Q1, Q2, and | |||
Q3 be included in the RPF list for the customer interface in | Q3 be included in the RPF list for the customer interface under | |||
consideration. Loose uRPF (see Section 2.4) is recommended to be | consideration. | |||
applied to the peer and provider interfaces in consideration. | ||||
Thus, enhanced feasible-path uRPF defines feasible paths for customer | Thus, the enhanced feasible-path uRPF (EFP-uRPF) method gathers | |||
interfaces in a more generalized but precise way (as compared to | feasible paths for customer interfaces in a more precise way (as | |||
feasible-path uRPF). | compared to feasible-path uRPF) so that all legitimate packets are | |||
accepted while the directionality property is not compromised. | ||||
The above described EFP-uRPF method is recommended to be applied on | ||||
customer interfaces. It can be extended to design the RPF lists for | ||||
lateral peer interfaces also. That is, the EFP-uRPF method can be | ||||
applied (and loose uRPF avoided) on lateral peer interfaces. That | ||||
will help avoid compromise of directionality for lateral peer | ||||
interfaces (which is inevitable with loose uRPF; see Section 2.4). | ||||
Looking back at Scenarios 1 and 2 (Figure 1 and Figure 2), the | Looking back at Scenarios 1 and 2 (Figure 1 and Figure 2), the | |||
enhanced feasible-path uRPF provides comparable or better performance | enhanced feasible-path uRPF (EFP-uRPF) method works better than the | |||
than the other uRPF methods. Scenario 3 (Figure 3) further | other uRPF methods. Scenario 3 (Figure 3) further illustrates the | |||
illustrates the enhanced feasible-path uRPF method with a more | enhanced feasible-path uRPF method with a more concrete example. In | |||
concrete example. In this scenario, the focus is on operation of the | this scenario, the focus is on operation of the feasible-path uRPF at | |||
feasible-path uRPF at ISP4 (AS4). ISP4 learns a route for prefix P1 | ISP4 (AS4). ISP4 learns a route for prefix P1 via a customer-to- | |||
via a customer-to-provider (C2P) interface from customer ISP2 (AS2). | provider (C2P) interface from customer ISP2 (AS2). This route for P1 | |||
This route for P1 has origin AS1. ISP4 also learns a route for P2 | has origin AS1. ISP4 also learns a route for P2 via another C2P | |||
via another C2P interface from customer ISP3 (AS3). Additionally, | interface from customer ISP3 (AS3). Additionally, AS4 learns a route | |||
AS4 learns a route for P3 via a peer-to-peer (p2p) interface from | for P3 via a lateral peer-to-peer (p2p) interface from ISP5 (AS5). | |||
ISP5 (AS5). Routes for all three prefixes have the same origin AS | Routes for all three prefixes have the same origin AS (i.e., AS1). | |||
(i.e. AS1). Using the enhanced feasible-path uRPF scheme, given the | Using the enhanced feasible-path uRPF scheme, given the commonality | |||
commonality of the origin AS across the routes for P1, P2 and P3, AS4 | of the origin AS across the routes for P1, P2 and P3, AS4 includes | |||
includes all of these prefixes to the RPF list for the customer | all of these prefixes to the RPF list for the customer interfaces | |||
interfaces (from AS2 and AS3). | (from AS2 and AS3). | |||
+----------+ P3[AS5 AS1] +------------+ | +----------+ P3[AS5 AS1] +------------+ | |||
| AS4(ISP4)|<---------------| AS5(ISP5) | | | AS4(ISP4)|<---------------| AS5(ISP5) | | |||
+----------+ (p2p) +------------+ | +----------+ (p2p) +------------+ | |||
/\ /\ /\ | /\ /\ /\ | |||
/ \ / | / \ / | |||
P1[AS2 AS1]/ \P2[AS3 AS1] / | P1[AS2 AS1]/ \P2[AS3 AS1] / | |||
(C2P)/ \(C2P) / | (C2P)/ \(C2P) / | |||
/ \ / | / \ / | |||
+----------+ +----------+ / | +----------+ +----------+ / | |||
skipping to change at page 9, line 10 ¶ | skipping to change at page 9, line 45 ¶ | |||
3.1.1. Algorithm A: Enhanced Feasible-Path uRPF | 3.1.1. Algorithm A: Enhanced Feasible-Path uRPF | |||
The underlying algorithm in the solution method described above can | The underlying algorithm in the solution method described above can | |||
be specified as follows (to be implemented in a transit AS): | be specified as follows (to be implemented in a transit AS): | |||
1. Create the list of unique origin ASes considering only the routes | 1. Create the list of unique origin ASes considering only the routes | |||
in the Adj-RIB-Ins of customer interfaces. Call it Set A = {AS1, | in the Adj-RIB-Ins of customer interfaces. Call it Set A = {AS1, | |||
AS2, ..., ASn}. | AS2, ..., ASn}. | |||
2. Considering all routes in Adj-RIB-Ins for all interfaces | 2. Considering all routes in Adj-RIB-Ins for all interfaces | |||
(customer, lateral peer, and provider), form the set of unique | (customer, lateral peer, and transit provider), form the set of | |||
prefixes that have a common origin AS1. Call it Set X1. | unique prefixes that have a common origin AS1. Call it Set X1. | |||
3. Include set X1 in Reverse Path Filter (RPF) list on all customer | 3. Include set X1 in Reverse Path Filter (RPF) list on all customer | |||
interfaces on which one or more of the prefixes in set X1 were | interfaces on which one or more of the prefixes in set X1 were | |||
received. | received. | |||
4. Repeat Steps 2 and 3 for each of the remaining ASes in Set A | 4. Repeat Steps 2 and 3 for each of the remaining ASes in Set A | |||
(i.e., for ASi, where i = 2, ..., n). | (i.e., for ASi, where i = 2, ..., n). | |||
The above algorithm can be extended to apply EFP-uRPF method to | ||||
lateral peer interfaces also. However, it is left up to the operator | ||||
to decide whether they should apply EFP-uRPF or loose uRPF method on | ||||
lateral peer interfaces. The loose uRPF method is recommended to be | ||||
applied on transit provider interfaces. | ||||
3.2. Operational Recommendations | 3.2. Operational Recommendations | |||
The following operational recommendations will make the operation of | The following operational recommendations will make the operation of | |||
the enhanced feasible-path uRPF robust: | the enhanced feasible-path uRPF robust: | |||
For multi-homed stub AS: | For multi-homed stub AS: | |||
o A multi-homed stub AS SHOULD announce at least one of the prefixes | o A multi-homed stub AS SHOULD announce at least one of the prefixes | |||
it originates to each of its transit provider ASes. | it originates to each of its transit provider ASes. (It is | |||
understood that a single-homed stub AS would announce all prefixes | ||||
it originates to its sole transit provider AS.) | ||||
For non-stub AS: | For non-stub AS: | |||
o A non-stub AS SHOULD also announce at least one of the prefixes it | o A non-stub AS SHOULD also announce at least one of the prefixes it | |||
originates to each of its transit provider ASes. | originates to each of its transit provider ASes. | |||
o Additionally, from the routes it has learned from customers, a | o Additionally, from the routes it has learned from customers, a | |||
non-stub AS SHOULD announce at least one route per origin AS to | non-stub AS SHOULD announce at least one route per origin AS to | |||
each of its transit provider ASes. | each of its transit provider ASes. | |||
(Note: It is worth noting that in the above recommendations if "at | ||||
least one" is replaced with "all", then even traditional feasible- | ||||
path uRPF would work effectively. But the latter recommendation | ||||
("all") does not seem practical.) | ||||
3.3. A Challenging Scenario | 3.3. A Challenging Scenario | |||
It should be observed that in the absence of ASes adhering the above | It should be observed that in the absence of ASes adhering to above | |||
recommendations, the following example scenario may be constructed | recommendations, the following example scenario may be constructed | |||
which poses a challenge for the enhanced feasible-path uRPF (as well | which poses a challenge for the enhanced feasible-path uRPF (as well | |||
as for traditional feasible-path uRPF). In the scenario illustrated | as for traditional feasible-path uRPF). In the scenario illustrated | |||
in Figure 4, since routes for neither P1 nor P2 are propagated on the | in Figure 4, since routes for neither P1 nor P2 are propagated on the | |||
AS2-AS4 interface, the enhanced feasible-path uRPF at AS4 will reject | AS2-AS4 interface (due to the presence of NO_EXPORT Community), the | |||
data packets received on that interface with source addresses in P1 | enhanced feasible-path uRPF at AS4 will reject data packets received | |||
or P2. (Please see slide #10 in [sriram-urpf] for an additional | on that interface with source addresses in P1 or P2. (For a little | |||
scenario.) | more complex example scenario see slide #10 in [sriram-urpf].) | |||
+----------+ | +----------+ | |||
| AS4(ISP4)| | | AS4(ISP4)| | |||
+----------+ | +----------+ | |||
/\ /\ | /\ /\ | |||
/ \ P1[AS3 AS1] | / \ P1[AS3 AS1] | |||
P1 and P2 not / \ P2[AS3 AS1] | P1 and P2 not / \ P2[AS3 AS1] | |||
propagated / \ (C2P) | propagated / \ (C2P) | |||
(C2P) / \ | (C2P) / \ | |||
+----------+ +----------+ | +----------+ +----------+ | |||
| AS2(ISP2)| | AS3(ISP3)| | | AS2(ISP2)| | AS3(ISP3)| | |||
skipping to change at page 10, line 28 ¶ | skipping to change at page 11, line 25 ¶ | |||
/\ /\ | /\ /\ | |||
\ / P1[AS1] | \ / P1[AS1] | |||
P1[AS1] NO_EXPORT \ / P2[AS1] | P1[AS1] NO_EXPORT \ / P2[AS1] | |||
P2[AS1] NO_EXPORT \ / (C2P) | P2[AS1] NO_EXPORT \ / (C2P) | |||
(C2P) \ / | (C2P) \ / | |||
+----------------+ | +----------------+ | |||
| AS1(customer) | | | AS1(customer) | | |||
+----------------+ | +----------------+ | |||
P1, P2 (prefixes originated) | P1, P2 (prefixes originated) | |||
Consider that data packets (sourced from AS1) | ||||
may be received at AS4 with source address | ||||
in P1 or P2 via AS2: | ||||
* Feasible-path uRPF fails | ||||
* Loose uRPF works (but not desirable) | ||||
* Enhanced Feasible-path uRPF with Algorithm A fails | ||||
* Enhanced Feasible-path uRPF with Algorithm B works best | ||||
Figure 4: Illustration of a challenging scenario. | Figure 4: Illustration of a challenging scenario. | |||
3.4. Algorithm B: Enhanced Feasible-Path uRPF with Additional | 3.4. Algorithm B: Enhanced Feasible-Path uRPF with Additional | |||
Flexibility Across Customer Cone | Flexibility Across Customer Cone | |||
Adding further flexibility to the enhanced feasible-path uRPF method | Adding further flexibility to the enhanced feasible-path uRPF method | |||
can help address the potential limitation identified above using the | can help address the potential limitation identified above using the | |||
scenario in Figure 4 (Section 3.3). In the following, "route" refers | scenario in Figure 4 (Section 3.3). In the following, "route" refers | |||
to a route currently existing in the Adj-RIB-in. Including the | to a route currently existing in the Adj-RIB-in. Including the | |||
additional degree of flexibility, the modified algorithm (implemented | additional degree of flexibility, the modified algorithm (implemented | |||
skipping to change at page 11, line 6 ¶ | skipping to change at page 12, line 10 ¶ | |||
2. Create the set of all unique prefixes for which routes exist in | 2. Create the set of all unique prefixes for which routes exist in | |||
Adj-RIB-Ins for the interfaces in Set I. Call it Set P = {P1, | Adj-RIB-Ins for the interfaces in Set I. Call it Set P = {P1, | |||
P2, ..., Pm}. | P2, ..., Pm}. | |||
3. Create the set of all unique origin ASes seen in the routes that | 3. Create the set of all unique origin ASes seen in the routes that | |||
exist in Adj-RIB-Ins for the interfaces in Set I. Call it Set A | exist in Adj-RIB-Ins for the interfaces in Set I. Call it Set A | |||
= {AS1, AS2, ..., ASn}. | = {AS1, AS2, ..., ASn}. | |||
4. Create the set of all unique prefixes for which routes exist in | 4. Create the set of all unique prefixes for which routes exist in | |||
Adj-RIB-Ins of all lateral peer and provider interfaces such that | Adj-RIB-Ins of all lateral peer and transit provider interfaces | |||
each of the routes has its origin AS belonging in Set A. Call it | such that each of the routes has its origin AS belonging in Set | |||
Set Q = {Q1, Q2, ..., Qj}. | A. Call it Set Q = {Q1, Q2, ..., Qj}. | |||
5. Then, Set Z = Union(P,Q) represents the RPF list for every | ||||
customer interface in Set I. | ||||
6. Apply loose uRPF method for SAV on all peer and provider | 5. Then, Set Z = Union(P,Q) is the RPF list that is applied for | |||
interfaces. | every customer interface in Set I. | |||
When Algorithm B (which is more flexible than Algorithm A) is | When Algorithm B (which is more flexible than Algorithm A) is | |||
employed, the type of limitation identified in Figure 4 (Section 3.3) | employed on customer interfaces, the type of limitation identified in | |||
goes away. | Figure 4 (Section 3.3) is overcome and the method works. The | |||
directionality property is minimally compromised, but still the | ||||
proposed EFP-uRPF method with Algorithm B is a much better choice | ||||
(for the scenario under consideration) than applying the loose uRPF | ||||
method which is oblivious to directionality. | ||||
3.5. Augmenting RPF Tables with ROA and IRR Data | So, applying EFP-uRPF method with Algorithm B is recommended on | |||
customer interfaces for the challenging scenarios such as those | ||||
described in Section 3.3. Further, it is recommended that loose uRPF | ||||
method for SAV should be applied on lateral peer and transit provider | ||||
interfaces. | ||||
3.5. Augmenting RPF Lists with ROA and IRR Data | ||||
It is worth emphasizing that an indirect part of the proposal in the | It is worth emphasizing that an indirect part of the proposal in the | |||
draft is that RPF filters may be augmented from secondary sources. | draft is that RPF filters may be augmented from secondary sources. | |||
Hence, the construction of RPF lists using a method proposed in this | Hence, the construction of RPF lists using a method proposed in this | |||
document (Algorithm A or B) can be augmented with data from Route | document (Algorithm A or B) can be augmented with data from Route | |||
Origin Authorization (ROA) [RFC6482] as well as Internet Routing | Origin Authorization (ROA) [RFC6482] as well as Internet Routing | |||
Registry (IRR) data. Prefixes from registered ROAs or IRR route | Registry (IRR) data. Prefixes from registered ROAs and IRR route | |||
objects that include ASes in an ISP's customer cone SHOULD be used to | objects that include ASes in an ISP's customer cone SHOULD be used to | |||
augment the appropriate RPF tables. This will help make the RPF | augment the appropriate RPF lists. (Note: The ASes in a customer | |||
tables more robust about source addresses that may be legitimately | cone are obtained in Step 3 of Algorithm B in Section 3.4.) This | |||
used by customers of the ISP. | will help make the RPF lists more robust about source addresses that | |||
may be legitimately used by customers of the ISP. | ||||
3.6. Implementation Considerations | 3.6. Implementation and Operations Considerations | |||
3.6.1. Impact on FIB Memory Size Requirement | 3.6.1. Impact on FIB Memory Size Requirement | |||
The existing RPF checks in edge routers take advantage of existing | The existing RPF checks in edge routers take advantage of existing | |||
line card implementations to perform the RPF functions. For | line card implementations to perform the RPF functions. For | |||
implementation of the enhanced feasible-path uRPF, the general | implementation of the enhanced feasible-path uRPF, the general | |||
necessary feature would be to extend the line cards to take arbitrary | necessary feature would be to extend the line cards to take arbitrary | |||
RPF lists that are not necessarily the same as the existing FIB | RPF lists that are not necessarily the same as the existing FIB | |||
contents. In the algorithms (Section 3.1.1 and Section 3.4) | contents. In the algorithms (Section 3.1.1 and Section 3.4) | |||
described here, the RPF lists are constructed by applying a set of | described here, the RPF lists are constructed by applying a set of | |||
rules to all received BGP routes (not just those selected as best | rules to all received BGP routes (not just those selected as best | |||
path and installed in FIB). The concept of uRPF querying an RPF | path and installed in FIB). The concept of uRPF querying an RPF list | |||
table (instead of the FIB) is similar to uRPF querying VRF table (see | (instead of the FIB) is similar to uRPF querying a VRF table (see | |||
(Section 2.5). | (Section 2.5). | |||
The techniques described in this document require that there should | The techniques described in this document require that there should | |||
be additional memory (i.e., TCAM) available to store the RPF lists in | be additional memory (i.e., TCAM) available to store the RPF lists in | |||
line cards. For an ISP's AS, the RPF list size for each line card | line cards. For an ISP's AS, the RPF list size for each line card | |||
will roughly and conservatively equal the total number of prefixes in | will roughly and conservatively equal the total number of prefixes in | |||
its customer cone (assuming the algorithm in Section 3.4 is used). | its customer cone (assuming Algorithm B in Section 3.4 is used). | |||
(Note: Most ISP customer cone scenarios would not require the | (Note: Most ISP customer cone scenarios would not require Algorithm | |||
algorithm in Section 3.4, but instead be served best by the algorithm | B, but instead be served best by Algorithm A (see Section 3.1.1) | |||
in Section 3.1.1, which requires much less FIB memory.) The | which requires much less FIB memory. This is because Algorithm B is | |||
following table shows the measured customer cone sizes for various | applicable for the less common scenarios such as Scenario 4 in | |||
types of ISPs [sriram-ripe63]: | Figure 4 while Algorithm A is applicable for the more common | |||
scenarios such as Scenario 3 in Figure 3.) | ||||
The following table shows the measured customer cone sizes for | ||||
various types of ISPs [sriram-ripe63]: | ||||
+---------------------------------+---------------------------------+ | +---------------------------------+---------------------------------+ | |||
| Type of ISP | Measured Customer Cone Size in | | | Type of ISP | Measured Customer Cone Size in | | |||
| | # Prefixes (in turn this is an | | | | # Prefixes (in turn this is an | | |||
| | estimate for RPF list size on | | | | estimate for RPF list size on | | |||
| | line card) | | | | line card) | | |||
+---------------------------------+---------------------------------+ | +---------------------------------+---------------------------------+ | |||
| Very Large Global ISP | 32392 | | | Very Large Global ISP | 32392 | | |||
| ------------------------------- | ------------------------------- | | | ------------------------------- | ------------------------------- | | |||
| Very Large Global ISP | 29528 | | | Very Large Global ISP | 29528 | | |||
skipping to change at page 12, line 45 ¶ | skipping to change at page 14, line 14 ¶ | |||
A very large global ISP's router line card is likely to have a FIB | A very large global ISP's router line card is likely to have a FIB | |||
size large enough to accommodate 2 to 6 million routes [Cisco1]. | size large enough to accommodate 2 to 6 million routes [Cisco1]. | |||
Similarly, the line cards in routers corresponding to a large global | Similarly, the line cards in routers corresponding to a large global | |||
ISP, a mid-size global ISP, and a regional ISP are likely to have FIB | ISP, a mid-size global ISP, and a regional ISP are likely to have FIB | |||
sizes large enough to accommodate about 1 million, 0.5 million, and | sizes large enough to accommodate about 1 million, 0.5 million, and | |||
100K routes, respectively [Cisco2]. Comparing these FIB size numbers | 100K routes, respectively [Cisco2]. Comparing these FIB size numbers | |||
with the corresponding RPF list size numbers in Table 1, it can be | with the corresponding RPF list size numbers in Table 1, it can be | |||
surmised that the conservatively estimated RPF list size is only a | surmised that the conservatively estimated RPF list size is only a | |||
small fraction of the anticipated FIB memory size under relevant ISP | small fraction of the anticipated FIB memory size under relevant ISP | |||
scenarios. | scenarios. What is meant here by relevant ISP scenarios is that only | |||
smaller ISPs (and possibly some mid-size and regional ISPs) are | ||||
expected to implement the proposed EFP-uRPF method since it is most | ||||
effective closer to the edges of the Internet. | ||||
3.6.2. Coping with BGP's Transient Behavior | 3.6.2. Coping with BGP's Transient Behavior | |||
BGP routing announcements can exhibit transient behavior. Routes may | BGP routing announcements can exhibit transient behavior. Routes may | |||
be withdrawn temporarily and then re-announced due to transient | be withdrawn temporarily and then re-announced due to transient | |||
conditions such as BGP session reset or link failure-recovery. To | conditions such as BGP session reset or link failure-recovery. To | |||
cope with this, hysteresis should be introduced in the maintenance of | cope with this, hysteresis should be introduced in the maintenance of | |||
the RPF lists. Changes to the RPF lists SHOULD be delayed by a pre- | the RPF lists. Deleting entries from the RPF lists SHOULD be delayed | |||
determined amount (TBD) when responding to route withdrawals. This | by a pre-determined amount (the value based on operational | |||
should help suppress the effects due to the transients in BGP. | experience) when responding to route withdrawals. This should help | |||
suppress the effects due to the transients in BGP. | ||||
3.7. Summary of Recommendations | 3.7. Summary of Recommendations | |||
Depending on the scenario, an ISP or enterprise AS operator should | Depending on the scenario, an ISP or enterprise AS operator should | |||
follow one of the following recommendations concerning uRPF/SAV: | follow one of the following recommendations concerning uRPF/SAV: | |||
1. For directly connected networks, i.e., subnets directly connected | 1. For directly connected networks, i.e., subnets directly connected | |||
to the AS and not multi-homed, the AS in consideration SHOULD | to the AS and not multi-homed, the AS under consideration SHOULD | |||
perform ACL-based SAV. | perform ACL-based source address validation (SAV). | |||
2. For a directly connected single-homed stub AS (customer), the AS | 2. For a directly connected single-homed stub AS (customer), the AS | |||
in consideration SHOULD perform SAV based on the strict uRPF | under consideration SHOULD perform SAV based on the strict uRPF | |||
method. | method. | |||
3. For all other scenarios: | 3. For all other scenarios: | |||
* If the scenario does not involve complexity such as NO_EXPORT | * If the scenario does not involve complexity such as NO_EXPORT | |||
of routes (see Section 3.3, Figure 4), then the enhanced | of routes (see Section 3.3, Figure 4), then the enhanced | |||
feasible-path uRPF method in Algorithm A (see Section 3.1.1) | feasible-path uRPF method in Algorithm A (see Section 3.1.1) | |||
SHOULD be applied. | SHOULD be applied on customer interfaces. | |||
* Else, if the scenario involves the aforementioned complexity, | * Else, if the scenario involves the complexity then the | |||
then the enhanced feasible-path uRPF method in Algorithm B | enhanced feasible-path uRPF method in Algorithm B (see | |||
(see Section 3.4) SHOULD be applied. | Section 3.4) SHOULD be applied on customer interfaces. | |||
* In general, loose uRPF method for SAV SHOULD be applied on | ||||
lateral peer and transit provider interfaces. However, for | ||||
lateral peer interfaces, in some cases an operator MAY apply | ||||
EFP-uRPF method with Algorithm A if they deem it suitable. | ||||
It is also recommended that prefixes from registered ROAs and IRR | ||||
route objects that include ASes in an ISP's customer cone SHOULD be | ||||
used to augment the appropriate RPF lists. | ||||
4. Security Considerations | 4. Security Considerations | |||
The security considerations in BCP 38 [RFC2827] and BCP 84 [RFC3704] | The security considerations in BCP 38 [RFC2827] and BCP 84 [RFC3704] | |||
apply for this document as well. In addition, AS operator should | apply for this document as well. In addition, AS operator should | |||
apply the uRPF method that performs best (i.e., with zero or | apply the uRPF method that performs best (i.e., with zero or | |||
insignificant possibility of dropping legitimate data packets) for | insignificant possibility of dropping legitimate data packets) for | |||
the type of peer (customer, provider, etc.) and the nature of | the type of peer (customer, transit provider, etc.) and the nature of | |||
customer cone scenario that apply (see Section 3.1.1 and | customer cone scenario that apply (see Section 3.1.1 and | |||
Section 3.4). | Section 3.4). | |||
5. IANA Considerations | 5. IANA Considerations | |||
This document does not request new capabilities or attributes. It | This document does not request new capabilities or attributes. It | |||
does not create any new IANA registries. | does not create any new IANA registries. | |||
6. Acknowledgements | 6. Acknowledgements | |||
The authors would like to thank Job Snijders, Marco Marzetti, Marco | The authors would like to thank Sandy Murphy, Job Snijders, Marco | |||
d'Itri, Nick Hilliard, Gert Doering, Igor Gashinsky, Igor Lubashev, | Marzetti, Marco d'Itri, Nick Hilliard, Gert Doering, Fred Baker, Igor | |||
Barry Greene, Amir Herzberg, Ruediger Volk, Jared Mauch, Oliver | Gashinsky, Igor Lubashev, Andrei Robachevsky, Barry Greene, Amir | |||
Borchert, Mehmet Adalier, and Joel Jaeggli for comments and | Herzberg, Ruediger Volk, Jared Mauch, Oliver Borchert, Mehmet | |||
suggestions. | Adalier, and Joel Jaeggli for comments and suggestions. | |||
7. Informative References | 7. References | |||
7.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>. | ||||
[RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: | ||||
Defeating Denial of Service Attacks which employ IP Source | ||||
Address Spoofing", BCP 38, RFC 2827, DOI 10.17487/RFC2827, | ||||
May 2000, <https://www.rfc-editor.org/info/rfc2827>. | ||||
[RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed | ||||
Networks", BCP 84, RFC 3704, DOI 10.17487/RFC3704, March | ||||
2004, <https://www.rfc-editor.org/info/rfc3704>. | ||||
[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>. | ||||
7.2. Informative References | ||||
[CAIDA] "Information for AS 174 (COGENT-174)", CAIDA Spoofer | [CAIDA] "Information for AS 174 (COGENT-174)", CAIDA Spoofer | |||
Project , <https://spoofer.caida.org/as.php?asn=174>. | Project , <https://spoofer.caida.org/as.php?asn=174>. | |||
[Cisco1] "Internet Routing Table Growth Causes ROUTING-FIB- | [Cisco1] "Internet Routing Table Growth Causes ROUTING-FIB- | |||
4-RSRC_LOW Message on Trident-Based Line Cards", Cisco | 4-RSRC_LOW Message on Trident-Based Line Cards", Cisco | |||
Trouble-shooting Tech-notes , January 2014, | Trouble-shooting Tech-notes , January 2014, | |||
<https://www.cisco.com/c/en/us/support/docs/routers/asr- | <https://www.cisco.com/c/en/us/support/docs/routers/asr- | |||
9000-series-aggregation-services-routers/116999-problem- | 9000-series-aggregation-services-routers/116999-problem- | |||
line-card-00.html>. | line-card-00.html>. | |||
[Cisco2] "Cisco Nexus 7000 Series NX-OS Unicast Routing | [Cisco2] "Cisco Nexus 7000 Series NX-OS Unicast Routing | |||
Configuration Guide, Release 5.x (Chapter 15: Managing the | Configuration Guide, Release 5.x (Chapter 15: Managing the | |||
Unicast RIB and FIB)", Cisco Configuration Guides , March | Unicast RIB and FIB)", Cisco Configuration Guides , March | |||
2018, <https://www.cisco.com/c/en/us/td/docs/switches/data | 2018, <https://www.cisco.com/c/en/us/td/docs/switches/data | |||
center/sw/5_x/nx- | center/sw/5_x/nx- | |||
os/unicast/configuration/guide/l3_cli_nxos/ | os/unicast/configuration/guide/l3_cli_nxos/ | |||
l3_NewChange.html>. | l3_NewChange.html>. | |||
[Cisco3] "Unicast reverse path forwarding enhancements for the | [Firmin] Firmin, F., "The Evolved Packet Core", 3GPP The Mobile | |||
Internet service provider", Cisco white paper , 2005, | Broadband Standard , <https://www.3gpp.org/technologies/ | |||
<https://www.cisco.com/c/dam/en_us/about/security/ | keywords-acronyms/100-the-evolved-packet-core>. | |||
intelligence/urpf.pdf>. | ||||
[ISOC] Vixie (Ed.), P., "Addressing the challenge of IP | [ISOC] Vixie (Ed.), P., "Addressing the challenge of IP | |||
spoofing", ISOC report , September 2015, | spoofing", ISOC report , September 2015, | |||
<https://www.us-cert.gov/ncas/alerts/TA14-017A>. | <https://www.internetsociety.org/resources/doc/2015/ | |||
addressing-the-challenge-of-ip-spoofing/>. | ||||
[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>. | ||||
[RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: | [Juniper] "Creating Unique VPN Routes Using VRF Tables", Juniper | |||
Defeating Denial of Service Attacks which employ IP Source | Networks TechLibrary , March 2019, | |||
Address Spoofing", BCP 38, RFC 2827, DOI 10.17487/RFC2827, | <https://www.juniper.net/documentation/en_US/junos/topics/ | |||
May 2000, <https://www.rfc-editor.org/info/rfc2827>. | topic-map/l3-vpns-routes-vrf-tables.html#id-understanding- | |||
virtual-routing-and-forwarding-tables>. | ||||
[RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed | [RFC4036] Sawyer, W., "Management Information Base for Data Over | |||
Networks", BCP 84, RFC 3704, DOI 10.17487/RFC3704, March | Cable Service Interface Specification (DOCSIS) Cable Modem | |||
2004, <https://www.rfc-editor.org/info/rfc3704>. | Termination Systems for Subscriber Management", RFC 4036, | |||
DOI 10.17487/RFC4036, April 2005, | ||||
<https://www.rfc-editor.org/info/rfc4036>. | ||||
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private | |||
Border Gateway Protocol 4 (BGP-4)", RFC 4271, | Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | |||
DOI 10.17487/RFC4271, January 2006, | 2006, <https://www.rfc-editor.org/info/rfc4364>. | |||
<https://www.rfc-editor.org/info/rfc4271>. | ||||
[RFC6482] Lepinski, M., Kent, S., and D. Kong, "A Profile for Route | [RFC6482] Lepinski, M., Kent, S., and D. Kong, "A Profile for Route | |||
Origin Authorizations (ROAs)", RFC 6482, | Origin Authorizations (ROAs)", RFC 6482, | |||
DOI 10.17487/RFC6482, February 2012, | DOI 10.17487/RFC6482, February 2012, | |||
<https://www.rfc-editor.org/info/rfc6482>. | <https://www.rfc-editor.org/info/rfc6482>. | |||
[RFC6811] Mohapatra, P., Scudder, J., Ward, D., Bush, R., and R. | [RFC6811] Mohapatra, P., Scudder, J., Ward, D., Bush, R., and R. | |||
Austein, "BGP Prefix Origin Validation", RFC 6811, | Austein, "BGP Prefix Origin Validation", RFC 6811, | |||
DOI 10.17487/RFC6811, January 2013, | DOI 10.17487/RFC6811, January 2013, | |||
<https://www.rfc-editor.org/info/rfc6811>. | <https://www.rfc-editor.org/info/rfc6811>. | |||
[RFC7454] Durand, J., Pepelnjak, I., and G. Doering, "BGP Operations | [RFC7454] Durand, J., Pepelnjak, I., and G. Doering, "BGP Operations | |||
and Security", BCP 194, RFC 7454, DOI 10.17487/RFC7454, | and Security", BCP 194, RFC 7454, DOI 10.17487/RFC7454, | |||
February 2015, <https://www.rfc-editor.org/info/rfc7454>. | February 2015, <https://www.rfc-editor.org/info/rfc7454>. | |||
[RRL] "Response Rate Limiting in the Domain Name System", | [SPAR-v4] "IANA IPv4 Special-Purpose Address Registry", IANA , | |||
Redbarn blog , <http://www.redbarn.org/dns/ratelimits>. | <https://www.iana.org/assignments/iana-ipv4-special- | |||
registry/iana-ipv4-special-registry.xhtml>. | ||||
[SPAR-v6] "IANA IPv6 Special-Purpose Address Registry", IANA , | ||||
<https://www.iana.org/assignments/iana-ipv6-special- | ||||
registry/iana-ipv6-special-registry.xhtml>. | ||||
[sriram-ripe63] | [sriram-ripe63] | |||
Sriram, K. and R. Bush, "Estimating CPU Cost of BGPSEC on | Sriram, K. and R. Bush, "Estimating CPU Cost of BGPSEC on | |||
a Router", Presented at RIPE-63; also, at IETF-83 SIDR WG | a Router", Presented at RIPE-63; also, at IETF-83 SIDR WG | |||
Meeting, March 2012, | Meeting, March 2012, | |||
<http://www.ietf.org/proceedings/83/slides/ | <http://www.ietf.org/proceedings/83/slides/ | |||
slides-83-sidr-7.pdf>. | slides-83-sidr-7.pdf>. | |||
[sriram-urpf] | [sriram-urpf] | |||
Sriram et al., K., "Enhanced Feasible-Path Unicast Reverse | Sriram et al., K., "Enhanced Feasible-Path Unicast Reverse | |||
Path Filtering", Presented at the OPSEC WG Meeting, | Path Filtering", Presented at the OPSEC WG Meeting, | |||
IETF-101 London , March 2018, | IETF-101 London , March 2018, | |||
<https://datatracker.ietf.org/meeting/101/materials/ | <https://datatracker.ietf.org/meeting/101/materials/ | |||
slides-101-opsec-draft-sriram-opsec-urpf-improvements-00>. | slides-101-opsec-draft-sriram-opsec-urpf-improvements-00>. | |||
[TA14-017A] | ||||
"UDP-Based Amplification Attacks", US-CERT alert | ||||
TA14-017A , January 2014, | ||||
<https://www.us-cert.gov/ncas/alerts/TA14-017A>. | ||||
Authors' Addresses | Authors' Addresses | |||
Kotikalapudi Sriram | Kotikalapudi Sriram | |||
USA National Institute of Standards and Technology | USA National Institute of Standards and Technology | |||
100 Bureau Drive | 100 Bureau Drive | |||
Gaithersburg MD 20899 | Gaithersburg MD 20899 | |||
USA | USA | |||
Email: ksriram@nist.gov | Email: ksriram@nist.gov | |||
End of changes. 58 change blocks. | ||||
215 lines changed or deleted | 292 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/ |