Network Working Group L. Daigle Internet-Draft Editor Expires: August 5, 2002 Internet Architecture Board IAB February 4, 2002 IAB Considerations for UNilateral Self-Address Fixing (UNSAF) draft-iab-unsaf-considerations-01.txt 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 August 5, 2002. Copyright Notice Copyright (C) The Internet Society (2002). All Rights Reserved. Abstract With current NA[P]T middleboxes, individual networks using different address realms are bridged. However, as a side effect of address translation, communicating endpoints on either side of the middlebox do not know how to refer to themselves using addresses that are applicable in the other realm -- the address translation is locked within the middlebox. Various proposals have been made for "UNilateral Self-Address Fixing (UNSAF)" processes. These are processes whereby some originating process attempts to determine or fix the address (and port) by which it is known to another process -- e.g., to be able to use address data in the protocol exchange, or to Daigle & Internet Architecture Board Expires August 5, 2002 [Page 1] Internet-Draft draft-iab-unsaf-considerations-01 February 2002 advertise a public address from which it will receive connections. This document outlines the reasons for which these proposals can be considered at best as short term fixes to specific problems, and the specific issues to be carefully evaluated before creating an UNSAF proposal. 1. Introduction With current NA[P]T middleboxes, individual networks using different address realms are bridged. However, as a side effect of address translation, communicating endpoints on either side of the middlebox do not know how to refer to themselves using addresses that are applicable in the other realm -- the address translation is locked within the middlebox. For some purposes, endpoints need to know the addresses (and/or ports) by which they are known to their peers. There are two cases. When the client initiates communication, starting the communication has the side effect of creating an address binding in the NA[P]T device and allocating an address in the realm that is external to the NA[P]T box. In the second case, a server will be accepting connections from outside, but because it does not initiate communication, no NAT binding is created. In such cases, a mechanism is needed to fix such a binding, before communication can take place. "UNilateral Self-Address Fixing (UNSAF)" is a process whereby some originating process attempts to determine or fix the address (and port) by which it is known -- e.g., to be able to use address data in the protocol exchange, or to advertise a public address from which it will receive connections. There are only heuristics and workarounds to attempt to achieve this effect; there is no 100% solution. Since NA[P]Ts may also dynamically reclaim or readjust translations, "keep-alive" and periodic re-polling may be required. Use of these workarounds MUST be considered transitional in IETF protocols; a better architectural solution is being sought. The explicit intention is to deprecate any such workarounds when sound technical approaches are available. 2. Architectural issues affecting UNSAF Systems Any users of these workarounds should be aware that specific technical issues that impede the creation of a general solution include: o there *is* no unique "outside" to a NAT -- it may be impossible to tell where the target UNSAF partner is with respect to the source; how does a client find an appropriate server to reflect its Daigle & Internet Architecture Board Expires August 5, 2002 [Page 2] Internet-Draft draft-iab-unsaf-considerations-01 February 2002 address? (See Appendix C). o specifically because it is impossible to tell where "outside" or "public" is, an address can only be determined relative to one specific point in the network. If the UNSAF partner that reflected a client's address is in a different NAT-masked subnet from some other service X that the client wishes to use, there is _no_ guarantee that the client's "perceived" address from the UNSAF partner would be the same as the address viewed from the perspective of X. (See Appendix C). o absent "middlebox communication (midcom)" there is no usable way to let incoming communications make their way through a firewall under proper supervision: that is, respecting the firewall policies and as opposed to circumventing security mechanisms. The danger is that internal machines are unwittingly exposed to all the malicious communications from the external side that the firewall is intended to block. This is particularly unacceptable if the UNSAF process is running on one machine which is acting on behalf of several. o proposed workarounds include the use of "ping"-like packets as traffic to the target service in order to determine the source address from the perspective of the target. However, there is no guarantee that the address translation will be constant throughout the course of the communication between endpoints; aging of NAT UDP bindings varies widely. o if periodic retries are used to refresh/reevaluate the address translation state, both endpoints are required to maintain information about the presumed state of the communication in order to manage the address illusion. o since the recipient of the "ping"-like packet (the target endpoint of the communication, or some generic reflecting service that is participating in the address determination) is not integrated with the middlebox, it can only operate on the assumption that past behavior is a predictor of future behavior. It has no special knowledge of the address translation heuristic or affecting factors. o the communication exchange is made more "brittle" by the introduction of other servers (UNSAF partners) that need to be reachable in order for the communication to succeed -- more boxes that are "fate sharing" in the communication. Work-arounds may mitigate some of these problems through tight scoping of applicability and specific fixes. For example, Daigle & Internet Architecture Board Expires August 5, 2002 [Page 3] Internet-Draft draft-iab-unsaf-considerations-01 February 2002 o rather than finding the address from "the" outside of the NAT, the applicability of the approach may be limited to finding the "self- address" from a specific service, for use exclusively with that service; o limiting the scope to outbound requests for service (or service initiation) in order to prevent unacceptable security exposures. 3. Practical Issues From observations of deployed networks, there is a wide variety of practice in how different NA[P]T boxes implement the handling of different traffic and addressing cases. Some of the specific types of observed behaviors have included: o NA[P]Ts may drop fragments in either direction: without complete TCP/UDP headers, the NA[P]T may not make the address translation mapping, simply dropping the packet. o Shipping NA[P]Ts often contain Application Layer Gateways (ALGs), which attempt to be context-sensitive, performing different actions depending on the application of the data stream. The behavior of the ALGs can be hard to anticipate, and these behaviors have not always been documented. o NA[P]Ts differ markedly in their handling of UDP packets. Quite a few only really work reliably with TCP. If they do handle UDP, the timers aging out flows can vary widely. o Variation in address and port assignments can be quite frequent -- on NAPTs, port numbers always change, and change unpredictably; there may be multiple NATs in parallel for load-sharing, making IP address variations quite likely as well. 4. Architectural Considerations By distinguishing these approaches as short term fixes, the IAB believes the following considerations must be explicitly addressed in any proposal: 1. Precise definition of a specific, limited-scope problem that is to be solved with the UNSAF proposal. A short term fix should not be generalized to solve other problems; this is why "short term fixes usually aren't". Daigle & Internet Architecture Board Expires August 5, 2002 [Page 4] Internet-Draft draft-iab-unsaf-considerations-01 February 2002 2. Description of an exit strategy/transition plan. The better short term fixes are the ones that will naturally see less and less use as the appropriate technology is deployed. 3. Discussion of specific issues that may render systems more "brittle". For example, approaches that involve using data at multiple network layers create more dependencies, increase debugging challenges, and make it harder to transition. 4. Identify requirements for longer term, sound technical solutions -- contribute to the process of finding the right longer term solution. 5. Discussion of the impact of the noted practical issues with existing, deployed NA[P]Ts and experience reports. 5. Security Considerations As a general class of workarounds, as noted above UNSAF proposals may introduce security holes because, absent "middlebox communication (midcom)", there is no usable way to let incoming communications make their way through a firewall under proper supervision: respecting the firewall policies as opposed to circumventing security mechanisms. Authors' Addresses Leslie Daigle Editor Internet Architecture Board IAB EMail: iab@iab.org Appendix A. IAB Members at the time of this writing Harald Alvestrand Ran Atkinson Rob Austein Fred Baker Daigle & Internet Architecture Board Expires August 5, 2002 [Page 5] Internet-Draft draft-iab-unsaf-considerations-01 February 2002 Brian Carpenter Steve Bellovin Jon Crowcroft Leslie Daigle Steve Deering Sally Floyd Geoff Huston John Klensin Henning Schulzrinne Appendix B. Acknowledgements This revision of the document has benefitted greatly from detailed comments and suggestions from Thomas Narten and Bernard Aboba. Appendix C. Example NA[P]T Configuration Scenario Here is one sample scenario wherein it is difficult to describe a single "outside" to a given address realm (bridged by NAPTs). This sort of configuration might arise in an enterprise environment, where different divisions have their own subnets (each using the same private address space); the divisions are connected so that they can pass traffic on each others' networks, but to access the global Internet, each uses a different NAPT/firewall. Daigle & Internet Architecture Board Expires August 5, 2002 [Page 6] Internet-Draft draft-iab-unsaf-considerations-01 February 2002 +---------+ | Box C | (192.168.4.5) +---+-----+ | ---------------------------------+------- | | 192.168.3.0/24 +----+----+ | NAT 2 | +----+----+ | 10.1.0.0/32 | -----+-------------------------+------------+---- | | | +----+----+ | | Box B | (10.1.1.100) | +---------+ | +----+----+ | NAPT 1 | (10.1.2.27) +----+----+ | 10.1.0.0/32 | ----+-----+-- | | +----+----+ | Box A | (10.1.1.100) +---------+ From the perspective of Box B, Box A's address is (some port on) 10.1.2.27. From the perspective of Box C, however, Box A's address is some address in the space 192.168.3.0/24. Daigle & Internet Architecture Board Expires August 5, 2002 [Page 7] Internet-Draft draft-iab-unsaf-considerations-01 February 2002 Full Copyright Statement Copyright (C) The Internet Society (2002). 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 assigns. 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 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. Daigle & Internet Architecture Board Expires August 5, 2002 [Page 8]