| rfc8704.original | rfc8704.txt | |||
|---|---|---|---|---|
| OPSEC Working Group K. Sriram | Internet Engineering Task Force (IETF) K. Sriram | |||
| Internet-Draft D. Montgomery | Request for Comments: 8704 D. Montgomery | |||
| BCP: 84 (if approved) USA NIST | BCP: 84 USA NIST | |||
| Updates: 3704 (if approved) J. Haas | Updates: 3704 J. Haas | |||
| Intended status: Best Current Practice Juniper Networks, Inc. | Category: Best Current Practice Juniper Networks, Inc. | |||
| Expires: March 2, 2020 August 30, 2019 | ISSN: 2070-1721 February 2020 | |||
| Enhanced Feasible-Path Unicast Reverse Path Forwarding | Enhanced Feasible-Path Unicast Reverse Path Forwarding | |||
| draft-ietf-opsec-urpf-improvements-04 | ||||
| Abstract | Abstract | |||
| This document identifies a need for and proposes improvement of the | This document identifies a need for and proposes improvement of the | |||
| unicast Reverse Path Forwarding (uRPF) techniques (see RFC 3704) for | unicast Reverse Path Forwarding (uRPF) techniques (see RFC 3704) for | |||
| detection and mitigation of source address spoofing (see BCP 38). | detection and mitigation of source address spoofing (see BCP 38). | |||
| The strict uRPF is inflexible about directionality, the loose uRPF is | Strict uRPF is inflexible about directionality, the loose uRPF is | |||
| oblivious to directionality, and the current feasible-path uRPF | oblivious to directionality, and the current feasible-path uRPF | |||
| attempts to strike a balance between the two (see RFC 3704). | attempts to strike a balance between the two (see RFC 3704). | |||
| However, as shown in this document, the existing feasible-path uRPF | However, as shown in this document, the existing feasible-path uRPF | |||
| still has shortcomings. This document describes enhanced feasible- | still has shortcomings. This document describes enhanced feasible- | |||
| path uRPF (EFP-uRPF) techniques, which are more flexible (in a | path uRPF (EFP-uRPF) techniques that are more flexible (in a | |||
| meaningful way) about directionality than the feasible-path uRPF (RFC | meaningful way) about directionality than the feasible-path uRPF (RFC | |||
| 3704). The proposed EFP-uRPF methods aim to significantly reduce | 3704). The proposed EFP-uRPF methods aim to significantly reduce | |||
| false positives regarding invalid detection in source address | false positives regarding invalid detection in source address | |||
| validation (SAV). Hence they can potentially alleviate ISPs' | validation (SAV). Hence, they can potentially alleviate ISPs' | |||
| concerns about the possibility of disrupting service for their | concerns about the possibility of disrupting service for their | |||
| customers, and encourage greater deployment of uRPF techniques. This | customers and encourage greater deployment of uRPF techniques. This | |||
| document updates RFC 3704. | document updates RFC 3704. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This memo documents an Internet Best Current Practice. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| BCPs is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on March 2, 2020. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc8704. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology | |||
| 1.2. Requirements Language . . . . . . . . . . . . . . . . . . 4 | 1.2. Requirements Language | |||
| 2. Review of Existing Source Address Validation Techniques . . . 4 | 2. Review of Existing Source Address Validation Techniques | |||
| 2.1. SAV using Access Control List . . . . . . . . . . . . . . 4 | 2.1. SAV Using Access Control List | |||
| 2.2. SAV using Strict Unicast Reverse Path Forwarding . . . . 5 | 2.2. SAV Using Strict Unicast Reverse Path Forwarding | |||
| 2.3. SAV using Feasible-Path Unicast Reverse Path Forwarding . 6 | 2.3. SAV Using Feasible-Path Unicast Reverse Path Forwarding | |||
| 2.4. SAV using Loose Unicast Reverse Path Forwarding . . . . . 7 | 2.4. SAV Using Loose Unicast Reverse Path Forwarding | |||
| 2.5. SAV using VRF Table . . . . . . . . . . . . . . . . . . . 8 | 2.5. SAV Using VRF Table | |||
| 3. SAV using Enhanced Feasible-Path uRPF . . . . . . . . . . . . 8 | 3. SAV Using Enhanced Feasible-Path uRPF | |||
| 3.1. Description of the Method . . . . . . . . . . . . . . . . 8 | 3.1. Description of the Method | |||
| 3.1.1. Algorithm A: Enhanced Feasible-Path uRPF . . . . . . 10 | 3.1.1. Algorithm A: Enhanced Feasible-Path uRPF | |||
| 3.2. Operational Recommendations . . . . . . . . . . . . . . . 10 | 3.2. Operational Recommendations | |||
| 3.3. A Challenging Scenario . . . . . . . . . . . . . . . . . 11 | 3.3. A Challenging Scenario | |||
| 3.4. Algorithm B: Enhanced Feasible-Path uRPF with Additional | 3.4. Algorithm B: Enhanced Feasible-Path uRPF with Additional | |||
| Flexibility Across Customer Cone . . . . . . . . . . . . 12 | Flexibility across Customer Cone | |||
| 3.5. Augmenting RPF Lists with ROA and IRR Data . . . . . . . 12 | 3.5. Augmenting RPF Lists with ROA and IRR Data | |||
| 3.6. Implementation and Operations Considerations . . . . . . 13 | 3.6. Implementation and Operations Considerations | |||
| 3.6.1. Impact on FIB Memory Size Requirement . . . . . . . . 13 | 3.6.1. Impact on FIB Memory Size Requirement | |||
| 3.6.2. Coping with BGP's Transient Behavior . . . . . . . . 14 | 3.6.2. Coping with BGP's Transient Behavior | |||
| 3.7. Summary of Recommendations . . . . . . . . . . . . . . . 15 | 3.7. Summary of Recommendations | |||
| 3.7.1. Applicability of the enhanced feasible-path uRPF | 3.7.1. Applicability of the EFP-uRPF Method with Algorithm A | |||
| (EFP-uRPF) method with Algorithm A . . . . . . . . . 15 | 4. Security Considerations | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | 5. IANA Considerations | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 6. References | |||
| 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 | 6.1. Normative References | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 6.2. Informative References | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 17 | Acknowledgements | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 17 | Authors' Addresses | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | ||||
| 1. Introduction | 1. Introduction | |||
| Source Address Validation (SAV) refers to the detection and | Source address validation (SAV) refers to the detection and | |||
| mitigation of source address (SA) spoofing [RFC2827]. This document | mitigation of source address (SA) spoofing [RFC2827]. This document | |||
| identifies a need for and proposes improvement of improvement of the | identifies a need for and proposes improvement of the unicast Reverse | |||
| unicast Reverse Path Forwarding (uRPF) techniques [RFC3704] for SAV. | Path Forwarding (uRPF) techniques [RFC3704] for SAV. Strict uRPF is | |||
| The strict uRPF is inflexible about directionality (see [RFC3704] for | inflexible about directionality (see [RFC3704] for definitions), the | |||
| definitions), the loose uRPF is oblivious to directionality, and the | loose uRPF is oblivious to directionality, and the current feasible- | |||
| current feasible-path uRPF attempts to strike a balance between the | path uRPF attempts to strike a balance between the two [RFC3704]. | |||
| two [RFC3704]. However, as shown in this document, the existing | However, as shown in this document, the existing feasible-path uRPF | |||
| feasible-path uRPF still has shortcomings. Even with the feasible- | still has shortcomings. Even with the feasible-path uRPF, ISPs are | |||
| path uRPF, ISPs are often apprehensive that they may be dropping | often apprehensive that they may be dropping customers' data packets | |||
| customers' data packets with legitimate source addresses. | with legitimate source addresses. | |||
| This document describes an enhanced feasible-path uRPF (EFP-uRPF) | This document describes enhanced feasible-path uRPF (EFP-uRPF) | |||
| technique, which aims to be more flexible (in a meaningful way) about | techniques that aim 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 and operations considerations are discussed in | Implementation and operations considerations are discussed in | |||
| Section 3.6. | Section 3.6. | |||
| Throughout this document, the routes under consideration are assumed | Throughout this document, the routes under consideration are assumed | |||
| to have been vetted based on prefix filtering [RFC7454] and possibly | to have been vetted based on prefix filtering [RFC7454] and possibly | |||
| origin validation [RFC6811]. | origin validation [RFC6811]. | |||
| The EFP-uRPF methods aim to significantly reduce false positives | The EFP-uRPF methods aim to significantly reduce false positives | |||
| regarding invalid detection in SAV. They are expected to add greater | regarding invalid detection in SAV. They are expected to add greater | |||
| operational robustness and efficacy to uRPF, while minimizing ISPs' | operational robustness and efficacy to uRPF while minimizing ISPs' | |||
| concerns about accidental service disruption for their customers. It | concerns about accidental service disruption for their customers. It | |||
| is expected that this will encourage more deployment of uRPF to help | is expected that this will encourage more deployment of uRPF to help | |||
| realize its DDoS prevention benefits network wide. | realize its Denial of Service (DoS) and Distributed DoS (DDoS) | |||
| prevention benefits network wide. | ||||
| 1.1. Terminology | 1.1. Terminology | |||
| Reverse Path Forwarding (RPF) list: The list of permissible source- | The Reverse Path Forwarding (RPF) list is the list of permissible | |||
| address prefixes for incoming data packets on a given interface. | source-address prefixes for incoming data packets on a given | |||
| interface. | ||||
| Peering relationships considered in this document are provider-to- | Peering relationships considered in this document are provider-to- | |||
| customer (P2C), customer-to-provider (C2P), and peer-to-peer (p2p). | customer (P2C), customer-to-provider (C2P), and peer-to-peer (P2P). | |||
| Provider here refers to transit provider. The first two are transit | Here, "provider" refers to a transit provider. The first two are | |||
| relationships. A peer connected via a p2p link is known as a lateral | transit relationships. A peer connected via a P2P link is known as a | |||
| peer (non-transit). | lateral peer (non-transit). | |||
| Customer Cone: AS A's customer cone is A plus all the ASes that can | AS A's customer cone is A plus all the ASes that can be reached from | |||
| be reached from A following only P2C links [Luckie]. | A following only P2C links [Luckie]. | |||
| A stub AS is an AS that does not have any customers or lateral peers. | A stub AS is an AS that does not have any customers or lateral peers. | |||
| In this document, a single-homed stub AS is one that has a single | In this document, a single-homed stub AS is one that has a single | |||
| transit provider and a multi-homed stub AS is one that has multiple | transit provider and a multihomed stub AS is one that has multiple | |||
| (two or more) transit providers. | (two or more) transit providers. | |||
| 1.2. Requirements Language | 1.2. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 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 the mitigation of DoS/DDoS | |||
| attacks with spoofed addresses [RFC2827] [RFC3704]. Source address | attacks with spoofed addresses [RFC2827] [RFC3704]. SAV is performed | |||
| validation (SAV) is performed in network edge devices such as border | in network edge devices, such as border routers, Cable Modem | |||
| routers, Cable Modem Termination Systems (CMTS) [RFC4036], and Packet | Termination Systems (CMTS) [RFC4036], and Packet Data Network | |||
| Data Network gateways (PDN-GW) in mobile networks [Firmin]. Ingress | Gateways (PDN-GW) in mobile networks [Firmin]. Ingress Access | |||
| Access Control List (ACL) and unicast Reverse Path Forwarding (uRPF) | Control List (ACL) and uRPF are techniques employed for implementing | |||
| are techniques employed for implementing SAV [RFC2827] [RFC3704] | SAV [RFC2827] [RFC3704] [ISOC]. | |||
| [ISOC]. | ||||
| 2.1. SAV using Access Control List | 2.1. SAV Using Access Control List | |||
| Ingress/egress Access Control Lists (ACLs) are maintained to list | Ingress/egress ACLs are maintained to list acceptable (or | |||
| acceptable (or alternatively, unacceptable) prefixes for the source | alternatively, unacceptable) prefixes for the source addresses in the | |||
| addresses in the incoming/outgoing Internet Protocol (IP) packets. | incoming/outgoing Internet Protocol (IP) packets. Any packet with a | |||
| Any packet with a source address that fails the filtering criteria is | source address that fails the filtering criteria is dropped. The | |||
| dropped. The ACLs for the ingress/egress filters need to be | ACLs for the ingress/egress filters need to be maintained to keep | |||
| maintained to keep them up to date. Updating the ACLs is an | them up to date. Updating the ACLs is an operator-driven manual | |||
| operator-driven manual process, and hence operationally difficult or | process; hence, it is operationally difficult or infeasible. | |||
| infeasible. | ||||
| Typically, the egress ACLs in access aggregation devices (e.g., CMTS, | Typically, the egress ACLs in access aggregation devices (e.g., CMTS, | |||
| PDN-GW) permit source addresses only from the address spaces | PDN-GW) permit source addresses only from the address spaces | |||
| (prefixes) that are associated with the interface on which the | (prefixes) that are associated with the interface on which the | |||
| customer network is connected. Ingress ACLs are typically deployed | customer network is connected. Ingress ACLs are typically deployed | |||
| on border routers, and drop ingress packets when the source address | on border routers and drop ingress packets when the source address is | |||
| is spoofed (e.g., belongs to obviously disallowed prefix blocks, IANA | spoofed (e.g., belongs to obviously disallowed prefix blocks, IANA | |||
| special-purpose prefixes [SPAR-v4][SPAR-v6], provider's own prefixes, | special-purpose prefixes [SPAR-v4][SPAR-v6], provider's own prefixes, | |||
| etc.). | etc.). | |||
| 2.2. SAV using Strict Unicast Reverse Path Forwarding | 2.2. SAV Using Strict Unicast Reverse Path Forwarding | |||
| Note: In the figures (scenarios) in this section and the subsequent | Note: In the figures (scenarios) in this section and the subsequent | |||
| sections, the following terminology is used: "fails" means drops | sections, the following terminology is used: | |||
| packets with legitimate source addresses; "works (but not desirable)" | ||||
| means passes all packets with legitimate source addresses but is | ||||
| oblivious to directionality; "works best" means passes all packets | ||||
| with legitimate source addresses with no (or minimal) compromise of | ||||
| directionality. Further, the notation Pi[ASn ASm ...] denotes a BGP | ||||
| update with prefix Pi and an AS_PATH as shown in the square brackets. | ||||
| In the strict unicast Reverse Path Forwarding (uRPF) method, an | * "fails" means drops packets with legitimate source addresses. | |||
| ingress packet at a border router is accepted only if the Forwarding | ||||
| Information Base (FIB) contains a prefix that encompasses the source | * "works (but not desirable)" means passes all packets with | |||
| address, and forwarding information for that prefix points back to | legitimate source addresses but is oblivious to directionality. | |||
| the interface over which the packet was received. In other words, | ||||
| the reverse path for routing to the source address (if it were used | * "works best" means passes all packets with legitimate source | |||
| as a destination address) should use the same interface over which | addresses with no (or minimal) compromise of directionality. | |||
| the packet was received. It is well known that this method has | ||||
| limitations when networks are multi-homed, routes are not | * The notation Pi[ASn ASm ...] denotes a BGP update with prefix Pi | |||
| symmetrically announced to all transit providers, and there is | and an AS_PATH as shown in the square brackets. | |||
| asymmetric routing of data packets. Asymmetric routing occurs (see | ||||
| Figure 1) when a customer AS announces one prefix (P1) to one transit | In the strict uRPF method, an ingress packet at a border router is | |||
| provider (ISP-a) and a different prefix (P2) to another transit | accepted only if the Forwarding Information Base (FIB) contains a | |||
| provider (ISP-b), but routes data packets with source addresses in | prefix that encompasses the source address and forwarding information | |||
| the second prefix (P2) to the first transit provider (ISP-a) or vice | for that prefix points back to the interface over which the packet | |||
| versa. Then data packets with source address in prefix P2 that are | was received. In other words, the reverse path for routing to the | |||
| received directly from AS1 will get dropped. Further, data packets | source address (if it were used as a destination address) should use | |||
| with source address in prefix P1 that originate from AS1 and traverse | the same interface over which the packet was received. It is well | |||
| via AS3 to AS2 will also get dropped at AS2. | known that this method has limitations when networks are multihomed, | |||
| routes are not symmetrically announced to all transit providers, and | ||||
| there is asymmetric routing of data packets. Asymmetric routing | ||||
| occurs (see Figure 1) when a customer AS announces one prefix (P1) to | ||||
| one transit provider (ISP-a) and a different prefix (P2) to another | ||||
| transit 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. Then, data packets with a source address in | ||||
| prefix P2 that are received at AS2 directly from AS1 will get | ||||
| dropped. Further, data packets with a source address in prefix P1 | ||||
| that originate from AS1 and traverse via AS3 to AS2 will also get | ||||
| dropped at AS2. | ||||
| +------------+ ---- 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] | |||
| \ / | \ / | |||
| +-----------------------+ | +-----------------------+ | |||
| | 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 (SA) in P2, or | (1) from AS1 with a source address (SA) in P2, or | |||
| (2) from AS3 that originated from AS1 with SA in P1: | (2) from AS3 that originated from AS1 with a SA in P1: | |||
| * Strict uRPF fails | * Strict uRPF fails | |||
| * Feasible-path uRPF fails | * Feasible-path uRPF fails | |||
| * Loose uRPF works (but not desirable) | * Loose uRPF works (but not desirable) | |||
| * Enhanced Feasible-path uRPF works best | * Enhanced feasible-path uRPF works best | |||
| Figure 1: Scenario 1 for illustration of efficacy of uRPF schemes. | Figure 1: Scenario 1 for Illustration of Efficacy of uRPF Schemes | |||
| 2.3. SAV using Feasible-Path Unicast Reverse Path Forwarding | 2.3. SAV Using Feasible-Path Unicast Reverse Path Forwarding | |||
| The feasible-path uRPF technique helps partially overcome the problem | The feasible-path uRPF technique helps partially overcome the problem | |||
| identified with the strict uRPF in the multi-homing case. The | identified with the strict uRPF in the multihoming 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 list. This method | announced routes are also included in the RPF list. This method | |||
| relies on either (a) announcements for the same prefixes (albeit some | relies on either (a) announcements for the same prefixes (albeit some | |||
| may be prepended to effect lower preference) propagating to all | may be prepended to effect lower preference) propagating to all | |||
| transit providers performing feasible-path uRPF checks, or (b) | transit providers performing feasible-path uRPF checks or (b) | |||
| announcement of an aggregate less specific prefix to all transit | announcement of an aggregate less-specific prefix to all transit | |||
| providers while announcing more specific prefixes (covered by the | providers while announcing more-specific prefixes (covered by the | |||
| less specific prefix) to different transit providers as needed for | less-specific prefix) to different transit providers as needed for | |||
| traffic engineering. As an example, in the multi-homing scenario | traffic engineering. | |||
| (see Scenario 2 in Figure 2), if the customer AS announces routes for | ||||
| both prefixes (P1, P2) to both transit providers (with suitable | As an example, in the multihoming scenario (see Scenario 2 in | |||
| prepends if needed for traffic engineering), then the feasible-path | Figure 2), if the customer AS announces routes for both prefixes (P1, | |||
| uRPF method works. It should be mentioned that the feasible-path | P2) to both transit providers (with suitable prepends if needed for | |||
| uRPF works in this scenario only if customer routes are preferred at | traffic engineering), then the feasible-path uRPF method works. It | |||
| AS2 and AS3 over a shorter non-customer route. However, the | should be mentioned that the feasible-path uRPF works in this | |||
| feasible-path uRPF method has limitations as well. One form of | scenario only if customer routes are preferred at AS2 and AS3 over a | |||
| limitation naturally occurs when the recommendation (a) or (b) | shorter non-customer route. However, the feasible-path uRPF method | |||
| mentioned above regarding propagation of prefixes is not followed. | has limitations as well. One form of limitation naturally occurs | |||
| when the recommendation (a) or (b) mentioned above regarding | ||||
| propagation of prefixes is not followed. | ||||
| Another form of limitation can be described as follows. In Scenario | Another form of limitation can be described as follows. In Scenario | |||
| 2 (described here, illustrated in Figure 2), it is possible that the | 2 (described here, 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 | |||
| prepended route for prefix P1 to the first transit provider (ISP-a or | prepended route for prefix P1 to the first transit provider (ISP-a or | |||
| AS2). This is because AS3's decision policy permits giving priority | AS2). This is because AS3's decision policy permits giving priority | |||
| to a shorter route to prefix P1 via a lateral peer (AS2) over a | to a shorter route to prefix P1 via a lateral peer (AS2) over a | |||
| longer route learned directly from the customer (AS1). In such a | longer route learned directly from the customer (AS1). In such a | |||
| scenario, AS3 would not send any route announcement for prefix P1 to | scenario, AS3 would not send any route announcement for prefix P1 to | |||
| AS2 (over the p2p link). Then a data packet with source address in | AS2 (over the P2P link). Then, a data packet with a source address | |||
| prefix P1 that originates from AS1 and traverses via AS3 to AS2 will | in prefix P1 that originates from AS1 and traverses via AS3 to AS2 | |||
| get dropped at AS2. | will get dropped at AS2. | |||
| +------------+ routes for P1, P2 +-----------+ | +------------+ routes for P1, P2 +------------+ | |||
| | AS2(ISP-a) |<-------------------->| AS3(ISP-b)| | | AS2(ISP-a) |<-------------------->| AS3(ISP-b) | | |||
| +------------+ (p2p) +-----------+ | +------------+ (P2P) +------------+ | |||
| /\ /\ | /\ /\ | |||
| \ / | \ / | |||
| P1[AS1]\ /P2[AS1] | P1[AS1]\ /P2[AS1] | |||
| \ / | \ / | |||
| P2[AS1 AS1 AS1]\ /P1[AS1 AS1 AS1] | P2[AS1 AS1 AS1]\ /P1[AS1 AS1 AS1] | |||
| \ / | \ / | |||
| +-----------------------+ | +-----------------------+ | |||
| | 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 a source address in P1: | |||
| * Feasible-path uRPF works (if customer route to P1 | * Feasible-path uRPF works (if the customer route to P1 | |||
| is preferred at AS3 over shorter path) | is preferred at AS3 over the shorter path) | |||
| * Feasible-path uRPF fails (if shorter path to P1 | * Feasible-path uRPF fails (if the shorter path to P1 | |||
| is preferred at AS3 over customer route) | is preferred at AS3 over the customer route) | |||
| * Loose uRPF works (but not desirable) | * Loose uRPF works (but not desirable) | |||
| * Enhanced Feasible-path uRPF works best | * Enhanced feasible-path uRPF works best | |||
| Figure 2: Scenario 2 for illustration of efficacy of uRPF schemes. | Figure 2: Scenario 2 for Illustration of Efficacy of uRPF Schemes | |||
| 2.4. SAV using Loose Unicast Reverse Path Forwarding | 2.4. SAV Using Loose Unicast Reverse Path Forwarding | |||
| In the loose unicast Reverse Path Forwarding (uRPF) method, an | In the loose uRPF method, an ingress packet at the border router is | |||
| ingress packet at the border router is accepted only if the FIB has | accepted only if the FIB has one or more prefixes that encompass the | |||
| one or more prefixes that encompass the source address. That is, a | source address. That is, a packet is dropped if no route exists in | |||
| packet is dropped if no route exists in the FIB for the source | the FIB for the source address. Loose uRPF sacrifices | |||
| address. Loose uRPF sacrifices directionality. It only drops | directionality. It only drops packets if the source address is | |||
| packets if the source address is unreachable in the current FIB | unreachable in the current FIB (e.g., IANA special-purpose prefixes | |||
| (e.g., IANA special-purpose prefixes [SPAR-v4][SPAR-v6], unallocated, | [SPAR-v4][SPAR-v6], unallocated, allocated but currently not routed). | |||
| allocated but currently not routed). | ||||
| 2.5. SAV using VRF Table | 2.5. SAV Using VRF Table | |||
| The Virtual Routing and Forwarding (VRF) technology [RFC4364] | The Virtual Routing and Forwarding (VRF) technology [RFC4364] | |||
| [Juniper] allows a router to maintain multiple routing table | [Juniper] allows a router to maintain multiple routing table | |||
| instances separate from the global Routing Information Base (RIB). | instances separate from the global Routing Information Base (RIB). | |||
| External BGP (eBGP) peering sessions send specific routes to be | External BGP (eBGP) peering sessions send specific routes to be | |||
| stored in a dedicated VRF table. The uRPF process queries the VRF | stored in a dedicated VRF table. The uRPF process queries the VRF | |||
| table (instead of the FIB) for source address validation. A VRF | table (instead of the FIB) for source address validation. A VRF | |||
| table can be dedicated per eBGP peer and used for uRPF for only that | table can be dedicated per eBGP peer and used for uRPF for only that | |||
| peer, resulting in strict mode operation. For implementing loose | peer, resulting in strict mode operation. For implementing loose | |||
| uRPF on an interface, the corresponding VRF table would be global, | uRPF on an interface, the corresponding VRF table would be global, | |||
| i.e., contains the same routes as in the FIB. | i.e., contains the same routes as in the FIB. | |||
| 3. SAV using Enhanced Feasible-Path uRPF | 3. SAV Using Enhanced Feasible-Path uRPF | |||
| 3.1. Description of the Method | 3.1. Description of the Method | |||
| Enhanced feasible-path uRPF (EFP-uRPF) method adds greater | The enhanced feasible-path uRPF (EFP-uRPF) method adds greater | |||
| operational robustness and efficacy to existing uRPF methods | operational robustness and efficacy to existing uRPF methods | |||
| discussed in Section 2. That is because it avoids dropping | discussed in Section 2. That is because it avoids dropping | |||
| legitimate data packets and avoids compromising directionality. The | legitimate data packets and compromising directionality. The method | |||
| method is based on the principle that if BGP updates for multiple | is based on the principle that if BGP updates for multiple prefixes | |||
| prefixes with the same origin AS were received on different | with the same origin AS were received on different interfaces (at | |||
| interfaces (at border routers), then incoming data packets with | border routers), then incoming data packets with source addresses in | |||
| source addresses in any of those prefixes should be accepted on any | any of those prefixes should be accepted on any of those interfaces. | |||
| of those interfaces. The EFP-uRPF method can be best explained with | The EFP-uRPF method can be best explained with an example, as | |||
| an example as follows: | follows: | |||
| Let us say, a border router of ISP-A has in its Adj-RIBs-In [RFC4271] | Let us say, in its Adj-RIBs-In [RFC4271], a border router of ISP-A | |||
| the set of prefixes {Q1, Q2, Q3} each of which has AS-x as its origin | has the set of prefixes {Q1, Q2, Q3}, each of which has AS-x as its | |||
| and AS-x is in ISP-A's customer cone. In this set, the border router | origin and AS-x is in ISP-A's customer cone. In this set, the border | |||
| received the route for prefix Q1 over a customer facing interface, | router received the route for prefix Q1 over a customer-facing | |||
| while it learned the routes for prefixes Q2 and Q3 from a lateral | interface while it learned the routes for prefixes Q2 and Q3 from a | |||
| peer and an upstream transit provider, respectively. In this example | lateral peer and an upstream transit provider, respectively. In this | |||
| scenario, the enhanced feasible-path uRPF method requires Q1, Q2, and | example scenario, the enhanced feasible-path uRPF method requires Q1, | |||
| Q3 be included in the RPF list for the customer interface under | Q2, and Q3 be included in the RPF list for the customer interface | |||
| consideration. | under consideration. | |||
| Thus, the enhanced feasible-path uRPF (EFP-uRPF) method gathers | Thus, the EFP-uRPF method gathers feasible paths for customer | |||
| feasible paths for customer interfaces in a more precise way (as | interfaces in a more precise way (as compared to the feasible-path | |||
| compared to feasible-path uRPF) so that all legitimate packets are | uRPF) so that all legitimate packets are accepted while the | |||
| accepted while the directionality property is not compromised. | directionality property is not compromised. | |||
| The above described EFP-uRPF method is recommended to be applied on | The above-described EFP-uRPF method is recommended to be applied on | |||
| customer interfaces. It can be extended to create the RPF lists for | customer interfaces. It can also be extended to create the RPF lists | |||
| lateral peer interfaces also. That is, the EFP-uRPF method can be | for lateral peer interfaces. That is, the EFP-uRPF method can be | |||
| applied (and loose uRPF avoided) on lateral peer interfaces. That | applied (and loose uRPF avoided) on lateral peer interfaces. That | |||
| will help avoid compromise of directionality for lateral peer | will help to avoid compromising directionality for lateral peer | |||
| interfaces (which is inevitable with loose uRPF; see Section 2.4). | interfaces (which is inevitable with loose uRPF; see Section 2.4). | |||
| Looking back at Scenarios 1 and 2 (Figure 1 and Figure 2), the | Looking back at Scenarios 1 and 2 (Figures 1 and 2), the EFP-uRPF | |||
| enhanced feasible-path uRPF (EFP-uRPF) method works better than the | method works better than the other uRPF methods. Scenario 3 | |||
| other uRPF methods. Scenario 3 (Figure 3) further illustrates the | (Figure 3) further illustrates the enhanced feasible-path uRPF method | |||
| enhanced feasible-path uRPF method with a more concrete example. In | with a more concrete example. In this scenario, the focus is on | |||
| this scenario, the focus is on operation of the feasible-path uRPF at | operation of the EFP-uRPF at ISP4 (AS4). ISP4 learns a route for | |||
| ISP4 (AS4). ISP4 learns a route for prefix P1 via a customer-to- | prefix P1 via a C2P interface from customer ISP2 (AS2). This route | |||
| provider (C2P) interface from customer ISP2 (AS2). This route for P1 | for P1 has origin AS1. ISP4 also learns a route for P2 via another | |||
| has origin AS1. ISP4 also learns a route for P2 via another C2P | C2P interface from customer ISP3 (AS3). Additionally, AS4 learns a | |||
| interface from customer ISP3 (AS3). Additionally, AS4 learns a route | route for P3 via a lateral P2P interface from ISP5 (AS5). Routes for | |||
| for P3 via a lateral peer-to-peer (p2p) interface from ISP5 (AS5). | all three prefixes have the same origin AS (i.e., AS1). Using the | |||
| Routes for all three prefixes have the same origin AS (i.e., AS1). | enhanced feasible-path uRPF scheme and given the commonality of the | |||
| Using the enhanced feasible-path uRPF scheme, given the commonality | origin AS across the routes for P1, P2, and P3, AS4 includes all of | |||
| of the origin AS across the routes for P1, P2 and P3, AS4 includes | these prefixes in the RPF list for the customer interfaces (from AS2 | |||
| all of these prefixes in the RPF list for the customer interfaces | and AS3). | |||
| (from AS2 and AS3). | ||||
| +----------+ P3[AS5 AS1] +------------+ | +----------+ P3[AS5 AS1] +------------+ | |||
| | AS4(ISP4)|<---------------| AS5(ISP5) | | | AS4(ISP4)|<---------------| AS5(ISP5) | | |||
| +----------+ (p2p) +------------+ | +----------+ (P2P) +------------+ | |||
| /\ /\ /\ | /\ /\ /\ | |||
| / \ / | / \ / | |||
| P1[AS2 AS1]/ \P2[AS3 AS1] / | P1[AS2 AS1]/ \P2[AS3 AS1] / | |||
| (C2P)/ \(C2P) / | (C2P)/ \(C2P) / | |||
| / \ / | / \ / | |||
| +----------+ +----------+ / | +----------+ +----------+ / | |||
| | AS2(ISP2)| | AS3(ISP3)| / | | AS2(ISP2)| | AS3(ISP3)| / | |||
| +----------+ +----------+ / | +----------+ +----------+ / | |||
| /\ /\ / | /\ /\ / | |||
| \ / / | \ / / | |||
| P1[AS1]\ /P2[AS1] /P3[AS1] | P1[AS1]\ /P2[AS1] /P3[AS1] | |||
| (C2P)\ /(C2P) /(C2P) | (C2P)\ /(C2P) /(C2P) | |||
| \ / / | \ / / | |||
| +----------------+ / | +----------------+ / | |||
| | AS1(customer) |/ | | AS1(customer) |/ | |||
| +----------------+ | +----------------+ | |||
| P1, P2, P3 (prefixes originated) | P1, P2, P3 (prefixes originated) | |||
| Consider that data packets (sourced from AS1) | Consider that data packets (sourced from AS1) | |||
| may be received at AS4 with source address | may be received at AS4 with a source address | |||
| in P1, P2 or P3 via any of the neighbors (AS2, AS3, AS5): | in P1, P2, or P3 via any of the neighbors (AS2, AS3, AS5): | |||
| * Feasible-path uRPF fails | * Feasible-path uRPF fails | |||
| * Loose uRPF works (but not desirable) | * Loose uRPF works (but not desirable) | |||
| * Enhanced Feasible-path uRPF works best | * Enhanced feasible-path uRPF works best | |||
| Figure 3: Scenario 3 for illustration of efficacy of uRPF schemes. | Figure 3: Scenario 3 for Illustration of Efficacy of uRPF Schemes | |||
| 3.1.1. Algorithm A: Enhanced Feasible-Path uRPF | 3.1.1. Algorithm A: Enhanced Feasible-Path uRPF | |||
| The underlying algorithm in the solution method described above | The underlying algorithm in the solution method described above | |||
| (Section 3.1) can be specified as follows (to be implemented in a | (Section 3.1) can be specified as follows (to be implemented in a | |||
| transit AS): | transit AS): | |||
| 1. Create the set of unique origin ASes considering only the routes | 1. Create the set of unique origin ASes considering only the routes | |||
| in the Adj-RIBs-In of customer interfaces. Call it Set A = {AS1, | in the Adj-RIBs-In of customer interfaces. Call it Set A = {AS1, | |||
| AS2, ..., ASn}. | AS2, ..., ASn}. | |||
| 2. Considering all routes in Adj-RIBs-In for all interfaces | 2. Considering all routes in Adj-RIBs-In for all interfaces | |||
| (customer, lateral peer, and transit provider), form the set of | (customer, lateral peer, and transit provider), form the set of | |||
| unique prefixes that have a common origin AS1. Call it Set X1. | unique prefixes that have a common origin AS1. Call it Set X1. | |||
| 3. Include set X1 in Reverse Path Filter (RPF) list on all customer | 3. Include Set X1 in the RPF list on all customer interfaces on | |||
| interfaces on which one or more of the prefixes in set X1 were | which one or more of the prefixes in Set X1 were received. | |||
| received. | ||||
| 4. Repeat Steps 2 and 3 for each of the remaining ASes in Set A | 4. Repeat Steps 2 and 3 for each of the remaining ASes in Set A | |||
| (i.e., for ASi, where i = 2, ..., n). | (i.e., for ASi, where i = 2, ..., n). | |||
| The above algorithm can be extended to apply EFP-uRPF method to | The above algorithm can also be extended to apply the EFP-uRPF method | |||
| lateral peer interfaces also. However, it is left up to the operator | to lateral peer interfaces. However, it is left up to the operator | |||
| to decide whether they should apply EFP-uRPF or loose uRPF method on | to decide whether they should apply the EFP-uRPF or loose uRPF method | |||
| lateral peer interfaces. The loose uRPF method is recommended to be | on lateral peer interfaces. The loose uRPF method is recommended to | |||
| applied on transit provider interfaces. | be applied on transit provider interfaces. | |||
| 3.2. Operational Recommendations | 3.2. Operational Recommendations | |||
| The following operational recommendations will make the operation of | The following operational recommendations will make the operation of | |||
| the enhanced feasible-path uRPF robust: | the enhanced feasible-path uRPF robust: | |||
| For multi-homed stub AS: | For multihomed stub AS: | |||
| o A multi-homed stub AS should announce at least one of the prefixes | * A multihomed stub AS should announce at least one of the prefixes | |||
| it originates to each of its transit provider ASes. (It is | it originates to each of its transit provider ASes. (It is | |||
| understood that a single-homed stub AS would announce all prefixes | understood that a single-homed stub AS would announce all prefixes | |||
| it originates to its sole transit provider AS.) | it originates to its sole transit provider AS.) | |||
| For non-stub AS: | For non-stub AS: | |||
| o A non-stub AS should also announce at least one of the prefixes it | * 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 | * 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. | |||
| 3.3. A Challenging Scenario | 3.3. A Challenging Scenario | |||
| It should be observed that in the absence of ASes adhering to above | It should be observed that in the absence of ASes adhering to above | |||
| recommendations, the following example scenario may be constructed | recommendations, the following example scenario, which poses a | |||
| which poses a challenge for the enhanced feasible-path uRPF (as well | challenge for the enhanced feasible-path uRPF (as well as for | |||
| as for traditional feasible-path uRPF). In the scenario illustrated | traditional feasible-path uRPF), may be constructed. In the scenario | |||
| in Figure 4, since routes for neither P1 nor P2 are propagated on the | illustrated in Figure 4, since routes for neither P1 nor P2 are | |||
| AS2-AS4 interface (due to the presence of NO_EXPORT Community), the | propagated on the AS2-AS4 interface (due to the presence of NO_EXPORT | |||
| enhanced feasible-path uRPF at AS4 will reject data packets received | Community), the enhanced feasible-path uRPF at AS4 will reject data | |||
| on that interface with source addresses in P1 or P2. (For a little | packets received on that interface with source addresses in P1 or P2. | |||
| more complex example scenario, see slide #10 in [sriram-urpf].) | (For a little more complex example scenario, see slide #10 in | |||
| [Sriram-URPF].) | ||||
| +----------+ | +----------+ | |||
| | AS4(ISP4)| | | AS4(ISP4)| | |||
| +----------+ | +----------+ | |||
| /\ /\ | /\ /\ | |||
| / \ P1[AS3 AS1] | / \ P1[AS3 AS1] | |||
| P1 and P2 not / \ P2[AS3 AS1] | P1 and P2 not / \ P2[AS3 AS1] | |||
| propagated / \ (C2P) | propagated / \ (C2P) | |||
| (C2P) / \ | (C2P) / \ | |||
| +----------+ +----------+ | +----------+ +----------+ | |||
| skipping to change at page 11, line 39 ¶ | skipping to change at line 497 ¶ | |||
| \ / P1[AS1] | \ / P1[AS1] | |||
| P1[AS1] NO_EXPORT \ / P2[AS1] | P1[AS1] NO_EXPORT \ / P2[AS1] | |||
| P2[AS1] NO_EXPORT \ / (C2P) | P2[AS1] NO_EXPORT \ / (C2P) | |||
| (C2P) \ / | (C2P) \ / | |||
| +----------------+ | +----------------+ | |||
| | AS1(customer) | | | AS1(customer) | | |||
| +----------------+ | +----------------+ | |||
| P1, P2 (prefixes originated) | P1, P2 (prefixes originated) | |||
| Consider that data packets (sourced from AS1) | Consider that data packets (sourced from AS1) | |||
| may be received at AS4 with source address | may be received at AS4 with a source address | |||
| in P1 or P2 via AS2: | in P1 or P2 via AS2: | |||
| * Feasible-path uRPF fails | * Feasible-path uRPF fails | |||
| * Loose uRPF works (but not desirable) | * Loose uRPF works (but not desirable) | |||
| * Enhanced Feasible-path uRPF with Algorithm A fails | * Enhanced feasible-path uRPF with Algorithm A fails | |||
| * Enhanced Feasible-path uRPF with Algorithm B works best | * Enhanced feasible-path uRPF with Algorithm B works best | |||
| Figure 4: Illustration of a challenging scenario. | Figure 4: Illustration of a Challenging Scenario | |||
| 3.4. Algorithm B: Enhanced Feasible-Path uRPF with Additional | 3.4. Algorithm B: Enhanced Feasible-Path uRPF with Additional | |||
| Flexibility Across Customer Cone | Flexibility across Customer Cone | |||
| Adding further flexibility to the enhanced feasible-path uRPF method | Adding further flexibility to the enhanced feasible-path uRPF method | |||
| can help address the potential limitation identified above using the | can help address the potential limitation identified above using the | |||
| scenario in Figure 4 (Section 3.3). In the following, "route" refers | scenario in Figure 4 (Section 3.3). In the following, "route" refers | |||
| to a route currently existing in the Adj-RIB-in. Including the | to a route currently existing in the Adj-RIBs-In. Including the | |||
| additional degree of flexibility, the modified algorithm called | additional degree of flexibility, the modified algorithm called | |||
| Algorithm B (implemented in a transit AS) can be described as | Algorithm B (implemented in a transit AS) can be described as | |||
| follows: | follows: | |||
| 1. Create the set of all directly-connected customer interfaces. | 1. Create the set of all directly connected customer interfaces. | |||
| Call it Set I = {I1, I2, ..., Ik}. | Call it Set I = {I1, I2, ..., Ik}. | |||
| 2. Create the set of all unique prefixes for which routes exist in | 2. Create the set of all unique prefixes for which routes exist in | |||
| Adj-RIBs-In for the interfaces in Set I. Call it Set P = {P1, | Adj-RIBs-In for the interfaces in Set I. Call it Set P = {P1, | |||
| P2, ..., Pm}. | P2, ..., Pm}. | |||
| 3. Create the set of all unique origin ASes seen in the routes that | 3. Create the set of all unique origin ASes seen in the routes that | |||
| exist in Adj-RIBs-In for the interfaces in Set I. Call it Set A | exist in Adj-RIBs-In for the interfaces in Set I. Call it Set A | |||
| = {AS1, AS2, ..., ASn}. | = {AS1, AS2, ..., ASn}. | |||
| skipping to change at page 12, line 38 ¶ | skipping to change at line 539 ¶ | |||
| Adj-RIBs-In of all lateral peer and transit provider interfaces | Adj-RIBs-In of all lateral peer and transit provider interfaces | |||
| such that each of the routes has its origin AS belonging in Set | such that each of the routes has its origin AS belonging in Set | |||
| A. Call it Set Q = {Q1, Q2, ..., Qj}. | A. Call it Set Q = {Q1, Q2, ..., Qj}. | |||
| 5. Then, Set Z = Union(P,Q) is the RPF list that is applied for | 5. Then, Set Z = Union(P,Q) is the RPF list that is applied for | |||
| every customer interface in Set I. | every customer interface in Set I. | |||
| When Algorithm B (which is more flexible than Algorithm A) is | When Algorithm B (which is more flexible than Algorithm A) is | |||
| employed on customer interfaces, the type of limitation identified in | employed on customer interfaces, the type of limitation identified in | |||
| Figure 4 (Section 3.3) is overcome and the method works. The | Figure 4 (Section 3.3) is overcome and the method works. The | |||
| directionality property is minimally compromised, but still the | directionality property is minimally compromised, but the proposed | |||
| proposed EFP-uRPF method with Algorithm B is a much better choice | EFP-uRPF method with Algorithm B is still a much better choice (for | |||
| (for the scenario under consideration) than applying the loose uRPF | the scenario under consideration) than applying the loose uRPF | |||
| method which is oblivious to directionality. | method, which is oblivious to directionality. | |||
| So, applying EFP-uRPF method with Algorithm B is recommended on | So, applying the EFP-uRPF method with Algorithm B is recommended on | |||
| customer interfaces for the challenging scenarios such as those | customer interfaces for the challenging scenarios, such as those | |||
| described in Section 3.3. | described in Section 3.3. | |||
| 3.5. Augmenting RPF Lists with ROA and IRR Data | 3.5. Augmenting RPF Lists with ROA and IRR Data | |||
| It is worth emphasizing that an indirect part of the proposal in this | It is worth emphasizing that an indirect part of the proposal in this | |||
| document is that RPF filters may be augmented from secondary sources. | document is that RPF filters may be augmented from secondary sources. | |||
| Hence, the construction of RPF lists using a method proposed in this | Hence, the construction of RPF lists using a method proposed in this | |||
| document (Algorithm A or B) can be augmented with data from Route | document (Algorithm A or B) can be augmented with data from Route | |||
| Origin Authorization (ROA) [RFC6482] as well as Internet Routing | Origin Authorization (ROA) [RFC6482], as well as Internet Routing | |||
| Registry (IRR) data. Special care should be exercised when using IRR | Registry (IRR) data. Special care should be exercised when using IRR | |||
| data because it not always accurate or trusted. In the EFP-uRPF | data because it is not always accurate or trusted. In the EFP-uRPF | |||
| method with Algorithm A (see Section 3.1.1), if a ROA includes prefix | method with Algorithm A (see Section 3.1.1), if a ROA includes prefix | |||
| Pi and ASj, then augment with Pi the RPF list of each customer | Pi and ASj, then augment the RPF list of each customer interface on | |||
| interface on which at least one route with origin ASj was received. | which at least one route with origin ASj was received with prefix Pi. | |||
| In the EFP-uRPF method with Algorithm B, if ASj belongs in set A (see | In the EFP-uRPF method with Algorithm B, if ASj belongs in Set A (see | |||
| Step #3 Section 3.4) and if a ROA includes prefix Pi and ASj, then | Step #3 Section 3.4) and if a ROA includes prefix Pi and ASj, then | |||
| augment with Pi the RPF list Z in Step 5 of Algorithm B. Similar | augment the RPF list Z in Step 5 of Algorithm B with prefix Pi. | |||
| procedures can be followed with reliable IRR data as well. This will | Similar procedures can be followed with reliable IRR data as well. | |||
| help make the RPF lists more robust about source addresses that may | This will help make the RPF lists more robust about source addresses | |||
| be legitimately used by customers of the ISP. | that may be legitimately used by customers of the ISP. | |||
| 3.6. Implementation and Operations Considerations | 3.6. Implementation and Operations Considerations | |||
| 3.6.1. Impact on FIB Memory Size Requirement | 3.6.1. Impact on FIB Memory Size Requirement | |||
| The existing RPF checks in edge routers take advantage of existing | The existing RPF checks in edge routers take advantage of existing | |||
| line card implementations to perform the RPF functions. For | line card implementations to perform the RPF functions. For | |||
| implementation of the enhanced feasible-path uRPF, the general | implementation of the enhanced feasible-path uRPF, the general | |||
| necessary feature would be to extend the line cards to take arbitrary | necessary feature would be to extend the line cards to take arbitrary | |||
| RPF lists that are not necessarily the same as the existing FIB | RPF lists that are not necessarily the same as the existing FIB | |||
| contents. In the algorithms (Section 3.1.1 and Section 3.4) | contents. In the algorithms (Sections 3.1.1 and 3.4) described here, | |||
| described here, the RPF lists are constructed by applying a set of | the RPF lists are constructed by applying a set of rules to all | |||
| rules to all received BGP routes (not just those selected as best | received BGP routes (not just those selected as best path and | |||
| path and installed in the FIB). The concept of uRPF querying an RPF | installed in the FIB). The concept of uRPF querying an RPF list | |||
| list (instead of the FIB) is similar to uRPF querying a VRF table | (instead of the FIB) is similar to uRPF querying a VRF table (see | |||
| (see (Section 2.5). | Section 2.5). | |||
| The techniques described in this document require that there should | The techniques described in this document require that there should | |||
| be additional memory (i.e., ternary content addressable memory | be additional memory (i.e., ternary content-addressable memory | |||
| (TCAM)) available to store the RPF lists in line cards. For an ISP's | (TCAM)) available to store the RPF lists in line cards. For an ISP's | |||
| AS, the RPF list size for each line card will roughly equal the total | AS, the RPF list size for each line card will roughly equal the total | |||
| number of originated prefixes from ASes in its customer cone | number of originated prefixes from ASes in its customer cone | |||
| (assuming Algorithm B in Section 3.4 is used). (Note: EFP-uRPF with | (assuming Algorithm B in Section 3.4 is used). (Note: EFP-uRPF with | |||
| Algorithm A (see Section 3.1.1) requires much less memory than EFP- | Algorithm A (see Section 3.1.1) requires much less memory than EFP- | |||
| uRPF with Algorithm B.) | uRPF with Algorithm B.) | |||
| The following table shows the measured customer cone sizes in number | The following table shows the measured customer cone sizes in number | |||
| of prefixes originated (from all ASes in the customer cone) for | of prefixes originated (from all ASes in the customer cone) for | |||
| various types of ISPs [sriram-ripe63]: | various types of ISPs [Sriram-RIPE63]: | |||
| +---------------------------------+---------------------------------+ | +------------+---------------------------------------+ | |||
| | Type of ISP | Measured Customer Cone Size in | | | Type of | Measured Customer Cone Size in # | | |||
| | | # Prefixes (in turn this is an | | | ISP | Prefixes (in turn this is an estimate | | |||
| | | estimate for RPF list size on | | | | for RPF list size on the line card) | | |||
| | | the line card) | | +============+=======================================+ | |||
| +---------------------------------+---------------------------------+ | | Very Large | 32393 | | |||
| | Very Large Global ISP #1 | 32393 | | | Global ISP | | | |||
| | ------------------------------- | ------------------------------- | | | #1 | | | |||
| | Very Large Global ISP #2 | 29528 | | +------------+---------------------------------------+ | |||
| | ------------------------------- | ------------------------------- | | | Very Large | 29528 | | |||
| | Large Global ISP | 20038 | | | Global ISP | | | |||
| | ------------------------------- | ------------------------------- | | | #2 | | | |||
| | Mid-size Global ISP | 8661 | | +------------+---------------------------------------+ | |||
| | ------------------------------- | ------------------------------- | | | Large | 20038 | | |||
| | Regional ISP (in Asia) | 1101 | | | Global ISP | | | |||
| +---------------------------------+---------------------------------+ | +------------+---------------------------------------+ | |||
| | Mid-size | 8661 | | ||||
| | Global ISP | | | ||||
| +------------+---------------------------------------+ | ||||
| | Regional | 1101 | | ||||
| | ISP (in | | | ||||
| | Asia) | | | ||||
| +------------+---------------------------------------+ | ||||
| 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 | |||
| at ASes at the edges of the Internet where the customer cone sizes | ASes at the edges of the Internet where the customer cone sizes are | |||
| are smaller as shown in Table 1. | 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 million routes [Cisco1]. | size large enough to accommodate 2 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 midsize 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. What is meant here by relevant ISP scenarios is that only | scenarios. What is meant here by relevant ISP scenarios is that only | |||
| smaller ISPs (and possibly some mid-size and regional ISPs) are | smaller ISPs (and possibly some midsize and regional ISPs) are | |||
| expected to implement the proposed EFP-uRPF method since it is most | expected to implement the proposed EFP-uRPF method since it is most | |||
| effective closer to the edges of the Internet. | effective closer to the edges of the Internet. | |||
| 3.6.2. Coping with BGP's Transient Behavior | 3.6.2. Coping with BGP's Transient Behavior | |||
| BGP routing announcements can exhibit transient behavior. Routes may | BGP routing announcements can exhibit transient behavior. Routes may | |||
| be withdrawn temporarily and then re-announced due to transient | be withdrawn temporarily and then reannounced due to transient | |||
| conditions such as BGP session reset or link failure-recovery. To | conditions, such as BGP session reset or link failure recovery. To | |||
| cope with this, hysteresis should be introduced in the maintenance of | cope with this, hysteresis should be introduced in the maintenance of | |||
| the RPF lists. Deleting entries from the RPF lists SHOULD be delayed | the RPF lists. Deleting entries from the RPF lists SHOULD be delayed | |||
| by a pre-determined amount (the value based on operational | by a predetermined amount (the value based on operational experience) | |||
| experience) when responding to route withdrawals. This should help | when responding to route withdrawals. This should help suppress the | |||
| suppress the effects due to the transients in BGP. | effects due to the transients in BGP. | |||
| 3.7. Summary of Recommendations | 3.7. Summary of Recommendations | |||
| Depending on the scenario, an ISP or enterprise AS operator should | Depending on the scenario, an ISP or enterprise AS operator should | |||
| follow one of the following recommendations concerning uRPF/SAV: | follow one of the following recommendations concerning uRPF/SAV: | |||
| 1. For directly connected networks, i.e., subnets directly connected | 1. For directly connected networks, i.e., subnets directly connected | |||
| to the AS, the AS under consideration SHOULD perform ACL-based | to the AS, the AS under consideration SHOULD perform ACL-based | |||
| source address validation (SAV). | 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 | |||
| under consideration SHOULD perform SAV based on the strict uRPF | under consideration SHOULD perform SAV based on the strict uRPF | |||
| method. | method. | |||
| 3. For all other scenarios: | 3. For all other scenarios: | |||
| * The enhanced feasible-path uRPF (EFP-uRPF) method with | * The EFP-uRPF method with Algorithm B (see Section 3.4) SHOULD | |||
| Algorithm B (see Section 3.4) SHOULD be applied on customer | be applied on customer interfaces. | |||
| interfaces. | ||||
| * Loose uRPF method SHOULD be applied on lateral peer and | * The loose uRPF method SHOULD be applied on lateral peer and | |||
| transit provider interfaces. | transit provider interfaces. | |||
| It is also recommended that prefixes from registered ROAs and IRR | It is also recommended that prefixes from registered ROAs and IRR | |||
| route objects that include ASes in an ISP's customer cone SHOULD be | route objects that include ASes in an ISP's customer cone SHOULD be | |||
| used to augment the pertaining RPF lists (see Section 3.5 for | used to augment the pertaining RPF lists (see Section 3.5 for | |||
| details). | details). | |||
| 3.7.1. Applicability of the enhanced feasible-path uRPF (EFP-uRPF) | 3.7.1. Applicability of the EFP-uRPF Method with Algorithm A | |||
| method with Algorithm A | ||||
| EFP-uRPF method with Algorithm A is not mentioned in the above set of | The EFP-uRPF method with Algorithm A is not mentioned in the above | |||
| recommendations. It is an alternative to EFP-uRPF with Algorithm B | set of recommendations. It is an alternative to EFP-uRPF with | |||
| and can be used in limited circumstances. The EFP-uRPF method with | Algorithm B and can be used in limited circumstances. The EFP-uRPF | |||
| Algorithm A is expected to work fine if an ISP deploying it has only | method with Algorithm A is expected to work fine if an ISP deploying | |||
| multi-homed stub customers. It is trivially equivalent to strict | it has only multihomed stub customers. It is trivially equivalent to | |||
| uRPF if an ISP deploys it for a single-homed stub customer. More | strict uRPF if an ISP deploys it for a single-homed stub customer. | |||
| generally, it is also expected to work fine when there is absence of | More generally, it is also expected to work fine when there is | |||
| limitations such as those described in Section 3.3. However, caution | absence of limitations, such as those described in Section 3.3. | |||
| is required for use of EFP-uRPF with Algorithm A because even if the | However, caution is required for use of EFP-uRPF with Algorithm A | |||
| limitations are not expected at the time of deployment, the | because even if the limitations are not expected at the time of | |||
| vulnerability to change in conditions exists. It may be difficult | deployment, the vulnerability to change in conditions exists. It may | |||
| for an ISP to know or track the extent of use of NO_EXPORT (see | be difficult for an ISP to know or track the extent of use of | |||
| Section 3.3) on routes within its customer cone. If an ISP decides | NO_EXPORT (see Section 3.3) on routes within its customer cone. If | |||
| to use EFP-uRPF with Algorithm A, it should make its direct customers | an ISP decides to use EFP-uRPF with Algorithm A, it should make its | |||
| aware of the operational recommendations in Section 3.2. This means | direct customers aware of the operational recommendations in | |||
| that the ISP notifies direct customers that at least one prefix | Section 3.2. This means that the ISP notifies direct customers that | |||
| originated by each AS in the direct customer's customer cone must | at least one prefix originated by each AS in the direct customer's | |||
| propagate to the ISP. | customer cone must propagate to the ISP. | |||
| On a lateral peer interface, an ISP may choose to apply the EFP-uRPF | On a lateral peer interface, an ISP may choose to apply the EFP-uRPF | |||
| method with Algorithm A (with appropriate modification of the | method with Algorithm A (with appropriate modification of the | |||
| algorithm). This is because stricter forms of uRPF (than the loose | algorithm). This is because stricter forms of uRPF (than the loose | |||
| uRPF) may be considered applicable by some ISPs on interfaces with | uRPF) may be considered applicable by some ISPs on interfaces with | |||
| lateral peers. | lateral peers. | |||
| 4. Security Considerations | 4. Security Considerations | |||
| The security considerations in BCP 38 [RFC2827] and BCP 84 [RFC3704] | The security considerations in BCP 38 [RFC2827] and RFC 3704 | |||
| apply for this document as well. In addition, if considering using | [RFC3704] apply for this document as well. In addition, if | |||
| EFP-uRPF method with Algorithm A, an ISP or AS operator should be | considering using the EFP-uRPF method with Algorithm A, an ISP or AS | |||
| aware of the applicability considerations and potential | operator should be aware of the applicability considerations and | |||
| vulnerabilities discussed in Section 3.7.1. | potential vulnerabilities discussed in Section 3.7.1. | |||
| In augmenting RPF lists with ROA (and possibly reliable IRR) | In augmenting RPF lists with ROA (and possibly reliable IRR) | |||
| information (see Section 3.5), a trade-off is made in favor of | information (see Section 3.5), a trade-off is made in favor of | |||
| reducing false positives (regarding invalid detection in SAV) at the | reducing false positives (regarding invalid detection in SAV) at the | |||
| expense of a slight other risk. The other risk being a malicious | expense of another slight risk. The other risk being that a | |||
| actor at another AS in the neighborhood within the customer cone | malicious actor at another AS in the neighborhood within the customer | |||
| might take advantage (of the augmented prefix) to some extent. This | cone might take advantage (of the augmented prefix) to some extent. | |||
| risk also exists even with normal announced prefixes (i.e., without | This risk also exists even with normal announced prefixes (i.e., | |||
| ROA augmentation) for any uRPF method other than the strict. | without ROA augmentation) for any uRPF method other than the strict | |||
| However, the risk is mitigated if the transit provider of the other | uRPF. However, the risk is mitigated if the transit provider of the | |||
| AS in question is performing SAV. | other AS in question is performing SAV. | |||
| Though not within the scope of this document, security hardening of | Though not within the scope of this document, security hardening of | |||
| routers and other supporting systems (e.g., Resource PKI (RPKI) and | routers and other supporting systems (e.g., Resource PKI (RPKI) and | |||
| ROA management systems) against compromise is extremely important. | ROA management systems) against compromise is extremely important. | |||
| The compromise of those systems can affect the operation and | The compromise of those systems can affect the operation and | |||
| performance of the SAV methods described in this document. | performance of the SAV methods described in this document. | |||
| 5. IANA Considerations | 5. IANA Considerations | |||
| This document does not request new capabilities or attributes. It | This document has no IANA actions. | |||
| does not create any new IANA registries. | ||||
| 6. Acknowledgements | ||||
| The authors would like to thank Sandy Murphy, Alvaro Retana, Job | ||||
| Snijders, Marco Marzetti, Marco d'Itri, Nick Hilliard, Gert Doering, | ||||
| Fred Baker, Igor Gashinsky, Igor Lubashev, Andrei Robachevsky, Barry | ||||
| Greene, Amir Herzberg, Ruediger Volk, Jared Mauch, Oliver Borchert, | ||||
| Mehmet Adalier, and Joel Jaeggli for comments and suggestions. The | ||||
| comments and suggestions received from the IESG reviewers are also | ||||
| much appreciated. | ||||
| 7. References | 6. References | |||
| 7.1. Normative References | 6.1. Normative References | |||
| [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>. | |||
| [RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: | [RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: | |||
| Defeating Denial of Service Attacks which employ IP Source | Defeating Denial of Service Attacks which employ IP Source | |||
| Address Spoofing", BCP 38, RFC 2827, DOI 10.17487/RFC2827, | Address Spoofing", BCP 38, RFC 2827, DOI 10.17487/RFC2827, | |||
| May 2000, <https://www.rfc-editor.org/info/rfc2827>. | May 2000, <https://www.rfc-editor.org/info/rfc2827>. | |||
| skipping to change at page 17, line 34 ¶ | skipping to change at line 763 ¶ | |||
| [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>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| 7.2. Informative References | 6.2. Informative References | |||
| [CAIDA] "Information for AS 174 (COGENT-174)", CAIDA Spoofer | [CAIDA] CAIDA, "Information for AS 174 (COGENT-174)", October | |||
| Project , <https://spoofer.caida.org/as.php?asn=174>. | 2019, <https://spoofer.caida.org/as.php?asn=174>. | |||
| [Cisco1] "Internet Routing Table Growth Causes ROUTING-FIB- | [Cisco1] Cisco, "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", January | |||
| Trouble-shooting Tech-notes , January 2014, | 2014, <https://www.cisco.com/c/en/us/support/docs/routers/ | |||
| <https://www.cisco.com/c/en/us/support/docs/routers/asr- | asr-9000-series-aggregation-services-routers/116999- | |||
| 9000-series-aggregation-services-routers/116999-problem- | problem-line-card-00.html>. | |||
| line-card-00.html>. | ||||
| [Cisco2] "Cisco Nexus 7000 Series NX-OS Unicast Routing | [Cisco2] Cisco, "Cisco Nexus 7000 Series NX-OS Unicast Routing | |||
| Configuration Guide, Release 5.x (Chapter 15: Managing the | Configuration Guide, Release 5.x (Chapter 15: 'Managing | |||
| Unicast RIB and FIB)", Cisco Configuration Guides , March | the Unicast RIB and FIB')", March 2018, | |||
| 2018, <https://www.cisco.com/c/en/us/td/docs/switches/data | <https://www.cisco.com/c/en/us/td/docs/switches/ | |||
| center/sw/5_x/nx- | datacenter/sw/5_x/nx- | |||
| os/unicast/configuration/guide/l3_cli_nxos/ | os/unicast/configuration/guide/l3_cli_nxos/ | |||
| l3_NewChange.html>. | l3_NewChange.html>. | |||
| [Firmin] Firmin, F., "The Evolved Packet Core", 3GPP The Mobile | [Firmin] Firmin, F., "The Evolved Packet Core", | |||
| Broadband Standard , <https://www.3gpp.org/technologies/ | <https://www.3gpp.org/technologies/keywords-acronyms/100- | |||
| keywords-acronyms/100-the-evolved-packet-core>. | the-evolved-packet-core>. | |||
| [ISOC] Vixie (Ed.), P., "Addressing the challenge of IP | [ISOC] Internet Society, "Addressing the challenge of IP | |||
| spoofing", ISOC report , September 2015, | spoofing", September 2015, | |||
| <https://www.internetsociety.org/resources/doc/2015/ | <https://www.internetsociety.org/resources/doc/2015/ | |||
| addressing-the-challenge-of-ip-spoofing/>. | addressing-the-challenge-of-ip-spoofing/>. | |||
| [Juniper] "Creating Unique VPN Routes Using VRF Tables", Juniper | [Juniper] Juniper Networks, "Creating Unique VPN Routes Using VRF | |||
| Networks TechLibrary , March 2019, | Tables", May 2019, | |||
| <https://www.juniper.net/documentation/en_US/junos/topics/ | <https://www.juniper.net/documentation/en_US/junos/topics/ | |||
| topic-map/l3-vpns-routes-vrf-tables.html#id-understanding- | topic-map/l3-vpns-routes-vrf-tables.html#id-understanding- | |||
| virtual-routing-and-forwarding-tables>. | virtual-routing-and-forwarding-tables>. | |||
| [Luckie] Luckie, M., Huffaker, B., Dhamdhere, A., Giotsas, V., and | [Luckie] Luckie, M., Huffaker, B., Dhamdhere, A., Giotsas, V., and | |||
| kc. claffy, "AS Relationships, Customer Cones, and | kc. claffy, "AS Relationships, customer cones, and | |||
| Validation", In Proceedings of the 2013 ACM Internet | validation", In Proceedings of the 2013 Internet | |||
| Measurement Conference (IMC), DOI 10.1145/2504730.2504735, | Measurement Conference, DOI 10.1145/2504730.2504735, | |||
| October 2013, | October 2013, | |||
| <http://www.caida.org/~amogh/papers/asrank-IMC13.pdf>. | <https://dl.acm.org/doi/10.1145/2504730.2504735>. | |||
| [RFC4036] Sawyer, W., "Management Information Base for Data Over | [RFC4036] Sawyer, W., "Management Information Base for Data Over | |||
| Cable Service Interface Specification (DOCSIS) Cable Modem | Cable Service Interface Specification (DOCSIS) Cable Modem | |||
| Termination Systems for Subscriber Management", RFC 4036, | Termination Systems for Subscriber Management", RFC 4036, | |||
| DOI 10.17487/RFC4036, April 2005, | DOI 10.17487/RFC4036, April 2005, | |||
| <https://www.rfc-editor.org/info/rfc4036>. | <https://www.rfc-editor.org/info/rfc4036>. | |||
| [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private | [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private | |||
| Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | |||
| 2006, <https://www.rfc-editor.org/info/rfc4364>. | 2006, <https://www.rfc-editor.org/info/rfc4364>. | |||
| skipping to change at page 19, line 14 ¶ | skipping to change at line 828 ¶ | |||
| [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>. | |||
| [SPAR-v4] "IANA IPv4 Special-Purpose Address Registry", IANA , | [SPAR-v4] IANA, "IANA IPv4 Special-Purpose Address Registry", | |||
| <https://www.iana.org/assignments/iana-ipv4-special- | <https://www.iana.org/assignments/iana-ipv4-special- | |||
| registry/iana-ipv4-special-registry.xhtml>. | registry/>. | |||
| [SPAR-v6] "IANA IPv6 Special-Purpose Address Registry", IANA , | [SPAR-v6] IANA, "IANA IPv6 Special-Purpose Address Registry", | |||
| <https://www.iana.org/assignments/iana-ipv6-special- | <https://www.iana.org/assignments/iana-ipv6-special- | |||
| registry/iana-ipv6-special-registry.xhtml>. | registry/>. | |||
| [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 and at the SIDR WG meeting | |||
| Meeting, March 2012, | at IETF 83, March 2012, | |||
| <http://www.ietf.org/proceedings/83/slides/ | <http://www.ietf.org/proceedings/83/slides/slides-83-sidr- | |||
| slides-83-sidr-7.pdf>. | 7.pdf>. | |||
| [sriram-urpf] | [Sriram-URPF] | |||
| Sriram et al., K., "Enhanced Feasible-Path Unicast Reverse | Sriram, K., Montgomery, D., and J. Haas, "Enhanced | |||
| Path Filtering", Presented at the OPSEC WG Meeting, | Feasible-Path Unicast Reverse Path Filtering", Presented | |||
| IETF-101 London , March 2018, | at the OPSEC WG meeting at IETF 101, March 2018, | |||
| <https://datatracker.ietf.org/meeting/101/materials/ | <https://datatracker.ietf.org/meeting/101/materials/ | |||
| slides-101-opsec-draft-sriram-opsec-urpf-improvements-00>. | slides-101-opsec-draft-sriram-opsec-urpf-improvements-00>. | |||
| Acknowledgements | ||||
| The authors would like to thank Sandy Murphy, Alvaro Retana, Job | ||||
| Snijders, Marco Marzetti, Marco d'Itri, Nick Hilliard, Gert Doering, | ||||
| Fred Baker, Igor Gashinsky, Igor Lubashev, Andrei Robachevsky, Barry | ||||
| Greene, Amir Herzberg, Ruediger Volk, Jared Mauch, Oliver Borchert, | ||||
| Mehmet Adalier, and Joel Jaeggli for comments and suggestions. The | ||||
| comments and suggestions received from the IESG reviewers are also | ||||
| much appreciated. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Kotikalapudi Sriram | Kotikalapudi Sriram | |||
| USA National Institute of Standards and Technology | USA National Institute of Standards and Technology | |||
| 100 Bureau Drive | 100 Bureau Drive | |||
| Gaithersburg MD 20899 | Gaithersburg, MD 20899 | |||
| USA | United States of America | |||
| Email: ksriram@nist.gov | Email: ksriram@nist.gov | |||
| Doug Montgomery | Doug Montgomery | |||
| USA National Institute of Standards and Technology | USA National Institute of Standards and Technology | |||
| 100 Bureau Drive | 100 Bureau Drive | |||
| Gaithersburg MD 20899 | Gaithersburg, MD 20899 | |||
| USA | United States of America | |||
| Email: dougm@nist.gov | Email: dougm@nist.gov | |||
| Jeffrey Haas | Jeffrey Haas | |||
| Juniper Networks, Inc. | Juniper Networks, Inc. | |||
| 1133 Innovation Way | 1133 Innovation Way | |||
| Sunnyvale CA 94089 | Sunnyvale, CA 94089 | |||
| USA | United States of America | |||
| Email: jhaas@juniper.net | Email: jhaas@juniper.net | |||
| End of changes. 117 change blocks. | ||||
| 387 lines changed or deleted | 393 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||