⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2993.txt

📁 NAT协议完整源代码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
      router makes creating redundancy trivial.  Indeed, this is on of      the reasons why the Internet protocol suite developed using a      connectionless datagram service as its network layer.)   -  NATs inhibit implementation of security at the IP level.   -  NATs enable casual use of private addresses.  These uncoordinated      addresses are subject to collisions when companies using these      addresses merge or want to directly interconnect using VPNs.   -  NATs facilitate concatenating existing private name spaces with      the public DNS.Hain                         Informational                     [Page 10]RFC 2993           Architectural Implications of NAT       November 2000   -  Port versions (NAPT and RSIP) increase operational complexity when      publicly published services reside on the private side.   -  NATs complicated or may even invalidate the authentication      mechanism of SNMPv3.   -  Products may embed a NAT function without identifying it as such.   By design, NATs impose limitations on flexibility.  As such, extended   thought about the introduced complications is called for.  This is   especially true for products where the NAT function is a hidden   service, such as load balancing routers that re-write the IP address   to other public addresses.  Since the addresses may be all in   publicly administered space these are rarely recognized as NATs, but   they break the integrity of the end-to-end model just the same.   NATs place constraints on the deployment of applications that carry   IP addresses (or address derivatives) in the data stream, and they   operate on the assumption that each session is independent. However,   there are applications such as FTP and H.323 that use one or more   control sessions to set the characteristics of the follow-on sessions   in their control session payload.  Other examples include SNMP MIBs   for configuration, and COPS policy messages.  Applications or   protocols like these assume end-to-end integrity of addresses and   will fail when traversing a NAT.  (TCP was specifically designed to   take advantage of, and reuse, the IP address in combination with its   ports for use as a transport address.) To fix how NATs break such   applications, an Application Level Gateway needs to exist within or   alongside each NAT.  An additional gateway service is necessary for   each application that may imbed an address in the data stream.  The   NAT may also need to assemble fragmented datagrams to enable   translation of the application stream, and then adjust TCP sequence   numbers, prior to forwarding.   As noted earlier, NATs break the basic tenet of the Internet that the   endpoints are in control of the communication.  The original design   put state control in the endpoints so there would be no other   inherent points of failure.  Moving the state from the endpoints to   specific nodes in the network reduces flexibility, while it increases   the impact of a single point failure.  See further discussion in   Illustration 1 below.   In addition, NATs are not transparent to all applications, and   managing simultaneous updates to a large array of ALGs may exceed the   cost of acquiring additional globally routable addresses.  See   further discussion in Illustration 2 below.   While RSIP addresses the transparency and ALG issues, for the   specific case of an individual private host needing public access,   there is still a node with state required to maintain the connection.Hain                         Informational                     [Page 11]RFC 2993           Architectural Implications of NAT       November 2000   Dynamic NAT and RSIP will eventually violate higher layer assumptions   about address/port number reuse as defined in RFC-793 [10] RFC-1323   [11].  The TCP state, TCP_TIME_WAIT, is specifically designed to   prevent replay of packets between the 4-tuple of IP and port for a   given IP address pair.  Since the TCP state machine of a node is   unaware of any previous use of RSIP, its attempt to connect to the   same remote service that its neighbor just released (which is still   in TCP_TIME_WAIT) may fail, or with a larger sequence number may open   the prior connection directly from TCP_TIME_WAIT state, at the loss   of the protection afforded by the TCP_TIME_WAIT state (further   discussion in 2.6 of RFC-2663 [3]).   For address translators (which do not translate ports) to comply with   the TCP_TIME_WAIT requirements, they must refrain from assigning the   same address to a different host until a period of 2*MSL has elapsed   since the last use of the address, where MSL is the Maximum Segment   Lifetime defined in RFC-793 as two minutes.  For address-and-port   translators to comply with this requirement, they similarly must   refrain from assigning the same host/port pair until 2*MSL has   elapsed since the end of its first use.  While these requirements are   simple to state, they can place a great deal of pressure on the NAT,   because they temporarily reduce the pool of available addresses and   ports.  Consequently, it will be tempting or NAT implementers to   ignore or shorten the TCP_TIME_WAIT requirements, at the cost of some   of TCP's strong reliability.  Note that in the case where the strong   reliability is in fact compromised by the appearance of an old   packet, the failure can manifest itself as the receiver accepting   incorrect data.  See further discussion in Illustration 3 below.   It is sometimes argued that NATs simply function to facilitate   "routing realms", where each domain is responsible for finding   addresses within its boundaries.  Such a viewpoint clouds the   limitations created by NAT with the better-understood need for   routing management.  Compartmentalization of routing information is   correctly a function of routing protocols and their scope of   application.  NAT is simply a means to distribute address allocation   authority and provide a mechanism to map addresses from one address   realm into those of another realm.   In particular, it is sometimes erroneously believed that NATs serve   to provide routing isolation.  In fact, if someone were to define an   OSPF ALG it would actually be possible to route across a NAT   boundary.  Rather than NAT providing the boundary, it is the   experienced operators who know how to limit network topology that   serve to avoid leaking addresses across a NAT.  This is an   operational necessity given the potential for leaked addresses to   introduce inconsistencies into the public infrastructure.Hain                         Informational                     [Page 12]RFC 2993           Architectural Implications of NAT       November 2000   One of the greatest concerns from the explosion of NATs is the impact   on the fledgling efforts at deploying network layer end-to-end IP   security.  One fundamental issue for IPSec is that with both AH and   ESP, the authentication check covers the TCP/UDP checksum (which in   turn covers the IP address).  When a NAT changes the IP address, the   checksum calculation will fail, and therefore authentication is   guaranteed to fail.  Attempting to use the NAT as a security boundary   fails when requirement is end-to-end network layer encryption, since   only the endpoints have access to the keys.  See further discussion   in Illustration 4 below.   Finally, while the port multiplexing variants of NAT (popular because   they allow Internet access through a single address) work modestly   well for connecting private hosts to public services, they create   management problems for applications connecting from public toward   private.  The concept of a well-known port is undermined because only   one private side system can be mapped through the single public-side   port number.  This will affect home networks, when applications like   multi-player Internet games can only be played on one system at a   time.  It will also affect small businesses when only one system at a   time can be operated on the standard port to provide web services.   These may sound like only medium-grade restrictions for the present,   but as a basic property of the Internet, not to change years into the   future, it is highly undesirable.  The issue is that the public   toward private usage requires administrative mapping for each target   prior to connection.  If the ISP chooses to provide a standardized   version of these to lower configuration options, they may find the   support costs of managing the ALGs will exceed the cost of additional   address space.  See further discussion in Illustration 6 below.7.  Illustrations 7.1 Single point of failure   A characteristic of stateful devices like NATs is the creation of a   single point of failure.  Attempts to avoid this by establishing   redundant NATs, creates a new set of problems related to timely   communication of the state, and routing related failures.  This   encompasses several issues such as update frequency, performance   impact of frequent updates, reliability of the state update   transaction, a-priori knowledge of all nodes needing this state   information, and notification to end nodes of alternatives.  (This   notification could be accomplished with a routing protocol, which   might require modifications to the hosts so they will listen.)Hain                         Informational                     [Page 13]RFC 2993           Architectural Implications of NAT       November 2000                        --------       --------                       | Host A |-----| Host B |                        --------   |   --------                           -----------------                             |            |                          ------        ------                         | AD 1 |      | AD 2 |                          ------        ------                              \         /                                --------                               /Internet\                               ----------                                --------                             Illustration 1   In the traditional case where Access Device (AD) 1 & 2 are routers,   the single point of failure is the end Host, and the only effort   needed to maintain the connections through a router or link failure   is a simple routing update from the surviving router.  In the case   where the ADs are a NAT variant there will be connection state   maintained in the active path that would need to be shared with   alternative NATs.  When the Hosts have open connections through   either NAT, and it fails, the application connections will drop   unless the state had been previously moved to the surviving NAT. The   hosts will still need to acquire a routing redirect.  In the case of   RSIP, the public side address pool would also need to be shared   between the ADs to allow movement.  This sharing creates another   real-time operational complexity to prevent conflicting assignments   at connection setup.  NAT as a technology creates a point fate   sharing outside the endpoints, in direct contradiction to the   original Internet design goals. 7.2.  ALG complexity   In the following example of a proposed corporate network, each   NAT/ALG was to be one or more devices at each physical location, and   there were to be multiple physical locations per diagramed   connection.  The logistics of simply updating software on this scale   is cumbersome, even when all the devices are the same manufacturer   and model.  While this would also be true with routers, it would be   unnecessary for all devices to run a consistent version for an   application to work across an arbitrary path.Hain                         Informational                     [Page 14]RFC 2993           Architectural Implications of NAT       November 2000                ----------------------------------------               |           Corporate Network            |               | Asia |------| Americas |------| Europe |                ------        ----------        --------                   |                |                |               --------         --------         --------              |NAT/ALGs|       |NAT/ALGs|       |NAT/ALGs|               --------         --------         --------                   |                |                |              --------------------------------------------               |                Internet                |              --------------------------------------------                   |                |                |               --------         --------         --------              |NAT/ALGs|       |NAT/ALGs|       |NAT/ALGs|               --------         --------         --------                   |                |                |       ------------------     --------------     ----------------       Home Telecommuters     Branch Offices     Partner Networks       ------------------     --------------     ----------------                                --------                             Illustration 2 7.3. TCP state violations   The full range of upper layer architectural assumptions that are   broken by NAT technologies may not be well understood without a very   large-scale deployment, because it sometimes requires the diversity   that comes with large-scale use to uncover unusual failure modes. The   following example illustrates an instance of the problem discussed

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -