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/