draft-ietf-opsec-urpf-improvements-00.txt | draft-ietf-opsec-urpf-improvements-01.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 | Intended status: Best Current Practice USA NIST | |||
Expires: October 22, 2018 J. Haas | Expires: April 24, 2019 J. Haas | |||
Juniper Networks, Inc. | Juniper Networks, Inc. | |||
April 20, 2018 | October 21, 2018 | |||
Enhanced Feasible-Path Unicast Reverse Path Filtering | Enhanced Feasible-Path Unicast Reverse Path Filtering | |||
draft-ietf-opsec-urpf-improvements-00 | draft-ietf-opsec-urpf-improvements-01 | |||
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) [BCP84] for source address | |||
validation (SAV) [BCP38]. The strict uRPF is inflexible about | validation (SAV) [BCP38]. The strict uRPF is inflexible about | |||
directionality, the loose uRPF is oblivious to directionality, and | directionality, the loose uRPF is oblivious to directionality, and | |||
the current feasible-path uRPF attempts to strike a balance between | the current feasible-path uRPF attempts to strike a balance between | |||
the two [BCP84]. However, as shown in this draft, the existing | the two [BCP84]. However, as shown in this draft, the existing | |||
feasible-path uRPF still has short comings. This document describes | feasible-path uRPF still has short comings. This document describes | |||
skipping to change at page 1, line 43 ¶ | skipping to change at page 1, line 43 ¶ | |||
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 22, 2018. | This Internet-Draft will expire on April 24, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 24 ¶ | skipping to change at page 2, line 24 ¶ | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
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 . . . 3 | |||
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 . . . . . 6 | |||
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 . . . . . . 8 | |||
3.2. Operational Recommendations . . . . . . . . . . . . . . . 9 | 3.2. Operational Recommendations . . . . . . . . . . . . . . . 9 | |||
3.3. A Challenging Scenario . . . . . . . . . . . . . . . . . 9 | 3.3. A Challenging Scenario . . . . . . . . . . . . . . . . . 9 | |||
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 . . . . . . . . . . . . 10 | |||
3.5. Implementation Considerations . . . . . . . . . . . . . . 11 | 3.5. Augmenting RPF Tables with ROA and IRR Data . . . . . . . 11 | |||
3.5.1. Impact on FIB Memory Size Requirement . . . . . . . . 11 | 3.6. Implementation Considerations . . . . . . . . . . . . . . 11 | |||
3.6. Summary of Recommendations . . . . . . . . . . . . . . . 12 | 3.6.1. Impact on FIB Memory Size Requirement . . . . . . . . 11 | |||
3.6.2. Coping with BGP's Transient Behavior . . . . . . . . 12 | ||||
3.7. Summary of Recommendations . . . . . . . . . . . . . . . 13 | ||||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | |||
7. Informative References . . . . . . . . . . . . . . . . . . . 13 | 7. Informative References . . . . . . . . . . . . . . . . . . . 14 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
1. Introduction | 1. Introduction | |||
This internet draft identifies a need for improvement of the unicast | This internet draft identifies a need for improvement of the unicast | |||
Reverse Path Filtering (uRPF) techniques [RFC2827] for source address | Reverse Path Filtering (uRPF) techniques [RFC2827] for source address | |||
validation (SAV) [RFC3704]. The strict uRPF is inflexible about | validation (SAV) [RFC3704]. The strict uRPF is inflexible about | |||
directionality, the loose uRPF is oblivious to directionality, and | directionality, the loose uRPF is oblivious to directionality, and | |||
the current feasible-path uRPF attempts to strike a balance between | the current feasible-path uRPF attempts to strike a balance between | |||
the two [RFC3704]. However, as shown in this draft, the existing | the two [RFC3704]. However, as shown in this draft, the existing | |||
feasible-path uRPF still has short comings. Even with the feasible- | feasible-path uRPF still has short comings. Even with the feasible- | |||
skipping to change at page 3, line 15 ¶ | skipping to change at page 3, line 17 ¶ | |||
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.5. | Implementation considerations are discussed in Section 3.6. | |||
Note: Definition of Reverse Path Filtering (RPF) list: The list of | Note: 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. | |||
Note: Throughout this document, the routes in consideration are | Note: Throughout this document, the routes in consideration are | |||
assumed to have been vetted based on prefix filtering [RFC7454] and | assumed to have been vetted based on prefix filtering [RFC7454] and | |||
possibly (in the future) origin validation [RFC6811]. | possibly (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 | |||
skipping to change at page 3, line 46 ¶ | skipping to change at page 3, line 48 ¶ | |||
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]. There are also | |||
some techniques used for mitigating reflection attacks [RRL] | some techniques used for mitigating reflection attacks [RRL] | |||
[TA14-017A], which are used to amplify the impact in DDoS attacks. | [TA14-017A], which are used to amplify the impact in DDoS attacks. | |||
Employing a combination of these preventive techniques (as | Employing a combination of these preventive techniques (as | |||
applicable) in enterprise and ISP border routers, broadband and | applicable) in enterprise and ISP border routers, broadband and | |||
wireless access network, data centers, and DNS servers provides | wireless access network, data centers, and DNS/NTP servers provides | |||
reasonably effective protection against DDoS attacks. | reasonably effective protection against DDoS attacks. | |||
Source address validation (SAV) is performed in network edge devices | Source address validation (SAV) is performed in network edge devices | |||
such as border routers, Cable Modem Termination Systems (CMTS), | such as border routers, Cable Modem Termination Systems (CMTS), | |||
Digital Subscriber Line Access Multiplexers (DSLAM), and Packet Data | Digital Subscriber Line Access Multiplexers (DSLAM), and Packet Data | |||
Network (PDN) gateways in mobile networks. Ingress Access Control | Network (PDN) gateways in mobile networks. Ingress Access Control | |||
List (ACL) and unicast Reverse Path Filtering (uRPF) are techniques | List (ACL) and unicast Reverse Path Filtering (uRPF) are techniques | |||
employed for implementing SAV [RFC2827] [RFC3704] [ISOC]. | 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 Internet Protocol (IP) packets. Any packet | |||
with a source address that does not match the filter is dropped. The | with a source address that does not match the filter is dropped. The | |||
ACLs for the ingress/egress filters need to be maintained to keep | ACLs for the ingress/egress filters need to be maintained to keep | |||
them up to date. Updating the ACLs is an operator driven manual | them up to date. Updating the ACLs is an operator driven manual | |||
process, and hence operationally difficult or infeasible. | process, and hence operationally difficult or infeasible. | |||
skipping to change at page 4, line 35 ¶ | skipping to change at page 4, line 40 ¶ | |||
2.2. SAV using Strict Unicast Reverse Path Filtering | 2.2. SAV using Strict Unicast Reverse Path Filtering | |||
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 and there is asymmetric | limitations when networks are multi-homed, routes are not | |||
routing of packets. Asymmetric routing occurs (see Figure 1) when a | symmetrically announced to all transit providers, and there is | |||
customer AS announces one prefix (P1) to one transit provider (ISP-a) | asymmetric routing of data packets. Asymmetric routing occurs (see | |||
and a different prefix (P2) to another transit provider (ISP-b), but | Figure 1) when a customer AS announces one prefix (P1) to one transit | |||
routes data packets with source addresses in the second prefix (P2) | provider (ISP-a) and a different prefix (P2) to another transit | |||
to the first transit provider (ISP-a) or vice versa. | provider (ISP-b), but routes data packets with source addresses in | |||
the second prefix (P2) to the first transit provider (ISP-a) or vice | ||||
versa. | ||||
+------------+ ---- P1[AS2 AS1] ---> +------------+ | +------------+ ---- P1[AS2 AS1] ---> +------------+ | |||
| AS2(ISP-a) | <----P2[AS3 AS1] ---- | AS3(ISP-b)| | | AS2(ISP-a) | <----P2[AS3 AS1] ---- | AS3(ISP-b)| | |||
+------------+ +------------+ | +------------+ +------------+ | |||
/\ /\ | /\ /\ | |||
\ / | \ / | |||
\ / | \ / | |||
\ / | \ / | |||
P1[AS1]\ /P2[AS1] | P1[AS1]\ /P2[AS1] | |||
\ / | \ / | |||
skipping to change at page 5, line 25 ¶ | skipping to change at page 5, line 25 ¶ | |||
| AS1(customer) | | | AS1(customer) | | |||
+-----------------------+ | +-----------------------+ | |||
P1, P2 (prefixes originated) | P1, P2 (prefixes originated) | |||
Consider data packets received at AS2 | Consider data packets received at AS2 | |||
(1) from AS1 with source address in P2, or | (1) from AS1 with source address in P2, or | |||
(2) from AS3 that originated from AS1 | (2) from AS3 that originated from AS1 | |||
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 ineffective in IPv4) | * 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 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 table. This method | |||
relies on announcements for the same prefixes (albeit some may be | relies on announcements for the same prefixes (albeit some may be | |||
prepended to effect lower preference) propagating to all routers | prepended to effect lower preference) propagating to all routers | |||
performing feasible-path uRPF checks. Therefore, in the multi-homing | performing feasible-path uRPF checks. Therefore, in the multi-homing | |||
scenario, if the customer AS announces routes for both prefixes (P1, | scenario (see Figure 2), if the customer AS announces routes for both | |||
P2) to both transit providers (with suitable prepends if needed for | prefixes (P1, P2) to both transit providers (with suitable prepends | |||
traffic engineering), then the feasible-path uRPF method works (see | if needed for traffic engineering), then the feasible-path uRPF | |||
Figure 2). It should be mentioned that the feasible-path uRPF works | method works. It should be mentioned that the feasible-path uRPF | |||
in this scenario only if customer routes are preferred at AS2 and AS3 | works in this scenario only if customer routes are preferred at AS2 | |||
over a shorter non-customer route. | and AS3 over a shorter non-customer route. | |||
+------------+ 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 25 ¶ | skipping to change at page 6, line 25 ¶ | |||
| AS1(customer) | | | AS1(customer) | | |||
+-----------------------+ | +-----------------------+ | |||
P1, P2 (prefixes originated) | P1, P2 (prefixes originated) | |||
Consider data packets received at AS2 via AS3 | Consider data packets received at AS2 via AS3 | |||
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 ineffective in IPv4) | * 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 | However, the feasible-path uRPF method has limitations as well. One | |||
form of limitation naturally occurs when the recommendation of | form of limitation naturally occurs when the recommendation of | |||
propagating the same prefixes to all routers is not followed. | propagating the same prefixes to all routers is not followed. | |||
Another form of limitation can be described as follows. In Scenario | Another form of limitation can be described as follows. In Scenario | |||
2 (described above, illustrated in Figure 2), it is possible that the | 2 (described above, illustrated in Figure 2), it is possible that the | |||
second transit provider (ISP-b or AS3) does not propagate the | second transit provider (ISP-b or AS3) does not propagate the | |||
skipping to change at page 7, line 7 ¶ | skipping to change at page 7, line 7 ¶ | |||
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. This method is not effective | |||
for prevention of address spoofing since there is little unrouted | for prevention of address spoofing since there is little unrouted | |||
address space in IPv4. It only drops packets if the spoofed address | address space in IPv4. It only drops packets if the spoofed address | |||
is unreachable in the current FIB (e.g. RFC 1918, unallocated, | is unreachable in the current FIB (e.g. RFC 1918, unallocated, | |||
allocated but currently not routed). | allocated but currently not routed). | |||
2.5. SAV using VRF Table | ||||
The Virtual Routing and Forwarding (VRF) technology allows a router | ||||
to maintain multiple routing table instances, separate from the | ||||
global Routing Information Base (RIB) [Cisco3]. External BGP (eBGP) | ||||
peering sessions send specific routes to be stored in a dedicated VRF | ||||
table. The uRPF process queries the VRF table (instead of the FIB) | ||||
for source address validation. VRF table can be dedicated per eBGP | ||||
peer and used for uRPF for only that peer, resulting in strict mode | ||||
operation. On the other hand, if loose mode uRPF is desired with | ||||
VRF, then the VRF table can be global (contains VRF routes received | ||||
on all eBGP sessions at the router). | ||||
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 adds greater operational robustness and | |||
efficacy to existing uRPF methods discussed in Section 2. The | efficacy to existing uRPF methods discussed in Section 2. The | |||
technique is based on the principle that if BGP updates for multiple | technique 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. It can be best explained with an example as | |||
follows: | follows: | |||
Let us say, a border router of ISP-A has in its Adj-RIB-Ins | Let us say, a border router of ISP-A has in its Adj-RIB-Ins [RFC4271] | |||
[RFC4271]. the set of prefixes {Q1, Q2, Q3} each of which has AS-x | the set of prefixes {Q1, Q2, Q3} each of which has AS-x as its origin | |||
as its origin and AS-x is in ISP-A's customer cone. Further, the | and AS-x is in ISP-A's customer cone. Further, the border router | |||
border router received a route for prefix Q1 over a customer facing | received a route for prefix Q1 over a customer facing interface, | |||
interface, while it learned routes for prefixes Q2 and Q3 from a | while it learned routes for prefixes Q2 and Q3 from a lateral peer | |||
lateral peer and an upstream transit provider, respectively. In this | and an upstream transit provider, respectively. In this example | |||
example scenario, the enhanced feasible-path uRPF method requires Q1, | scenario, the enhanced feasible-path uRPF method requires Q1, Q2, and | |||
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 in | |||
consideration. Loose uRPF (see Section 2.4) is recommended to be | consideration. Loose uRPF (see Section 2.4) is recommended to be | |||
applied to the peer and provider interfaces in consideration. | applied to the peer and provider interfaces in consideration. | |||
Thus, enhanced feasible-path uRPF defines feasible paths for customer | Thus, enhanced feasible-path uRPF defines feasible paths for customer | |||
interfaces in a more generalized but precise way (as compared to | interfaces in a more generalized but precise way (as compared to | |||
feasible-path uRPF). | feasible-path uRPF). | |||
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 provides comparable or better performance | |||
than the other uRPF methods. Scenario 3 (Figure 3) further | than the other uRPF methods. Scenario 3 (Figure 3) further | |||
skipping to change at page 9, line 29 ¶ | skipping to change at page 9, line 41 ¶ | |||
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 | (Note: It is worth noting that in the above recommendations if "at | |||
least one" is replaced with "all", then even traditional feasible- | least one" is replaced with "all", then even traditional feasible- | |||
path uRPF will work as effectively.) | 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 the 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, the enhanced feasible-path uRPF at AS4 will reject | |||
data packets received on that interface with source addresses in P1 | data packets received on that interface with source addresses in P1 | |||
or P2. | or P2. (Please see slide #10 in [sriram-urpf] for an additional | |||
scenario.) | ||||
+----------+ | +----------+ | |||
| 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) / \ | |||
+----------+ +----------+ | +----------+ +----------+ | |||
skipping to change at page 11, line 17 ¶ | skipping to change at page 11, line 20 ¶ | |||
5. Then, Set Z = Union(P,Q) represents the RPF list for every | 5. Then, Set Z = Union(P,Q) represents the RPF list for every | |||
customer interface in Set I. | customer interface in Set I. | |||
6. Apply loose uRPF method for SAV on all peer and provider | 6. Apply loose uRPF method for SAV on all peer and provider | |||
interfaces. | interfaces. | |||
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, the type of limitation identified in Figure 4 (Section 3.3) | |||
goes away. | goes away. | |||
3.5. Implementation Considerations | 3.5. Augmenting RPF Tables with ROA and IRR Data | |||
It is worth emphasizing that an indirect part of the proposal in the | ||||
draft is that RPF filters may be augmented from secondary sources. | ||||
Hence, the construction of RPF lists using a method proposed in this | ||||
document (Algorithm A or B) can be augmented with data from Route | ||||
Origin Authorization (ROA) [RFC6482] as well as Internet Routing | ||||
Registry (IRR) data. Prefixes from registered ROAs or IRR route | ||||
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 | ||||
tables more robust about source addresses that may be legitimately | ||||
used by customers of the ISP. | ||||
3.6. Implementation Considerations | ||||
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). | path and installed in FIB). The concept of uRPF querying an RPF | |||
table (instead of the FIB) is similar to uRPF querying VRF table (see | ||||
3.5.1. Impact on FIB Memory Size Requirement | (Section 2.5). | |||
The techniques described here require that there should be FIB memory | The techniques described in this document require that there should | |||
(i.e., TCAM) available to store the RPF lists in line cards. For an | be additional memory (i.e., TCAM) available to store the RPF lists in | |||
ISP's AS, the RPF list size for each line card will roughly and | line cards. For an ISP's AS, the RPF list size for each line card | |||
conservatively equal the total number of prefixes in its customer | will roughly and conservatively equal the total number of prefixes in | |||
cone (assuming the algorithm in Section 3.4 is used). (Note: Most | its customer cone (assuming the algorithm in Section 3.4 is used). | |||
ISP customer cone scenarios would not require the algorithm in | (Note: Most ISP customer cone scenarios would not require the | |||
Section 3.4, but instead be served best by the algorithm in | algorithm in Section 3.4, but instead be served best by the algorithm | |||
Section 3.1.1, which requires much less FIB memory.) The following | in Section 3.1.1, which requires much less FIB memory.) The | |||
table shows the measured customer cone sizes for various types of | following table shows the measured customer cone sizes for various | |||
ISPs [sriram-ripe63]: | 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 31 ¶ | skipping to change at page 12, line 37 ¶ | |||
Table 1: Customer cone sizes (# prefixes) for various types of ISPs. | Table 1: Customer cone sizes (# prefixes) for various types of ISPs. | |||
For some super large global ISPs that are at the core of the | For some super large global ISPs that are at the core of the | |||
Internet, the customer cone size (# prefixes) can be as high as a few | Internet, the customer cone size (# prefixes) can be as high as a few | |||
hundred thousand [CAIDA]. But uRPF is most effective when deployed | hundred thousand [CAIDA]. But uRPF is most effective when deployed | |||
at ASes at the edges of the Internet where the customer cone sizes | at ASes at the edges of the Internet where the customer cone sizes | |||
are smaller as shown in Table 1. | are smaller as shown in Table 1. | |||
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. | |||
3.6. Summary of Recommendations | 3.6.2. Coping with BGP's Transient Behavior | |||
BGP routing announcements can exhibit transient behavior. Routes may | ||||
be withdrawn temporarily and then re-announced due to transient | ||||
conditions such as BGP session reset or link failure-recovery. To | ||||
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- | ||||
determined amount (TBD) when responding to route withdrawals. This | ||||
should help suppress the effects due to the transients in BGP. | ||||
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 in consideration SHOULD | |||
perform ACL-based SAV. | perform ACL-based 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 | in consideration SHOULD perform SAV based on the strict uRPF | |||
skipping to change at page 13, line 34 ¶ | skipping to change at page 14, line 8 ¶ | |||
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 Job Snijders, Marco Marzetti, Marco | |||
d'Itri, Nick Hilliard, Gert Doering, Igor Gashinsky, Barry Greene, | d'Itri, Nick Hilliard, Gert Doering, Igor Gashinsky, Igor Lubashev, | |||
and Joel Jaeggli for comments and suggestions. | Barry Greene, Amir Herzberg, Ruediger Volk, Jared Mauch, Oliver | |||
Borchert, Mehmet Adalier, and Joel Jaeggli for comments and | ||||
suggestions. | ||||
7. Informative References | 7. 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: Managing the | Configuration Guide, Release 5.x (Chapter 15: Managing the | |||
Unicast RIB and FIB)", Cisco Configuration Guides , June | 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_manage-routes.html#22859>. | l3_NewChange.html>. | |||
[Cisco3] "Unicast reverse path forwarding enhancements for the | ||||
Internet service provider", Cisco white paper , 2005, | ||||
<https://www.cisco.com/c/dam/en_us/about/security/ | ||||
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.us-cert.gov/ncas/alerts/TA14-017A>. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
skipping to change at page 14, line 36 ¶ | skipping to change at page 15, line 14 ¶ | |||
[RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed | [RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed | |||
Networks", BCP 84, RFC 3704, DOI 10.17487/RFC3704, March | Networks", BCP 84, RFC 3704, DOI 10.17487/RFC3704, March | |||
2004, <https://www.rfc-editor.org/info/rfc3704>. | 2004, <https://www.rfc-editor.org/info/rfc3704>. | |||
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | |||
Border Gateway Protocol 4 (BGP-4)", RFC 4271, | Border Gateway Protocol 4 (BGP-4)", RFC 4271, | |||
DOI 10.17487/RFC4271, January 2006, | DOI 10.17487/RFC4271, January 2006, | |||
<https://www.rfc-editor.org/info/rfc4271>. | <https://www.rfc-editor.org/info/rfc4271>. | |||
[RFC6482] Lepinski, M., Kent, S., and D. Kong, "A Profile for Route | ||||
Origin Authorizations (ROAs)", RFC 6482, | ||||
DOI 10.17487/RFC6482, February 2012, | ||||
<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", | [RRL] "Response Rate Limiting in the Domain Name System", | |||
Redbarn blog , <http://www.redbarn.org/dns/ratelimits>. | Redbarn blog , <http://www.redbarn.org/dns/ratelimits>. | |||
[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, K., "Enhanced Feasible-Path Unicast Reverse Path | ||||
Filtering", Presented at the IETF-101 OPSEC WG Meeting , | ||||
March 2018, | ||||
<https://datatracker.ietf.org/meeting/101/materials/ | ||||
slides-101-opsec-draft-sriram-opsec-urpf-improvements-00>. | ||||
[TA14-017A] | [TA14-017A] | |||
"UDP-Based Amplification Attacks", US-CERT alert | "UDP-Based Amplification Attacks", US-CERT alert | |||
TA14-017A , January 2014, | TA14-017A , January 2014, | |||
<https://www.us-cert.gov/ncas/alerts/TA14-017A>. | <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 | |||
End of changes. 31 change blocks. | ||||
62 lines changed or deleted | 126 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/ |