Operations Area F. Baker Internet-Draft Cisco Systems Updates: 2827 (if approved) P. Savola Expires: November 20, 2003 CSC/FUNET May 22, 2003 Ingress Filtering for Multihomed Networks draft-savola-bcp38-multihoming-update-00 Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http:// www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on November 20, 2003. Copyright Notice Copyright (C) The Internet Society (2003). All Rights Reserved. Abstract RFC 2827, BCP 38, is designed to limit the impact of distributed denial of service attacks, by denying traffic with spoofed addresses access to the network, and to help ensure that traffic is traceable to its correct source network. As a side effect of protecting the Internet against such attacks, the network implementing the solution also protects itself from this and other attacks, such as spoofed management access to networking equipment. However, it causes problems of its own. This document addresses the issues and proposes several possible solutions. This memo updates RFC 2827. Baker & Savola Expires November 20, 2003 [Page 1] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Implementing RFC 2827 . . . . . . . . . . . . . . . . . . . . 4 2.1 Ingress Access Lists . . . . . . . . . . . . . . . . . . . . . 4 2.2 Strict Reverse Path Forwarding . . . . . . . . . . . . . . . . 4 2.3 Loose Reverse Path Forwarding . . . . . . . . . . . . . . . . 5 2.4 Loose Reverse Path Forwarding Ignoring Default Routes . . . . 5 3. The Issue Is Recursive . . . . . . . . . . . . . . . . . . . . 7 4. Possible Work-arounds . . . . . . . . . . . . . . . . . . . . 8 4.1 Use Loose RPF When Appropriate . . . . . . . . . . . . . . . . 8 4.2 Ensure That Each ISP's Ingress Filter Is Complete . . . . . . 9 4.3 Send Traffic Using a Provider Prefix Only to That Provider . . 9 5. Security Considerations . . . . . . . . . . . . . . . . . . . 11 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13 Normative References . . . . . . . . . . . . . . . . . . . . . 14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 14 Intellectual Property and Copyright Statements . . . . . . . . 15 Baker & Savola Expires November 20, 2003 [Page 2] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 1. Introduction RFC 2827 [2], BCP 38, is designed to limit the impact of distributed denial of service attacks, by denying traffic with spoofed addresses access to the network, and to help ensure that traffic is traceable to its correct source network. As a side effect of protecting the Internet against such attacks, the network implementing the solution also protects itself from this and other attacks, such as spoofed management access to networking equipment. However, it causes problems of its own. This document addresses the issues and proposes several possible solutions. RFC 2827 recommends that ISPs police their customers' traffic by dropping traffic entering their networks that is coming from a source address not legitimately in use by the customer network. Its predecessor document was RFC 2267 [1]; that document recommended filtering out traffic whose sources address is a so-called "Martian Address" - an address that is reserved, including any address within 0.0.0.0/8, 10.0.0.0/8, 127.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 224.0.0.0/4, or 240.0.0.0/4. The reasoning behind the ingress filtering procedure is that Distributed Denial of Service Attacks frequently spoof other systems' source addresses, placing a random number in the field. In some attacks, this random number is deterministically within the target network, simultaneously attacking one or more machines and causing those machines to attack others with ICMP messages or other traffic. In other attacks, it is literally a random 32 bit number, resulting in the source of the attack being difficult to trace. If the traffic leaving an edge network and entering an ISP can be limited to traffic it is legitimately sending, attacks can be somewhat mitigated: traffic with random or improper source addresses can be suppressed before it does significant damage, and attacks can be readily traced back to at least their source networks. Baker & Savola Expires November 20, 2003 [Page 3] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 2. Implementing RFC 2827 There are at least four ways one can implement RFC 2827, with varying impacts. These include: o Ingress Access Lists o Strict Reverse Path Forwarding o Loose Reverse Path Forwarding o Loose Reverse Path Forwarding ignoring default routes Other mechanisms are also possible. 2.1 Ingress Access Lists An Ingress Access List is a filter that checks the source address of every message received from a network against a list of acceptable prefixes, dropping any packet that does not match the filter. While this is by no means the only way to implement an ingress filter, it is the one proposed by the BCP, and in some sense the most deterministic one. Ingress Access Lists have some problems, however, when the list of prefixes is incomplete. If a multihomed edge network is using provider-based addressing using two or more prefixes, one can expect each of its providers to accept traffic using their provided prefix, but they may not accept traffic from other prefixes. If they do not, then any traffic offered them sourced by a machine using the other prefix will find itself black-holed - that machine will only be able to access systems within its edge network. 2.2 Strict Reverse Path Forwarding Strict Reverse Path Forwarding (Strict RPF) is a simple way to implement an ingress filter. It is conceptually identical to using access lists for ingress filtering, with the exception that the access list is dynamic. This may also be used to avoid duplicate configuration (e.g. maintaining both static routes or BGP prefix-list filters and interface access-lists). The procedure is that the source address is looked up in the forwarding information base - the same route table used in destination address routing. If the previous hop, or the previous hop interface, is one of the routing neighbors that traffic responding to the datagram might be forwarded to, the message is deemed to have come from a reasonable direction. Strict Reverse Path Forwarding is a very reasonable approach in front Baker & Savola Expires November 20, 2003 [Page 4] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 of any kind of edge network; in particular, it is far superior to Ingress Access Lists when the network edge is advertising multiple prefixes using BGP. It makes for a simple, cheap, fast, and dynamic filter. But Strict Reverse Path Forwarding has some problems of its own. First, the test is only applicable in places where routing is symmetrical - where IP datagrams in one direction and responses from the other deterministically follow the same path. While this is common at edge network interfaces to their ISP, it is in no sense common between ISPs, which normally use asymmetrical "hot potato" routing. Also, if BGP is carrying prefixes and some legitimate prefixes are not being advertised or not being accepted by the ISP under its policy, the effect is the same as ingress filtering using an incomplete access list: some legitimate traffic is filtered for lack of a route in the filtering router's forwarding information base. 2.3 Loose Reverse Path Forwarding Loose Reverse Path Forwarding (Loose RPF) is algorithmically similar to Strict Reverse Path Forwarding, but differs in that it checks only for the existence of a route as opposed to seeking a route through the previous hop router. The benefit of Loose Reverse Path Forwarding is found in asymmetric routing situations: A packet is dropped if there is no route at all, such as to "Martian addresses" or addresses that are not currently routed, but is not dropped if a route exists. Loose Reverse Path Forwarding has problems, however. Since it sacrifices directionality, it loses the ability to limit an edge network's traffic to traffic legitimately sourced from that network. Also, many ISPs use default routes for various purposes such as collecting illegitimate traffic at so-called "Honey Pot" systems, and smaller ISPs may well purchase transit capabilities and use a default route from a larger provider. If there is a default route, there is a route for any address, nullifying the value of the check entirely. 2.4 Loose Reverse Path Forwarding Ignoring Default Routes The fourth implementation technique may be characterized as Loose Reverse Path Forwarding ignoring default routes. In this approach, the router looks up the source address in the route table, and preserves the packet if a route is found. However, in the lookup, default routes are excluded. Therefore, the technique is mostly usable in scenarios where default routes are used in addition to an extensive (or even full) list of more specific routes. Like Loose Reverse Path Forwarding, this is useful in places where Baker & Savola Expires November 20, 2003 [Page 5] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 asymmetric routing is found, such as on inter-ISP links. However, like Loose Reverse Path Forwarding, since it sacrifices directionality, it loses the ability to limit an edge network's traffic to traffic legitimately sourced from that network. Baker & Savola Expires November 20, 2003 [Page 6] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 3. The Issue Is Recursive What may not be apparent is that these issues are recursive. Consider the case of an edge network that multihomes using provider-based addressing from two tertiary ISPs. It may contract with those ISPs to include both prefixes in their ingress filters, in static routes supporting Strict RPF checking, or in their own routing. The ISPs will not normally pass them along to their transit providers, however. In such a case, if the transit provider is using an ingress filter or a strict RPF check, the same loss will happen there as would have happened at the tertiary ISP's ingress. Baker & Savola Expires November 20, 2003 [Page 7] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 4. Possible Work-arounds One can imagine a number of approaches to working around the limitations of ingress filters for multihomed networks. Options include: o Do not multihome. o Do not use ingress filters. o Accept that service will be incomplete. o On some interfaces, weaken ingress filtering by using an appropriate form of loose RPF check. o Ensure, by BGP or by contract, that each ISP's ingress filter is complete. o Ensure that edge networks only deliver traffic to their ISPs that will in fact pass the ingress filter. The first three of these are obviously mentioned for completeness; they are not and cannot be viable positions. However, the final three are indeed viable. The fourth and the fifth, due to the recursiveness of the issue, must be ensured in the upstream ISPs as well. In considering this, one must ask why an edge network multihomes. Its reason for finding itself in this predicament will guide its solution to the dilemma. Reasons for multihoming are many: the edge network may use two ISPs for backing up the Internet connectivity to ensure robustness, the edge network may be using whichever ISP is offering the fastest TCP service at the moment, the edge network may need several points of access to the Internet in places where no one ISP offers service, it may be changing ISPs (and therefore multihoming only temporarily), or one of a number of other possible reasons. With that in mind, we now look at the viable recommendations for dealing with the side-effects of ingress filters. 4.1 Use Loose RPF When Appropriate Where asymmetric routing is preferred or is unavoidable, ingress filtering cannot be deployed using a mechanism like strict RPF which requires the paths to be symmetrical. The only real options are to not perform ingress filtering, use a manual access-list (possibly in addition to some other mechanisms), or to use some form of Loose RPF Baker & Savola Expires November 20, 2003 [Page 8] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 check. Failing to provide any ingress filter at all essentially trusts the downstream network to behave itself, which is not the wisest course of action. However, especially in the case of very large networks of even hundreds or thousands of prefixes, maintaining manual access-lists may be too much to ask. Therefore, on many ISP-ISP links, a Loose RPF check is the simplest test. The use of Loose RPF does not seem like a good choice between the edge network and the ISP, since it loses the directionality of the test. This argues in favor of either using a complete filter in the upstream network or ensuring in the downstream network that packets the upstream network will reject will never reach it. 4.2 Ensure That Each ISP's Ingress Filter Is Complete For the edge network, if multihoming is being used for robustness or to change routing from time to time depending on measured ISP behavior, the simplest approach will be to ensure that its ISPs in fact carry its addresses in routing. This will often require the edge network to use provider-independent prefixes and exchange routes with its ISPs with BGP, to ensure that its prefix is carried upstream to the major transit ISPs. Of necessity, this implies that the edge network will be of a size and technical competence to qualify for a separate address assignment and an autonomous system number from its RIR. 4.3 Send Traffic Using a Provider Prefix Only to That Provider For smaller edge networks that use provider-based addressing and whose ISPs implement ingress filters (which they should do), the third option is to route traffic being sourced from a given provider's address space to that provider. This is not a complicated procedure, but requires careful planning and configuration. For robustness, the edge network may choose to connect to each of its ISPs through two or more different Points of Presence (POPs), so that if one POP or line experiences an outage, another link to the same ISP can be used. Also, each router that connects to an ISP needs to be configured with a line or a tunnel to every other ISP-facing router, and the router configured to first inspect the source address of a packet destined to an ISP and shunt it into the appropriate tunnel or ISP interface. If such a scenario is applied exhaustively, so that an exit router is chosen in the edge network for every prefix the network uses, traffic originating from any other prefix can be summarily discarded instead Baker & Savola Expires November 20, 2003 [Page 9] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 of sending it to an ISP. Baker & Savola Expires November 20, 2003 [Page 10] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 5. Security Considerations One may consider both multihoming and ingress filtering to be security procedures; Multihoming protects a network from failures of its ISP or its link to the ISP, and ingress filtering protects the Internet (and by extension any individual portion of it) from attacks that involve source address spoofing. If it is not a security procedure, multihoming is a business procedure used to enhance the robustness of a network. This paper has discussed the shortcomings of ingress filters as described in RFC 2827 [2] in the context of multihomed edge networks, and described approaches to enhancing their value. Ingress filtering is typically performed to ensure that traffic arriving in one network legitimately comes from a computer in the other network. This may be done to prevent or make Denial of Service attacks more traceable. The closer to the actual source ingress filtering is performed, the more effective it is. One could wish that the first hop router would ensure that traffic being sourced from its neighboring end system was correctly addressed; a router further away can only ensure that it is possible that there is such a system within the indicated prefix. When weighing the tradeoffs of ingress filtering, the security properties of a more relaxed approach should be carefully considered before applying it. Another consideration is the deployment status of ingress filtering. A goal of ingress filtering is to make attacks traceable. However, it is impossible to know whether the particular attacker is being ingress filtered or not. Therefore, one can only guess whether the source addresses have been spoofed or not: in any case, getting a possible lead -- e.g. to contact a potential source to ask whether they're observing an attack or not -- is still valuable, and more so when the ingress filtering gets more and more deployed. In consequence, every administrative domain should try to ensure a sufficient level of ingress filtering on its borders. Security properties and applicability of different ingress filtering types differ a lot. Ingress access lists require typically manual maintenance, but are the most bulletproof when done properly; typically, ingress access lists are best fit between the edge and the ISP when the configuration is not too dynamic if strict RPF is not an option, between ISPs if the number of used prefixes is low, or as an additional layer of protection. Baker & Savola Expires November 20, 2003 [Page 11] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 Strict RPF check is a very easy and sure way to implement ingress filtering. It is typically fit between the edge network and the ISP. In most cases, it is too strict to be used between ISPs. Loose RPF primarily filters out unrouted prefixes such as Martian addresses. It can be applied in the upstream interfaces to reduce the size of DoS attacks with unrouted source addresses. In the downstream interfaces it serves best as a contract verification: the other network is presumably certifying that it has provided appropriate ingress filtering rules, so the network doing the filtering need only verify the fact and react if any packets which would show a breach in the contract are detected. Combined with an ingress access list to prevent illegitimate access, contract verification could be an adequate approach when more extensive filtering is not possible. Baker & Savola Expires November 20, 2003 [Page 12] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 6. Acknowledgements The authors acknowledge neither presidents nor kings, preferring instead rough consensus and running code. Their alternate personalities reserve the right to disagree with any statement at any time. Baker & Savola Expires November 20, 2003 [Page 13] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 Normative References [1] Ferguson, P. and D. Senie, "Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing", RFC 2267, January 1998. [2] Ferguson, P. and D. Senie, "Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing", BCP 38, RFC 2827, May 2000. Authors' Addresses Fred Baker Cisco Systems Santa Barbara, CA 93117 US EMail: fred@cisco.com Pekka Savola CSC/FUNET Espoo Finland EMail: psavola@funet.fi Baker & Savola Expires November 20, 2003 [Page 14] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 Intellectual Property Statement The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director. Full Copyright Statement Copyright (C) The Internet Society (2003). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assignees. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION Baker & Savola Expires November 20, 2003 [Page 15] Internet-Draft Ingress Filtering for Multihomed Networks May 2003 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Baker & Savola Expires November 20, 2003 [Page 16]