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/ |