idnits 2.17.1 draft-ietf-opsec-urpf-improvements-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The abstract seems to contain references ([BCP38], [BCP84]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (April 4, 2019) is 1848 days in the past. Is this intentional? Checking references for intended status: Best Current Practice ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'BCP84' is mentioned on line 19, but not defined == Missing Reference: 'BCP38' is mentioned on line 16, but not defined == Missing Reference: 'AS2 AS1' is mentioned on line 342, but not defined == Missing Reference: 'AS3 AS1' is mentioned on line 428, but not defined == Missing Reference: 'AS1' is mentioned on line 437, but not defined == Missing Reference: 'AS5 AS1' is mentioned on line 337, but not defined Summary: 1 error (**), 0 flaws (~~), 7 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 OPSEC Working Group K. Sriram 3 Internet-Draft D. Montgomery 4 Intended status: Best Current Practice USA NIST 5 Expires: October 6, 2019 J. Haas 6 Juniper Networks, Inc. 7 April 4, 2019 9 Enhanced Feasible-Path Unicast Reverse Path Filtering 10 draft-ietf-opsec-urpf-improvements-02 12 Abstract 14 This document identifies a need for improvement of the unicast 15 Reverse Path Filtering techniques (uRPF) [BCP84] for source address 16 validation (SAV) [BCP38]. The strict uRPF is inflexible about 17 directionality, the loose uRPF is oblivious to directionality, and 18 the current feasible-path uRPF attempts to strike a balance between 19 the two [BCP84]. However, as shown in this draft, the existing 20 feasible-path uRPF still has shortcomings. This document describes 21 an enhanced feasible-path uRPF technique, which aims to be more 22 flexible (in a meaningful way) about directionality than the 23 feasible-path uRPF. It can potentially alleviate ISPs' concerns 24 about the possibility of disrupting service for their customers, and 25 encourage greater deployment of uRPF techniques. 27 Status of This Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF). Note that other groups may also distribute 34 working documents as Internet-Drafts. The list of current Internet- 35 Drafts is at https://datatracker.ietf.org/drafts/current/. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." 42 This Internet-Draft will expire on October 6, 2019. 44 Copyright Notice 46 Copyright (c) 2019 IETF Trust and the persons identified as the 47 document authors. All rights reserved. 49 This document is subject to BCP 78 and the IETF Trust's Legal 50 Provisions Relating to IETF Documents 51 (https://trustee.ietf.org/license-info) in effect on the date of 52 publication of this document. Please review these documents 53 carefully, as they describe your rights and restrictions with respect 54 to this document. Code Components extracted from this document must 55 include Simplified BSD License text as described in Section 4.e of 56 the Trust Legal Provisions and are provided without warranty as 57 described in the Simplified BSD License. 59 Table of Contents 61 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 62 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 63 2. Review of Existing Source Address Validation Techniques . . . 3 64 2.1. SAV using Access Control List . . . . . . . . . . . . . . 4 65 2.2. SAV using Strict Unicast Reverse Path Filtering . . . . . 4 66 2.3. SAV using Feasible-Path Unicast Reverse Path Filtering . 5 67 2.4. SAV using Loose Unicast Reverse Path Filtering . . . . . 6 68 2.5. SAV using VRF Table . . . . . . . . . . . . . . . . . . . 7 69 3. SAV using Enhanced Feasible-Path uRPF . . . . . . . . . . . . 7 70 3.1. Description of the Method . . . . . . . . . . . . . . . . 7 71 3.1.1. Algorithm A: Enhanced Feasible-Path uRPF . . . . . . 8 72 3.2. Operational Recommendations . . . . . . . . . . . . . . . 9 73 3.3. A Challenging Scenario . . . . . . . . . . . . . . . . . 9 74 3.4. Algorithm B: Enhanced Feasible-Path uRPF with Additional 75 Flexibility Across Customer Cone . . . . . . . . . . . . 10 76 3.5. Augmenting RPF Tables with ROA and IRR Data . . . . . . . 11 77 3.6. Implementation Considerations . . . . . . . . . . . . . . 11 78 3.6.1. Impact on FIB Memory Size Requirement . . . . . . . . 11 79 3.6.2. Coping with BGP's Transient Behavior . . . . . . . . 12 80 3.7. Summary of Recommendations . . . . . . . . . . . . . . . 13 81 4. Security Considerations . . . . . . . . . . . . . . . . . . . 13 82 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 83 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 84 7. Informative References . . . . . . . . . . . . . . . . . . . 14 85 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 87 1. Introduction 89 This internet draft identifies a need for improvement of the unicast 90 Reverse Path Filtering (uRPF) techniques [RFC2827] for source address 91 validation (SAV) [RFC3704]. The strict uRPF is inflexible about 92 directionality, the loose uRPF is oblivious to directionality, and 93 the current feasible-path uRPF attempts to strike a balance between 94 the two [RFC3704]. However, as shown in this draft, the existing 95 feasible-path uRPF still has shortcomings. Even with the feasible- 96 path uRPF, ISPs are often apprehensive that they may be dropping 97 customers' data packets with legitimate source addresses. 99 This document describes an enhanced feasible-path uRPF technique, 100 which aims to be more flexible (in a meaningful way) about 101 directionality than the feasible-path uRPF. It is based on the 102 principle that if BGP updates for multiple prefixes with the same 103 origin AS were received on different interfaces (at border routers), 104 then incoming data packets with source addresses in any of those 105 prefixes should be accepted on any of those interfaces (presented in 106 Section 3). For some challenging ISP-customer scenarios (see 107 Section 3.3), this document also describes a more relaxed version of 108 the enhanced feasible-path uRPF technique (presented in Section 3.4). 109 Implementation considerations are discussed in Section 3.6. 111 Definition of Reverse Path Filtering (RPF) list: The list of 112 permissible source address prefixes for incoming data packets on a 113 given interface. 115 Throughout this document, the routes in consideration are assumed to 116 have been vetted based on prefix filtering [RFC7454] and possibly (in 117 the future) origin validation [RFC6811]. 119 The enhanced feasible-path uRPF methods described here are expected 120 to add greater operational robustness and efficacy to uRPF, while 121 minimizing ISPs' concerns about accidental service disruption for 122 their customers. It is expected that this will encourage more 123 deployment of uRPF to help realize its DDoS prevention benefits 124 network wide. 126 1.1. Requirements Language 128 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 129 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 130 document are to be interpreted as described in RFC 2119 [RFC2119]. 132 2. Review of Existing Source Address Validation Techniques 134 There are various existing techniques for mitigation against DDoS 135 attacks with spoofed addresses [RFC2827] [RFC3704]. There are also 136 some techniques used for mitigating reflection attacks [RRL] 137 [TA14-017A], which are used to amplify the impact in DDoS attacks. 138 Employing a combination of these preventive techniques (as 139 applicable) in enterprise and ISP border routers, broadband and 140 wireless access network, data centers, and DNS/NTP servers provides 141 reasonably effective protection against DDoS attacks. 143 Source address validation (SAV) is performed in network edge devices 144 such as border routers, Cable Modem Termination Systems (CMTS), 145 Digital Subscriber Line Access Multiplexers (DSLAM), and Packet Data 146 Network (PDN) gateways in mobile networks. Ingress Access Control 147 List (ACL) and unicast Reverse Path Filtering (uRPF) are techniques 148 employed for implementing SAV [RFC2827][RFC3704][ISOC]. 150 2.1. SAV using Access Control List 152 Ingress/egress Access Control Lists (ACLs) are maintained which list 153 acceptable (or alternatively, unacceptable) prefixes for the source 154 addresses in the incoming Internet Protocol (IP) packets. Any packet 155 with a source address that does not match the filter is dropped. The 156 ACLs for the ingress/egress filters need to be maintained to keep 157 them up to date. Updating the ACLs is an operator driven manual 158 process, and hence operationally difficult or infeasible. 160 Typically, the egress ACLs in access aggregation devices (e.g. CMTS, 161 DSLAM) permit source addresses only from the address spaces 162 (prefixes) that are associated with the interface on which the 163 customer network is connected. Ingress ACLs are typically deployed 164 on border routers, and drop ingress packets when the source address 165 is spoofed (i.e. belongs to obviously disallowed prefix blocks, RFC 166 1918 prefixes, or provider's own prefixes). 168 2.2. SAV using Strict Unicast Reverse Path Filtering 170 In the strict unicast Reverse Path Filtering (uRPF) method, an 171 ingress packet at border router is accepted only if the Forwarding 172 Information Base (FIB) contains a prefix that encompasses the source 173 address, and forwarding information for that prefix points back to 174 the interface over which the packet was received. In other words, 175 the reverse path for routing to the source address (if it were used 176 as a destination address) should use the same interface over which 177 the packet was received. It is well known that this method has 178 limitations when networks are multi-homed, routes are not 179 symmetrically announced to all transit providers, and there is 180 asymmetric routing of data packets. Asymmetric routing occurs (see 181 Figure 1) when a customer AS announces one prefix (P1) to one transit 182 provider (ISP-a) and a different prefix (P2) to another transit 183 provider (ISP-b), but routes data packets with source addresses in 184 the second prefix (P2) to the first transit provider (ISP-a) or vice 185 versa. 187 +------------+ ---- P1[AS2 AS1] ---> +------------+ 188 | AS2(ISP-a) | <----P2[AS3 AS1] ---- | AS3(ISP-b)| 189 +------------+ +------------+ 190 /\ /\ 191 \ / 192 \ / 193 \ / 194 P1[AS1]\ /P2[AS1] 195 \ / 196 +-----------------------+ 197 | AS1(customer) | 198 +-----------------------+ 199 P1, P2 (prefixes originated) 201 Consider data packets received at AS2 202 (1) from AS1 with source address in P2, or 203 (2) from AS3 that originated from AS1 204 with source address in P1: 205 * Strict uRPF fails 206 * Feasible-path uRPF fails 207 * Loose uRPF works (but not desirable) 208 * Enhanced Feasible-path uRPF works best 210 Figure 1: Scenario 1 for illustration of efficacy of uRPF schemes. 212 2.3. SAV using Feasible-Path Unicast Reverse Path Filtering 214 The feasible-path uRPF helps partially overcome the problem 215 identified with the strict uRPF in the multi-homing case. The 216 feasible-path uRPF is similar to the strict uRPF, but in addition to 217 inserting the best-path prefix, additional prefixes from alternative 218 announced routes are also included in the RPF table. This method 219 relies on announcements for the same prefixes (albeit some may be 220 prepended to effect lower preference) propagating to all routers 221 performing feasible-path uRPF checks. Therefore, in the multi-homing 222 scenario (see Figure 2), if the customer AS announces routes for both 223 prefixes (P1, P2) to both transit providers (with suitable prepends 224 if needed for traffic engineering), then the feasible-path uRPF 225 method works. It should be mentioned that the feasible-path uRPF 226 works in this scenario only if customer routes are preferred at AS2 227 and AS3 over a shorter non-customer route. 229 +------------+ routes for P1, P2 +-----------+ 230 | AS2(ISP-a) |<-------------------->| AS3(ISP-b)| 231 +------------+ (p2p) +-----------+ 232 /\ /\ 233 \ / 234 P1[AS1]\ /P2[AS1] 235 \ / 236 P2[AS1 AS1 AS1]\ /P1[AS1 AS1 AS1] 237 \ / 238 +-----------------------+ 239 | AS1(customer) | 240 +-----------------------+ 241 P1, P2 (prefixes originated) 243 Consider data packets received at AS2 via AS3 244 that originated from AS1 and have source address in P1: 245 * Feasible-path uRPF works (if customer route to P1 246 is preferred at AS3 over shorter path) 247 * Feasible-path uRPF fails (if shorter path to P1 248 is preferred at AS3 over customer route) 249 * Loose uRPF works (but not desirable) 250 * Enhanced Feasible-path uRPF works best 252 Figure 2: Scenario 2 for illustration of efficacy of uRPF schemes. 254 However, the feasible-path uRPF method has limitations as well. One 255 form of limitation naturally occurs when the recommendation of 256 propagating the same prefixes to all routers is not followed. 257 Another form of limitation can be described as follows. In Scenario 258 2 (described above, illustrated in Figure 2), it is possible that the 259 second transit provider (ISP-b or AS3) does not propagate the 260 prepended route for prefix P1 to the first transit provider (ISP-a or 261 AS2). This is because AS3's decision policy permits giving priority 262 to a shorter route to prefix P1 via a peer (AS2) over a longer route 263 learned directly from the customer (AS1). In such a scenario, AS3 264 would not send any route announcement for prefix P1 to AS2. Then a 265 data packet with source address in prefix P1 that originates from AS1 266 and traverses via AS3 to AS2 will get dropped at AS2. 268 2.4. SAV using Loose Unicast Reverse Path Filtering 270 In the loose unicast Reverse Path Filtering (uRPF) method, an ingress 271 packet at the border router is accepted only if the FIB has one or 272 more prefixes that encompass the source address. That is, a packet 273 is dropped if no route exists in the FIB for the source address. 274 Loose uRPF sacrifices directionality. This method is not effective 275 for prevention of address spoofing since there is little unrouted 276 address space in IPv4. It only drops packets if the spoofed address 277 is unreachable in the current FIB (e.g. RFC 1918, unallocated, 278 allocated but currently not routed). 280 2.5. SAV using VRF Table 282 The Virtual Routing and Forwarding (VRF) technology allows a router 283 to maintain multiple routing table instances, separate from the 284 global Routing Information Base (RIB) [Cisco3]. External BGP (eBGP) 285 peering sessions send specific routes to be stored in a dedicated VRF 286 table. The uRPF process queries the VRF table (instead of the FIB) 287 for source address validation. VRF table can be dedicated per eBGP 288 peer and used for uRPF for only that peer, resulting in strict mode 289 operation. On the other hand, if loose mode uRPF is desired with 290 VRF, then the VRF table can be global (contains VRF routes received 291 on all eBGP sessions at the router). 293 3. SAV using Enhanced Feasible-Path uRPF 295 3.1. Description of the Method 297 Enhanced feasible-path uRPF adds greater operational robustness and 298 efficacy to existing uRPF methods discussed in Section 2. The 299 technique is based on the principle that if BGP updates for multiple 300 prefixes with the same origin AS were received on different 301 interfaces (at border routers), then incoming data packets with 302 source addresses in any of those prefixes should be accepted on any 303 of those interfaces. It can be best explained with an example as 304 follows: 306 Let us say, a border router of ISP-A has in its Adj-RIB-Ins [RFC4271] 307 the set of prefixes {Q1, Q2, Q3} each of which has AS-x as its origin 308 and AS-x is in ISP-A's customer cone. In this set, the border router 309 received the route for prefix Q1 over a customer facing interface, 310 while it learned the routes for prefixes Q2 and Q3 from a lateral 311 peer and an upstream transit provider, respectively. In this example 312 scenario, the enhanced feasible-path uRPF method requires Q1, Q2, and 313 Q3 be included in the RPF list for the customer interface in 314 consideration. Loose uRPF (see Section 2.4) is recommended to be 315 applied to the peer and provider interfaces in consideration. 317 Thus, enhanced feasible-path uRPF defines feasible paths for customer 318 interfaces in a more generalized but precise way (as compared to 319 feasible-path uRPF). 321 Looking back at Scenarios 1 and 2 (Figure 1 and Figure 2), the 322 enhanced feasible-path uRPF provides comparable or better performance 323 than the other uRPF methods. Scenario 3 (Figure 3) further 324 illustrates the enhanced feasible-path uRPF method with a more 325 concrete example. In this scenario, the focus is on operation of the 326 feasible-path uRPF at ISP4 (AS4). ISP4 learns a route for prefix P1 327 via a customer-to-provider (C2P) interface from customer ISP2 (AS2). 328 This route for P1 has origin AS1. ISP4 also learns a route for P2 329 via another C2P interface from customer ISP3 (AS3). Additionally, 330 AS4 learns a route for P3 via a peer-to-peer (p2p) interface from 331 ISP5 (AS5). Routes for all three prefixes have the same origin AS 332 (i.e. AS1). Using the enhanced feasible-path uRPF scheme, given the 333 commonality of the origin AS across the routes for P1, P2 and P3, AS4 334 includes all of these prefixes to the RPF list for the customer 335 interfaces (from AS2 and AS3). 337 +----------+ P3[AS5 AS1] +------------+ 338 | AS4(ISP4)|<---------------| AS5(ISP5) | 339 +----------+ (p2p) +------------+ 340 /\ /\ /\ 341 / \ / 342 P1[AS2 AS1]/ \P2[AS3 AS1] / 343 (C2P)/ \(C2P) / 344 / \ / 345 +----------+ +----------+ / 346 | AS2(ISP2)| | AS3(ISP3)| / 347 +----------+ +----------+ / 348 /\ /\ / 349 \ / / 350 P1[AS1]\ /P2[AS1] /P3[AS1] 351 (C2P)\ /(C2P) /(C2P) 352 \ / / 353 +----------------+ / 354 | AS1(customer) |/ 355 +----------------+ 356 P1, P2, P3 (prefixes originated) 358 Consider that data packets (sourced from AS1) 359 may be received at AS4 with source address 360 in P1, P2 or P3 via any of the neighbors (AS2, AS3, AS5): 361 * Feasible-path uRPF fails 362 * Loose uRPF works (but not desirable) 363 * Enhanced Feasible-path uRPF works best 365 Figure 3: Scenario 3 for illustration of efficacy of uRPF schemes. 367 3.1.1. Algorithm A: Enhanced Feasible-Path uRPF 369 The underlying algorithm in the solution method described above can 370 be specified as follows (to be implemented in a transit AS): 372 1. Create the list of unique origin ASes considering only the routes 373 in the Adj-RIB-Ins of customer interfaces. Call it Set A = {AS1, 374 AS2, ..., ASn}. 376 2. Considering all routes in Adj-RIB-Ins for all interfaces 377 (customer, lateral peer, and provider), form the set of unique 378 prefixes that have a common origin AS1. Call it Set X1. 380 3. Include set X1 in Reverse Path Filter (RPF) list on all customer 381 interfaces on which one or more of the prefixes in set X1 were 382 received. 384 4. Repeat Steps 2 and 3 for each of the remaining ASes in Set A 385 (i.e., for ASi, where i = 2, ..., n). 387 3.2. Operational Recommendations 389 The following operational recommendations will make the operation of 390 the enhanced feasible-path uRPF robust: 392 For multi-homed stub AS: 394 o A multi-homed stub AS SHOULD announce at least one of the prefixes 395 it originates to each of its transit provider ASes. 397 For non-stub AS: 399 o A non-stub AS SHOULD also announce at least one of the prefixes it 400 originates to each of its transit provider ASes. 402 o Additionally, from the routes it has learned from customers, a 403 non-stub AS SHOULD announce at least one route per origin AS to 404 each of its transit provider ASes. 406 (Note: It is worth noting that in the above recommendations if "at 407 least one" is replaced with "all", then even traditional feasible- 408 path uRPF would work effectively. But the latter recommendation 409 ("all") does not seem practical.) 411 3.3. A Challenging Scenario 413 It should be observed that in the absence of ASes adhering the above 414 recommendations, the following example scenario may be constructed 415 which poses a challenge for the enhanced feasible-path uRPF (as well 416 as for traditional feasible-path uRPF). In the scenario illustrated 417 in Figure 4, since routes for neither P1 nor P2 are propagated on the 418 AS2-AS4 interface, the enhanced feasible-path uRPF at AS4 will reject 419 data packets received on that interface with source addresses in P1 420 or P2. (Please see slide #10 in [sriram-urpf] for an additional 421 scenario.) 423 +----------+ 424 | AS4(ISP4)| 425 +----------+ 426 /\ /\ 427 / \ P1[AS3 AS1] 428 P1 and P2 not / \ P2[AS3 AS1] 429 propagated / \ (C2P) 430 (C2P) / \ 431 +----------+ +----------+ 432 | AS2(ISP2)| | AS3(ISP3)| 433 +----------+ +----------+ 434 /\ /\ 435 \ / P1[AS1] 436 P1[AS1] NO_EXPORT \ / P2[AS1] 437 P2[AS1] NO_EXPORT \ / (C2P) 438 (C2P) \ / 439 +----------------+ 440 | AS1(customer) | 441 +----------------+ 442 P1, P2 (prefixes originated) 444 Figure 4: Illustration of a challenging scenario. 446 3.4. Algorithm B: Enhanced Feasible-Path uRPF with Additional 447 Flexibility Across Customer Cone 449 Adding further flexibility to the enhanced feasible-path uRPF method 450 can help address the potential limitation identified above using the 451 scenario in Figure 4 (Section 3.3). In the following, "route" refers 452 to a route currently existing in the Adj-RIB-in. Including the 453 additional degree of flexibility, the modified algorithm (implemented 454 in a transit AS) can be described as follows (we call this Algorithm 455 B): 457 1. Create the set of all directly-connected customer interfaces. 458 Call it Set I = {I1, I2, ..., Ik}. 460 2. Create the set of all unique prefixes for which routes exist in 461 Adj-RIB-Ins for the interfaces in Set I. Call it Set P = {P1, 462 P2, ..., Pm}. 464 3. Create the set of all unique origin ASes seen in the routes that 465 exist in Adj-RIB-Ins for the interfaces in Set I. Call it Set A 466 = {AS1, AS2, ..., ASn}. 468 4. Create the set of all unique prefixes for which routes exist in 469 Adj-RIB-Ins of all lateral peer and provider interfaces such that 470 each of the routes has its origin AS belonging in Set A. Call it 471 Set Q = {Q1, Q2, ..., Qj}. 473 5. Then, Set Z = Union(P,Q) represents the RPF list for every 474 customer interface in Set I. 476 6. Apply loose uRPF method for SAV on all peer and provider 477 interfaces. 479 When Algorithm B (which is more flexible than Algorithm A) is 480 employed, the type of limitation identified in Figure 4 (Section 3.3) 481 goes away. 483 3.5. Augmenting RPF Tables with ROA and IRR Data 485 It is worth emphasizing that an indirect part of the proposal in the 486 draft is that RPF filters may be augmented from secondary sources. 487 Hence, the construction of RPF lists using a method proposed in this 488 document (Algorithm A or B) can be augmented with data from Route 489 Origin Authorization (ROA) [RFC6482] as well as Internet Routing 490 Registry (IRR) data. Prefixes from registered ROAs or IRR route 491 objects that include ASes in an ISP's customer cone SHOULD be used to 492 augment the appropriate RPF tables. This will help make the RPF 493 tables more robust about source addresses that may be legitimately 494 used by customers of the ISP. 496 3.6. Implementation Considerations 498 3.6.1. Impact on FIB Memory Size Requirement 500 The existing RPF checks in edge routers take advantage of existing 501 line card implementations to perform the RPF functions. For 502 implementation of the enhanced feasible-path uRPF, the general 503 necessary feature would be to extend the line cards to take arbitrary 504 RPF lists that are not necessarily the same as the existing FIB 505 contents. In the algorithms (Section 3.1.1 and Section 3.4) 506 described here, the RPF lists are constructed by applying a set of 507 rules to all received BGP routes (not just those selected as best 508 path and installed in FIB). The concept of uRPF querying an RPF 509 table (instead of the FIB) is similar to uRPF querying VRF table (see 510 (Section 2.5). 512 The techniques described in this document require that there should 513 be additional memory (i.e., TCAM) available to store the RPF lists in 514 line cards. For an ISP's AS, the RPF list size for each line card 515 will roughly and conservatively equal the total number of prefixes in 516 its customer cone (assuming the algorithm in Section 3.4 is used). 517 (Note: Most ISP customer cone scenarios would not require the 518 algorithm in Section 3.4, but instead be served best by the algorithm 519 in Section 3.1.1, which requires much less FIB memory.) The 520 following table shows the measured customer cone sizes for various 521 types of ISPs [sriram-ripe63]: 523 +---------------------------------+---------------------------------+ 524 | Type of ISP | Measured Customer Cone Size in | 525 | | # Prefixes (in turn this is an | 526 | | estimate for RPF list size on | 527 | | line card) | 528 +---------------------------------+---------------------------------+ 529 | Very Large Global ISP | 32392 | 530 | ------------------------------- | ------------------------------- | 531 | Very Large Global ISP | 29528 | 532 | ------------------------------- | ------------------------------- | 533 | Large Global ISP | 20038 | 534 | ------------------------------- | ------------------------------- | 535 | Mid-size Global ISP | 8661 | 536 | ------------------------------- | ------------------------------- | 537 | Regional ISP (in Asia) | 1101 | 538 +---------------------------------+---------------------------------+ 540 Table 1: Customer cone sizes (# prefixes) for various types of ISPs. 542 For some super large global ISPs that are at the core of the 543 Internet, the customer cone size (# prefixes) can be as high as a few 544 hundred thousand [CAIDA]. But uRPF is most effective when deployed 545 at ASes at the edges of the Internet where the customer cone sizes 546 are smaller as shown in Table 1. 548 A very large global ISP's router line card is likely to have a FIB 549 size large enough to accommodate 2 to 6 million routes [Cisco1]. 550 Similarly, the line cards in routers corresponding to a large global 551 ISP, a mid-size global ISP, and a regional ISP are likely to have FIB 552 sizes large enough to accommodate about 1 million, 0.5 million, and 553 100K routes, respectively [Cisco2]. Comparing these FIB size numbers 554 with the corresponding RPF list size numbers in Table 1, it can be 555 surmised that the conservatively estimated RPF list size is only a 556 small fraction of the anticipated FIB memory size under relevant ISP 557 scenarios. 559 3.6.2. Coping with BGP's Transient Behavior 561 BGP routing announcements can exhibit transient behavior. Routes may 562 be withdrawn temporarily and then re-announced due to transient 563 conditions such as BGP session reset or link failure-recovery. To 564 cope with this, hysteresis should be introduced in the maintenance of 565 the RPF lists. Changes to the RPF lists SHOULD be delayed by a pre- 566 determined amount (TBD) when responding to route withdrawals. This 567 should help suppress the effects due to the transients in BGP. 569 3.7. Summary of Recommendations 571 Depending on the scenario, an ISP or enterprise AS operator should 572 follow one of the following recommendations concerning uRPF/SAV: 574 1. For directly connected networks, i.e., subnets directly connected 575 to the AS and not multi-homed, the AS in consideration SHOULD 576 perform ACL-based SAV. 578 2. For a directly connected single-homed stub AS (customer), the AS 579 in consideration SHOULD perform SAV based on the strict uRPF 580 method. 582 3. For all other scenarios: 584 * If the scenario does not involve complexity such as NO_EXPORT 585 of routes (see Section 3.3, Figure 4), then the enhanced 586 feasible-path uRPF method in Algorithm A (see Section 3.1.1) 587 SHOULD be applied. 589 * Else, if the scenario involves the aforementioned complexity, 590 then the enhanced feasible-path uRPF method in Algorithm B 591 (see Section 3.4) SHOULD be applied. 593 4. Security Considerations 595 The security considerations in BCP 38 [RFC2827] and BCP 84 [RFC3704] 596 apply for this document as well. In addition, AS operator should 597 apply the uRPF method that performs best (i.e., with zero or 598 insignificant possibility of dropping legitimate data packets) for 599 the type of peer (customer, provider, etc.) and the nature of 600 customer cone scenario that apply (see Section 3.1.1 and 601 Section 3.4). 603 5. IANA Considerations 605 This document does not request new capabilities or attributes. It 606 does not create any new IANA registries. 608 6. Acknowledgements 610 The authors would like to thank Job Snijders, Marco Marzetti, Marco 611 d'Itri, Nick Hilliard, Gert Doering, Igor Gashinsky, Igor Lubashev, 612 Barry Greene, Amir Herzberg, Ruediger Volk, Jared Mauch, Oliver 613 Borchert, Mehmet Adalier, and Joel Jaeggli for comments and 614 suggestions. 616 7. Informative References 618 [CAIDA] "Information for AS 174 (COGENT-174)", CAIDA Spoofer 619 Project , . 621 [Cisco1] "Internet Routing Table Growth Causes ROUTING-FIB- 622 4-RSRC_LOW Message on Trident-Based Line Cards", Cisco 623 Trouble-shooting Tech-notes , January 2014, 624 . 628 [Cisco2] "Cisco Nexus 7000 Series NX-OS Unicast Routing 629 Configuration Guide, Release 5.x (Chapter 15: Managing the 630 Unicast RIB and FIB)", Cisco Configuration Guides , March 631 2018, . 636 [Cisco3] "Unicast reverse path forwarding enhancements for the 637 Internet service provider", Cisco white paper , 2005, 638 . 641 [ISOC] Vixie (Ed.), P., "Addressing the challenge of IP 642 spoofing", ISOC report , September 2015, 643 . 645 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 646 Requirement Levels", BCP 14, RFC 2119, 647 DOI 10.17487/RFC2119, March 1997, 648 . 650 [RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: 651 Defeating Denial of Service Attacks which employ IP Source 652 Address Spoofing", BCP 38, RFC 2827, DOI 10.17487/RFC2827, 653 May 2000, . 655 [RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed 656 Networks", BCP 84, RFC 3704, DOI 10.17487/RFC3704, March 657 2004, . 659 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 660 Border Gateway Protocol 4 (BGP-4)", RFC 4271, 661 DOI 10.17487/RFC4271, January 2006, 662 . 664 [RFC6482] Lepinski, M., Kent, S., and D. Kong, "A Profile for Route 665 Origin Authorizations (ROAs)", RFC 6482, 666 DOI 10.17487/RFC6482, February 2012, 667 . 669 [RFC6811] Mohapatra, P., Scudder, J., Ward, D., Bush, R., and R. 670 Austein, "BGP Prefix Origin Validation", RFC 6811, 671 DOI 10.17487/RFC6811, January 2013, 672 . 674 [RFC7454] Durand, J., Pepelnjak, I., and G. Doering, "BGP Operations 675 and Security", BCP 194, RFC 7454, DOI 10.17487/RFC7454, 676 February 2015, . 678 [RRL] "Response Rate Limiting in the Domain Name System", 679 Redbarn blog , . 681 [sriram-ripe63] 682 Sriram, K. and R. Bush, "Estimating CPU Cost of BGPSEC on 683 a Router", Presented at RIPE-63; also, at IETF-83 SIDR WG 684 Meeting, March 2012, 685 . 688 [sriram-urpf] 689 Sriram et al., K., "Enhanced Feasible-Path Unicast Reverse 690 Path Filtering", Presented at the OPSEC WG Meeting, 691 IETF-101 London , March 2018, 692 . 695 [TA14-017A] 696 "UDP-Based Amplification Attacks", US-CERT alert 697 TA14-017A , January 2014, 698 . 700 Authors' Addresses 702 Kotikalapudi Sriram 703 USA National Institute of Standards and Technology 704 100 Bureau Drive 705 Gaithersburg MD 20899 706 USA 708 Email: ksriram@nist.gov 710 Doug Montgomery 711 USA National Institute of Standards and Technology 712 100 Bureau Drive 713 Gaithersburg MD 20899 714 USA 716 Email: dougm@nist.gov 718 Jeffrey Haas 719 Juniper Networks, Inc. 720 1133 Innovation Way 721 Sunnyvale CA 94089 722 USA 724 Email: jhaas@juniper.net