One document matched: draft-iab-nat-traversal-considerations-00.txt
Network Working Group J. Rosenberg
Internet-Draft IAB
Expires: August 14, 2005 February 13, 2005
Considerations for Selection of Techniques for NAT Traversal
draft-iab-nat-traversal-considerations-00
Status of this Memo
This document is an Internet-Draft and is subject to all provisions
of section 3 of RFC 3667. By submitting this Internet-Draft, each
author represents that any applicable patent or other IPR claims of
which he or she is aware have been or will be disclosed, and any of
which he or she become aware will be disclosed, in accordance with
RFC 3668.
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 14, 2005.
Copyright Notice
Copyright (C) The Internet Society (2005).
Abstract
There are many protocols designed and deployed on the Internet today
which do not naturally traverse Network Address Translators (NAT).
In order to allow these protocols to work in the presence of NAT,
additional logic needs to be added to the network. This logic
modifies the behavior of the protocol in some way. There are choices
where this logic can be placed in the network. It can reside in the
NATs themselves, transparently altering the protocol; when this
occurs, it is called an Application Layer Gateway (ALG). It can
Rosenberg Expires August 14, 2005 [Page 1]
Internet-Draft NAT Traversal Considerations February 2005
reside in server components, hiding the changes from NATs and clients
alike, it can reside in the clients, or it can reside in a
combination thereof. The choice of the placement of this logic
typically has implications on many aspects of the protocol, including
security, deployability, manageability and availability. This
document provides a set of considerations that should be taken into
account by protocol and network designers when making this choice.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Network Model . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Techniques for Traversal . . . . . . . . . . . . . . . . . . . 5
3.1 Modify the NAT: Application Layer Gateways (ALG) . . . . . 5
3.2 Modify the Clients: Unilaternal Self-Address Fixing
(UNSAF) . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 Modify the Servers: Server Involvement in NAT
Navigation (SINN) . . . . . . . . . . . . . . . . . . . . 6
3.4 Modify the NAT and the Client: RSIP, NSIS . . . . . . . . 7
3.5 Modify the NAT and the Server: MIDCOM . . . . . . . . . . 7
3.6 Modify the Clients and Servers: Protocol Update . . . . . 7
3.7 Modify Everything: IPv6 . . . . . . . . . . . . . . . . . 7
4. Considerations for Selection . . . . . . . . . . . . . . . . . 8
4.1 Security . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.1.1 Undermining Application Security Measures . . . . . . 8
4.1.2 Vulnerabilities Inherent in Traversal Technique . . . 11
4.2 Deployability Considerations . . . . . . . . . . . . . . . 12
4.3 Manageability . . . . . . . . . . . . . . . . . . . . . . 13
4.4 Avaiability . . . . . . . . . . . . . . . . . . . . . . . 16
5. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 17
6. Security Considerations . . . . . . . . . . . . . . . . . . . 18
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18
8. IAB Members . . . . . . . . . . . . . . . . . . . . . . . . . 18
9. Informative References . . . . . . . . . . . . . . . . . . . . 19
Author's Address . . . . . . . . . . . . . . . . . . . . . . . 20
Intellectual Property and Copyright Statements . . . . . . . . 21
Rosenberg Expires August 14, 2005 [Page 2]
Internet-Draft NAT Traversal Considerations February 2005
1. Introduction
A Network Address Translator (NAT) is defined in RFC 2663 [1] as "a
method by which IP addresses are mapped from one address realm to
another, providing transparent routing to end hosts." NAT and its
many variations have seen widespread deployment over the past few
years. However, many protocols were designed and deployed before the
widespread deployment of NAT. Some of these protocols cease to work
correctly in the presence of NAT. These include the File Transfer
Protocol (FTP), the Domain Name System (DNS), the Session Initiation
Protocol (SIP) [2], and the Real Time Streaming Protocol (RTSP) [3]
amongst others.
In order for these protocols to operate on the network in the face of
NAT, numerous techniques have been developed, many of which are
protocol specific. These include deploying Application Layer
Gateways (ALGs), upgraded clients or servers, or one of the many
Unilateral Self Address Fixing (UNSAF) techniques [4], such as the
Simple Traversal of UDP through NAT (STUN) [5], Traversal Using Relay
NAT (TURN) [6], Teredo [7] and Interactive Connectivity Establishment
(ICE) [8]. As such, network designers and operators are faced with a
choice of techniques.
The right choice of technique depends on a number of architectural
considerations. The purpose of this specification is to provide
guidance to network designers, planners and operators on the
selection of general technique for NAT traversal. It is not a
detailed comparison of STUN, TURN, Teredo, and ICE, but focuses on
the architectural issues around the choice between modified
application components, ALGs, and UNSAF techniques. Many of the
considerations here also apply to the design of traversal techniques
for new protocols. However, that is not the focus of this document.
Firewalls play a related role to NAT. A NAT itself provides a form
of firewall - it prevents inbound communications unless there was a
matching outbound communications first. However, firewalls allow a
nearly infinite set of policies about whether a packet will traverse
or not. This means that a so-called firewall traversal technique may
or may not work depending on the firewall policies. Because of this,
the considerations described here are applicable to firewall
traversal techniques to the degree that the firewall policy would
permit the technique to work. That said, the focus of the document
is on NAT, not firewall.
Section 2 provides a simplified view of the network under
consideration, sufficient for the purposes of demonstrating the role
of each technique. Section 3 is a more detailed description of the
various techniques. Section 4 discusses the key architectural
Rosenberg Expires August 14, 2005 [Page 3]
Internet-Draft NAT Traversal Considerations February 2005
considerations when making the choice. These include security
(Section 4.1), deployability (Section 4.2), manageability (Section
4.3) and availability (Section 4.4).
2. Network Model
This section provides a basic model of the network deployments under
consideration. It serves several purposes in this specification:
o It serves to delineate the scope of the networks and application
protocols under consideration. If an application protocol cannot
be mapped into this model, or if a network deployment looks
different than this model, the considerations documented here may
not apply.
o It serves as a way to help classify the various traversal
techniques in terms of their impact on components in the network.
+---------+ +---------+
| | | |
| Server |<------------------->| Server |
| |<--\ >| |
+---------+ \ / +---------+
^ \ / ^
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
+-----------+ \/ +-----------+
| NAT | /\ | NAT |
+-----------+ / \ +-----------+
| / \ |
| / \ |
| / \ |
| / \ |
V / \ V
+---------+ / \ +---------+
| |<--/ >| |
| Client |<------------------->| Client |
| | | |
+---------+ +---------+
Figure 1
Rosenberg Expires August 14, 2005 [Page 4]
Internet-Draft NAT Traversal Considerations February 2005
The model under consideration is shown in Figure 1 In this model, the
application protocol consists of two classes of entities - clients
and servers. Clients refer here to the set of protocol functions
that typically reside on end user hosts. In the problem under
consideration here, these clients reside behind a NAT or NAT variant,
such as Network Address Port Translation (NAPT) (from this point
forward, we use the term NAT to include basic NAT and all of its
variations). Servers refer here to the set of protocol functions
that typically reside in the network. In the problem under
consideration here, the servers reside on the public side of the NAT.
They are deployed and operated by the service provider. The NAT sits
between the clients and servers. It may be owned and deployed by the
end user, by the service provider, or by a third entity (typically,
the owner of the access network used by the users).
Depending on the application protocol, clients may communicate with
each other directly or through servers. Servers may talk with each
other or just with clients, also depending on the application
protocol.
This model covers application protocols such as FTP, DNS, SIP, RTSP,
ITU H.323 and others.
3. Techniques for Traversal
There are many techniques that have been developed to facilitate the
traversal of NAT. These techniques can be classified based on the
way in which they affect the network in Figure 1. The various
techniques ultimately modify the behavior of one or more of the
components in the network, and possibly add additional components.
With three separate logical components (clients, servers and NAT),
there are 7 combinations of modifications that can be made. All
seven are actually possible and have been used in actual deployments.
3.1 Modify the NAT: Application Layer Gateways (ALG)
RFC 2663 [1] defines an Application Layer Gateway (ALG) as
"application specific translation agents that allow an application on
a host in one address realm to connect to its counterpart running on
a host in different realm transparently". ALGs are also used to
refer to application specific agents in firewalls that allow an
application on a host in one network to talk to its counterpart
running on a host in another network. One of the key characteristics
of the ALG is that it is transparent. It operates without explicit
awareness from, or consent by, other entities involved in the
application layer protocol.
ALGs appear to have many benefits. By placing them in a small number
Rosenberg Expires August 14, 2005 [Page 5]
Internet-Draft NAT Traversal Considerations February 2005
of locations in a network, they allow a large number of hosts to use
an application which, before deployment of the ALG, did not function.
No change is required in the protocols used by those applications.
No changes are needed in the clients, and no changes are needed in
the servers. The only element that is modified is the element that
introduced the problem in the first place - the NAT.
ALGs have seen substantial deployment by enterprises and network
operators, particularly for a small number of protocols that were
already defined at the time that NAT and firewall usage became
commonplace, most notably FTP and DNS.
3.2 Modify the Clients: Unilaternal Self-Address Fixing (UNSAF)
RFC 3424 defines UNSAF as a technique by which a client behind a NAT
attempts to discover its address as would be seen in the address
realm on the public side of the NAT, and then use that address within
application layer protocols instead of its actual IP address. This
is done by adding a new element, an "UNSAF server", on the public
side of the NAT, and then modifying the client so that it knows how
to use the UNSAF server. The actual application protocol server
remains unchanged, as does the NAT.
The Simple Traversal of UDP Through NAT [5] is one example of an
UNSAF protocol. Teredo [7] is similar to STUN, but focuses on v6
hosts behind a v4 network with NAT that wish to obtain v6
connectivity. Traversal Using Relay NAT (TURN) [6] is a cousin of
STUN. However, packets sent to the address provided by the TURN
server are actually relayed through the TURN server. TURN is a close
cousin of Virtual Private Networks (VPN), of which there are many
varieties. TURN differs from VPN in that it operates at a higher
layer in the protocol stack, but is similar in that it provides the
client with an address and port that route to a server which forwards
the packet to the client.
All of the techniques in this section share the property that they
require the client software to be modified so that it becomes UNSAF
aware. However, this modification tends to be isolated from the
application protocol processing itself, with few touch points.
Indeed, VPN solutions require no change in the application software
itself.
3.3 Modify the Servers: Server Involvement in NAT Navigation (SINN)
The SINN technique involves modifying the servers so that their
actual application processing changes, possibly in violation of the
specifications they are implementing. However, for some application
protocols, the SINN technique allows for NAT traversal without
Rosenberg Expires August 14, 2005 [Page 6]
Internet-Draft NAT Traversal Considerations February 2005
modifying the clients or the NATs - only the servers. Whether this
technique is possible or not depends entirely on the application
layer protocol, and usually involves assumptions on client behavior.
One example of the SINN technique are the so-called Session Border
Controllers (SBC) in SIP. An SBC operates by ignoring IP addresses
and ports provided by the client in its SIP messages, and modifying
the IP addresses and ports in SIP messages sent to the clients.
These modifications force the media traffic for the session through
the SBC, making the SIP network look more like a pure client/server
network. SBCs operate only when certain assumptions about client
behavior are met - that the client sends and receives its media
traffic from the same IP address and port, and that it sends and
receives its SIP signaling traffic from the same IP address and port
(SIP does not require send and receive address/ports to be the same,
though this is common practice).
3.4 Modify the NAT and the Client: RSIP, NSIS
Realm Specific IP (RSIP) [9] can be considered a variant on the UNSAF
technique. However, instead of the UNSAF server being outside of the
NAT, it is part of the NAT. It is also like VPN in that the client
modifications reside below the application processing layer.
Next Steps in Signaling (NSIS) allows clients to directly signal with
their NAT to obtain bindings for use in application protocols [10].
3.5 Modify the NAT and the Server: MIDCOM
Middlebox Communications (MIDCOM) [11] allows servers to communicate
with the NAT using an application-independent protocol (the MIDCOM
protocol [12]) to create and remove NAT bindings. The server can
then use the bindings it learned from the NAT to modify the
application packets in much the same way an ALG would. In fact,
MIDCOM represents a way to build a distributed ALG, by placing the
ALG functionality in a protocol server, separate from the NAT itself.
In that regards, MIDCOM is a mix between an ALG solution and a SINN
solution.
3.6 Modify the Clients and Servers: Protocol Update
In this technique, the protocol gets re-engineered so that it
traverses NAT without modification to the NAT itself. This has in
fact occurred for several protocols.
3.7 Modify Everything: IPv6
Finally, one can elect to modify the clients and servers, adding
Rosenberg Expires August 14, 2005 [Page 7]
Internet-Draft NAT Traversal Considerations February 2005
IPv6, and modify the NAT itself by literally removing it from the
network based on the presumption that it is no longer needed in IPv6.
4. Considerations for Selection
There are many considerations that must take into account when making
a choice. Many of these considerations are not architectural in
nature - cost, for example, is a major consideration, but not an
architectural one. There are many considerations around selection of
a technique within a specific class (i.e., choosing one UNSAF
technique over another). These kinds of considerations are important
but are difficult to discuss in general, and out of scope for this
document. Rather, this section discusses the general architectural
considerations around the selection of one of the classes of
techniques - ALG, UNSAF, RSIP, NSIS, SINN, MIDCOM, protocol updates
and IPv6.
4.1 Security
Security is one of the most important considerations when selecting a
technique, and it is one of the biggest differences amongst the
techniques. Security issues can be broken broadly into impacts that
the technique has on application security, and security concerns from
the technique itself.
4.1.1 Undermining Application Security Measures
The reason that the application doesn't work through the NAT is that
the application assumes uniquess and reachability properties for its
IP addresses. However, the intermediary has broken those properties.
Furthermore, reachability through the intermediary requires creation
of a translation or binding in that intermediary, which doesn't
normally exist based on the application-unaware processing logic in
the intermediary. This condition arises when an application protocol
includes IP addresses or hostnames within its payloads, and those
addresses or hostnames are used by the application protocol as a
destination for messages. For such messages to flow, appropriate
permissions and/or bindings need to be in place. Thus, all NAT
traversal techniques ultimately involve the installation of bindings
in the NAT, and the modification of the application protocol messages
to reflect the bindings created by the NAT.
In all techniques, the NAT is responsible for installing the needed
bindings. However, the various traversal techniques differ in which
entities are responsible for modifying the application protocol
messages. Performing this modification requires the entity doing so
to be able to inspect them and then change them. If the entity that
needs to do the inspection and modification is not trusted to do so
Rosenberg Expires August 14, 2005 [Page 8]
Internet-Draft NAT Traversal Considerations February 2005
by the application protocol, the application protocol itself might
provide security techniques which would prohibit the entity from
doing so. As such, the technique may require those application
security techniques to be disabled, thus undermining the security
provided overall.
Unfortunately, these portions of the message - the IP addresses or
domain names of hosts to which protocol messages need to be addressed
- are exactly the parts of the message that are most critical to
protect. Indeed, in the case of DNS, a DNS ALG modifies the primary
piece of information that protocols such as DNSSEC were designed to
protect [13]. Generally speaking, several classes of attacks can be
introduced if these addresses are not protected:
Denial-of-Service: If an attacker can modify these addresses as they
transit the network, the attacker can set them to point to a
target of a denial-of-service attack. Recipients of these
modified messages will direct subsequent messages to this target.
Depending on the protocol, this may result in substantial message
amplification properties.
Eavesdropping: Instead of modifying the addresses to point to a DoS
target, the attacker can modify them to point to themself. Once
it receives these messages, the attacker can forward them to the
proper recipient. This allows an attacker to eavesdrop the
protocol.
Service Disruption: An attacker can modify the addresses so that they
route to nowhere (for example, a non-existent IP host). This will
likely disrupt operation of the protocol, so that the client
receives no service.
Other types of attacks might be possible, depending on the specific
protocol.
Worse yet, many application protocols do not provide security that
protects only the IP address and port information in a protocol
message. Rather, larger parts of the message, if not the entire
message, is usually protected. As a result, if the security
techniques protecting the IP address and port information are
disabled, this will usually disable protection over other, perhaps
more critical, parts of the message.
Generally speaking then, the extent to which the traversal technique
undermines application layer protocol security measures depends on
two factors - whether or not the IP address and port information is
protected by security measures in the protocol, and the degree to
which the protocol entity is allowed by those measures to modify
Rosenberg Expires August 14, 2005 [Page 9]
Internet-Draft NAT Traversal Considerations February 2005
those parts of message. In this regard, the entity which should
ideally modify the protocol message is the "natural" one - the entity
which is responsible for the creation of those parts of the message
in the first place. When the "natural" entity modifies the message,
its not really a modification at all; the message is created properly
in the first place with the IP addresses and ports on the public side
of the NAT.
This makes ALGs particularly problematic. Since ALGs reside in the
network, as opposed to in the clients or servers, they are never the
"natural" entity to modify the protocol message. It is a
man-in-the-middle, inspecting and modifying protocol messages without
explicit awareness or consent by the actual entities in the protocol.
In order for them to function, any application protocol security
measures protecting those parts of the message will need to be
disabled. The nature of the security functions that need to be
disabled differ between firewall and NAT. NAT requires the protocol
to be inspected and modified. As such, any security mechanisms
providing confidentiality or integrity must be disabled. For
firewalls, only inspection is needed. This means that
confidentiality mechanisms must be disabled; integrity mechanisms can
still function.
Consider the example of SIP. SIP messages carry a MIME payload that
describes the multimedia session being established. This payload is
usually the Session Description Protocol (SDP) [14]. SDP includes IP
address and port information, indicating the transport address where
media packets (such as audio and video) should be sent. The SDP is
protected by SIP's TLS mechanism, SIP S/MIME, and even digest
authentication with the auth-int quality of protection. If these are
disabled, SIP's security becomes almost impotent, and many attacks
are opened up. For example, if an attacker can access and modify the
addresses in the SDP, serious security holes are introduced. The
attacker can modify the address to direct the media stream to
themself, allowing for eavesdropping of a phone call. Worse yet, an
attacker can modify the address across several SIP messages, changing
them to point to a target of a distributed denial-of-service attack.
This target will receive a steady stream of media packets from the
recipients of the modified SIP messages.
As such, ALGs are only appropriate in protocols that lack security in
the first place, or in environments where the security measures in a
protocol are not needed, such as a closed network environment.
For those protocols where the client is responsible for generating
the IP address and port information in the protocol messages (such as
for SIP, RTSP, and FTP), and where the application protocol security
measures are desired, techniques involving modification of the client
Rosenberg Expires August 14, 2005 [Page 10]
Internet-Draft NAT Traversal Considerations February 2005
(the UNSAF approaches in Section 3.2) are least intrusive, and do not
undermine the application protocol security.
4.1.2 Vulnerabilities Inherent in Traversal Technique
Section 4.1.1 considers security vulnerabilities introduced by NAT
traversal techniques because of the need to disable security features
in application protocols. Another class of attacks are possible
depending on the way in which the traversal technique works.
When the traversal technique is accomplished using a protocol, such
as STUN, TURN, ICE, RSIP and MIDCOM, the specifications for those
techniques include their security considerations. Many of these
security considerations are around secure creation of bindings in a
NAT. The bindings are what permit packets from the outside to be
routed to a particular host on the inside. They represent the
principal resource that needs to be protected by traversal security
techniques. Attacks become possible when bindings can be created by
unauthorized entities. Denial of service attacks can be launched if
the port space in a NAT is exhausted with unauthorized bindings, for
example. Numerous attacks are possible when a client believes it has
obtained a binding that maps to itself, when it fact it maps to
another client. These attacks are discussed in Section 12.1 of RFC
3489 [5].
Generally speaking, the attacks documented in Section 12.1 of RFC
3489 are applicable to any traversal technique where the IP address
and port provided to the client are obtained from the source address
and port seen by the server, and where the address cannot be security
verified before use. This applies to STUN and Teredo, though the
usage of these techniques with ICE obviates this risk, since they are
validated before use. UNSAF techniques using relays, such as VPN and
TURN, do not suffer from these attacks.
These attacks may also be possible in SINN techniques depending on
the application protocol. In the case of SIP, SINN is susceptible to
these same attacks. The server determines the IP address and port to
send media traffic to by using the source IP and port of media it
receives from the client. A user eavesdropping a call setup request
could inject packets with the IP address and port of the target,
creating the attacks. These can also be mitigated with ICE, or
through the usage of secure media.
ALGs are also susceptible to these attacks, but they are particularly
vulnerable since the attacks are easy to launch. An ALG looks for IP
addresses present in a protocol message, and allocates a binding or
permission that will allow packets from the outside to traverse the
intermediary, and be delivered to the address present in the protocol
Rosenberg Expires August 14, 2005 [Page 11]
Internet-Draft NAT Traversal Considerations February 2005
message. Creation of a binding to an arbitrary address is
accomplished by placing that address into the protocol payload.
Thus, source address spoofing is not required, as it is for other
traversal techniques.
This attack is particularly easy to launch. Consider a client who is
browsing the web behind a firewall. The user goes to a website of a
malicious provider. That website provides the user with a java
application implementing a basic SIP client. This application
generates a SIP INVITE message, and sends it back to the web server.
The INVITE message has, within its SDP, the IP address and port of a
mail server behind the firewall. The ALG within the firewall creates
a permission, allowing traffic from the outside, towards the mail
server. The provider can then inject a flood of packets towards the
mail server, disabling it.
In a similar attack, if an internal server has vulnerable ports - for
example, a port used for telnet-based CLI access - the INVITE request
can contain the IP address and port of that service on the server.
Rather than launching a DoS attack, the malicious provider can then
attempt to telnet into the server.
MIDCOM, like ALGs, create the binding based on the IP address and
port in the protocol messages, and thus have similar security
considerations.
For protocols like RSIP and NSIS, the bindings are created based on
protocol exchanges with the NAT. These exchanges generally require
return routability to the IP address and port of the client, and thus
provide a means to validate the private addresses used in the
binding. As such, they do not suffer from these attacks.
4.2 Deployability Considerations
The various techniques differ in their deployability. The primary
factors influencing deployability are the ability of the service
provider to modify parts of the system, and the number of such
elements that need to be modified.
As discussed in Section 2, the assumption here is that the service
provider owns the servers. They may or may not own the NATs in the
network, and they may or may not have any ability to affect the
clients. As such, traversal techniques that only involve modifying
the servers (the SINN technique) are the easiest to deploy. Those
which require modifying the clients (the UNSAF techniques) may be
feasible depending on whether the service provider can specify to its
customers a particular version of client software that needs to be
used.
Rosenberg Expires August 14, 2005 [Page 12]
Internet-Draft NAT Traversal Considerations February 2005
However, techniques which require modification of the NAT itself can
be very hard to deploy. In many situations, the service provider is
not the same as the operator of the access network used by its
customers. In such cases, the access provider may be using NAT, and
the service provider has no ability to influence the features or
configuration of the device. It may be possible that the device
supports the needed capabilities (ALG, NSIS, RSIP, or MIDCOM) anyway.
This is more likely for those traversal techniques where the logic in
the NAT is not application-specific - NSIS, RSIP, MIDCOM and similar
protocols. However, in those cases, those capabilities in the NAT
need to be activated, and permissions set up for the application
component (the client in the case of NSIS and RSIP, or the proxy
server in MIDCOM) to control the NAT. The existence of these
permissions may hinge on a business relationship between the service
provider and the owner of the NAT. When the customers for a service
provider come from many different access networks, and thus many
different access network providers, this may be difficult to
establish.
For ALGs, there is a chicken and egg problem. Typically, vendors of
such devices build functions based on customer demand. A large
driver for demand is customer deployment and usage of a new
application. However, the application cannot be deployed or used
without the ALG that the vendor needs to build. Thus, the
application doesn't get deployed and the demand for the ALG never
manifests. This is a non-issue for protocols with ALGs widely
supported in NAT, including FTP and DNS.
Control is not the only factor impacting deployability; the number of
such components is also a factor. For example, if a service provider
is offering services to large enterprises, the enterprise is the
owner of the NAT. However, the service provider may have a
relatively small number of enterprise customers, and thus it may not
be unreasonable to require them to use a particular version of a NAT
product from a particular vendor in order to get services. As such,
the barriers to deploying solutions that require changes in NAT is
not as high. The problem becomes amplified for a service provider
offering services to small enterprises, of which there are a lot
more.
4.3 Manageability
When a failure occurs in the usage of an application (for example, a
network timeout or other problem), it will often fall on the
shoulders of the application provider to determine the cause of the
problem. Diagnosing such difficulties in an operational network is a
complex problem. As a result, many application layer protocols
contain built in features that allow a provider to trace a problem
Rosenberg Expires August 14, 2005 [Page 13]
Internet-Draft NAT Traversal Considerations February 2005
after it has occurred. As an example, the Real Time Transport
Protocol (RTP) [15] provides a feedback mechanism that allows a
participant in a media session to track packet loss and latency as
received by the recipient. As another example, SIP provides message
header fields, such as Via and Warning, that allow for a trace of the
flow of a message through a series of elements, along with an
indication of detailed error conditions. Such diagnostic indications
become increasingly important as the application protocol involves a
large number of network elements or domains; the more entities in the
picture, the more places something can go wrong, and the more
important the need to find out where it went wrong.
Diagnosing network faults is only one aspect of manageability;
managing configuations, accounting, performance and security are also
key parts of operating a network.
The ability of the service provider to manage the service they are
providing is dependent on their ability to collect information from
the various elements on the way in which the service is operating,
and to correlate that information together for a coherent view on the
state of the network. The selection of a NAT traversal technique
impacts manageability of the network primarily due to the differing
levels of visibility that the service provider will have on the
operation of that aspect of the service. Visibility is based on the
level of transparency of operation.
Transparency is primarily an issue for ALGs. They represent yet
another entity that is application aware, and involved in the
processing of an application protocol. It is possible for failures
to occur at these elements, just like they can occur within actual
elements of the application protocol. When such failures do occur,
the transparent nature of the ALGs makes network diagnostics an
almost impossible task.
Firstly, it becomes hard to determine where the failure occurred.
Because the ALG is transparent, its operation is invisible to
protocol entities on either side of it. Indeed, there may even be
multiple ALGs inserted between legitimate protocol entities, and this
is often undetectable. No logging information or application
protocol features would be able to help pinpoint the location (in
terms of IP address or network provider) of the element that
generated the errored message.
With some application protocols, it might be possible for the ALG to
only be "partly transparent", which means that it might attempt to
make its presence known to other protocol entities. While this may
seem at first glance to be a good idea, it only further complicates
the problem. It results in entities that are now participants in the
Rosenberg Expires August 14, 2005 [Page 14]
Internet-Draft NAT Traversal Considerations February 2005
application protocol for some aspects of the protocol, but not
others. This will likely lead to interoperability problems and
additional failure cases, because the behavior of the ALG is not
actually compliant to the full requirements outlined by the protocol
specification.
ALGs also make it hard to determine when a failure occurs. For
example, when an application provider deploys a new protocol element,
such as a server or intermediary, it knows that such an element has
been deployed, and can therefore look for correlations in errors.
Thus, if an operator deploys a new server on Wednesday, and it sees a
steep rise in support calls that very same day, there is a good
chance that the new server is at fault.
However, such correlations become impossible with ALGs. The reason
is that, in the problematic cases, the ALGs will be deployed by
different organizations than the provider of the application. As an
example, if an application provider deploys a Voice over IP
application using SIP, its customer might be an enterprise. One of
the routers buried deep within the enterprise network might have a
SIP ALG which is turned on one day by an enterprise administrator.
This represents a change in the application deployment topology, but
not one that is known to the application provider. If that ALG
introduces errors into the network, the VoIP provider will begin to
see problems and receive customer support calls, but have no idea
why, all of a sudden, errors started to happen.
Of course, an application provider is dependent on the enterprise for
deployment of normal IP infrastructure in order for the VoIP
application to work. It is also possible that the enterprise
administrator might deploy a traditional router which introduces
packet loss, thereby affecting the VoIP application as well.
However, this represents a fundamentally different case. Why?
Because the router provides a service (routing of IP datagrams) which
is well defined and understood by the developers of applications and
application protocols. As a result, those protocols are designed to
take into account the known failure modes of those elements (packet
loss and jitter, for example), and either recover from them, or allow
them to be detected so that further diagnosis can occur. An ALG is
different. It doesnt provide a well known service, and its failure
modes are not well understood, nor can they be taken into account as
part of the design of the application protocol.
In essence, the problem is that an ALG runs counter to the very
notion of the end-to-end principle. The end-to-end principle pushes
intelligence to the edges of the network. However, an ALG places
application intelligence back into the network. This alters the very
service model provided by the underlying IP network, and as a result,
Rosenberg Expires August 14, 2005 [Page 15]
Internet-Draft NAT Traversal Considerations February 2005
makes it difficult for applications to be built around a service
model which is then ill defined.
4.4 Avaiability
The choice of a traversal technique impacts availability in many
ways. Firstly, techniques which add an additional component to the
network add an additional point of failure. This is primarily an
issue with the UNSAF techniques, all of which use an additional
server of some sort to support traversal through the NAT.
Secondly, network availability depends on the proper functioning of
the technique itself. For a technique to function, the essential
algorithm and protocol needs to be sound, and its implementation
needs to be correct. Both of these can be an issue. Why would the
algorithm and protocol be unsound? There are two reasons. The first
is that the technique may make assumptions that prove to be untrue in
the actual deployment. Second, the technique may not be sufficiently
well specified and may miss corner cases not conceived by the
designers. Let us consider both of these in turn.
Many of the traversal algorithms and techniques are built around
assumptions that they make. Frequently, these assumptions are around
behaviors in other components in the system. For example, the SINN
techniques make assumptions about the behavior of the clients. The
UNSAF techniques make assumptions about the operation of the NAT.
These assumptions can be wrong, resulting in brittle operation and
failure of the network to operate. STUN is particularly sensitive in
this regard; its NAT detection algorithm makes many assumptions about
the behavior of a NAT and then tries to validate that behavior by
black box testing. This has been addressed in a revision of STUN
[16], and when used in conjunction with other techniques, such as ICE
[8], the overall system makes fewer assumptions about operation of
components in the network, and it is therefore less brittle. service
providers should carefully consider the assumptions made by the
technique, and validate that these assumptions are correct to the
greatest extent possible.
Even if the assumptions are sound, the technique can still fail if
the technique has not been fully specified. This problem arises for
ALGs, since they are not "first class citizens" in the application
protocols they are interacting with. As such, their role in the
processing of the protocol is not well defined by specifications,
leading to the possibility that corner cases are missed, or that the
ALG has interactions with the protocol that cannot be easily
resolved. Similar issues arise in the SINN-based solutions, as these
are based on non-standard behaviors from elements in the network.
Operators should carefully consider that the various cases of
Rosenberg Expires August 14, 2005 [Page 16]
Internet-Draft NAT Traversal Considerations February 2005
interest are fully supported by the traversal technique.
As an example, SIP describes numerous ways in which SDP can be
exchanged during a SIP call in the process of negotiation of codec
types and parameters. In the vast majority of calls, a basic
exchange occurs - one SDP is sent in the SIP INVITE message (this SDP
is called the offer), and a SDP in response (called an answer) in the
SIP 200 OK message. However, the spec allows numerous other cases
that are far less common, and as a result, likely to be overlooked by
ALG implementors. Furthermore, extensions to SIP, such as UPDATE
[17] add additional cases. Even if both endpoints in a call support
this specification, they will not be able to implement it if the ALG
does not support it. Of course, the fact that it is not supported by
the ALG will be hard to ascertain because of the diagnostic issues
described above.
Finally, the implementation of the technique may not be sound. This
is an issue not specific to NAT traversal, of course, but there are
some considerations, specifically for ALGs. The manufacturers of
intermediary devices housing the ALG are typically router and switch
vendors. Building such devices requires expertise at the IP layer,
and not for any specific application protocol. However, an ALG is
fundamentally an application protocol component, and to develop one
properly, requires expertise in that application protocol. This
would not be a problem if there was only one application protocol.
However, the intermediary vendor needs to have expertise for all
application protocols for which ALG support is needed. That is a far
more daunting task. Indeed, this problem is identified in the Midcom
Architecture [11], which attempts to extract the ALG functionality
from the intermediary, place it into an application layer entity, and
use a protocol (the MIDCOM protocol) to control the intermediary.
5. Conclusions
There are many techniques that have been described for facilitating
the traversal of NAT for protocols for which that capability is not
inherent. Broadly speaking, those techniques can be characterized by
the set of elements which need to be modified from the "normal"
behavior in order for the application to work. As such, a service
provider wishing to deploy an application has a wide choice about
what technique to use. There are many considerations in that
selection. Foremost amongst them is security. NAT traversal
techniques frequently impair the inherent security features of the
application protocol, and techniques where manipulation is done on
the element that is trusted to manipulate that aspect of the message
are preferred. Deployability is another concern, and different
techniques will only be applicable depending on the scope of control
and number of elements that need to be affected. The traveral
Rosenberg Expires August 14, 2005 [Page 17]
Internet-Draft NAT Traversal Considerations February 2005
techniques also impact manageability, in that some techniques may be
difficult to diagnose and monitor in certain deployments. Finally,
availability is affected by the technique, due to assumptions on the
behavior of elements that may be false, incompletely specified
behavior, or incomplete implementation.
6. Security Considerations
Security is a critical consideration when selecting a technique for
NAT traversal. The various techniques differ substantially in the
impact on overall network security. Service providers should
consider carefully their security needs when selecting a technique.
7. IANA Considerations
There are no IANA considerations associated with this specification.
8. IAB Members
Internet Architecture Board members at the time of writing of this
document are:
Bernard Aboba
Harald Alvestrand
Rob Austein
Leslie Daigle
Patrik Faltstrom
Sally Floyd
Mark Handley
Bob Hinden
Geoff Huston
Jun-ichiro Itojun Hagino
Eric Rescorla
Pete Resnick
Rosenberg Expires August 14, 2005 [Page 18]
Internet-Draft NAT Traversal Considerations February 2005
Jonathan Rosenberg
9 Informative References
[1] Srisuresh, P. and M. Holdrege, "IP Network Address Translator
(NAT) Terminology and Considerations", RFC 2663, August 1999.
[2] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP:
Session Initiation Protocol", RFC 3261, June 2002.
[3] Schulzrinne, H., Rao, A. and R. Lanphier, "Real Time Streaming
Protocol (RTSP)", RFC 2326, April 1998.
[4] Daigle, L. and IAB, "IAB Considerations for UNilateral
Self-Address Fixing (UNSAF) Across Network Address
Translation", RFC 3424, November 2002.
[5] Rosenberg, J., Weinberger, J., Huitema, C. and R. Mahy, "STUN -
Simple Traversal of User Datagram Protocol (UDP) Through
Network Address Translators (NATs)", RFC 3489, March 2003.
[6] Rosenberg, J., "Traversal Using Relay NAT (TURN)",
draft-rosenberg-midcom-turn-06 (work in progress), October
2004.
[7] Huitema, C., "Teredo: Tunneling IPv6 over UDP through NATs",
draft-huitema-v6ops-teredo-04 (work in progress), January 2005.
[8] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A
Methodology for Network Address Translator (NAT) Traversal for
Multimedia Session Establishment Protocols",
draft-ietf-mmusic-ice-03 (work in progress), October 2004.
[9] Borella, M., Grabelsky, D., Lo, J. and K. Taniguchi, "Realm
Specific IP: Protocol Specification", RFC 3103, October 2001.
[10] Stiemerling, M., "A NAT/Firewall NSIS Signaling Layer Protocol
(NSLP)", draft-ietf-nsis-nslp-natfw-04 (work in progress),
October 2004.
[11] Srisuresh, P., Kuthan, J., Rosenberg, J., Molitor, A. and A.
Rayhan, "Middlebox communication architecture and framework",
RFC 3303, August 2002.
[12] Quittek, J., Stiemerling, M. and P. Srisuresh, "Definitions of
Managed Objects for Middlebox Communication",
Rosenberg Expires August 14, 2005 [Page 19]
Internet-Draft NAT Traversal Considerations February 2005
draft-ietf-midcom-mib-04 (work in progress), January 2005.
[13] Srisuresh, P., Tsirtsis, G., Akkiraju, P. and A. Heffernan,
"DNS extensions to Network Address Translators (DNS_ALG)", RFC
2694, September 1999.
[14] Handley, M. and V. Jacobson, "SDP: Session Description
Protocol", RFC 2327, April 1998.
[15] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson,
"RTP: A Transport Protocol for Real-Time Applications", RFC
3550, July 2003.
[16] Rosenberg, J., "Simple Traversal of UDP Through Network Address
Translators (NAT) (STUN)", draft-ietf-behave-rfc3489bis-00
(work in progress), October 2004.
[17] Rosenberg, J., "The Session Initiation Protocol (SIP) UPDATE
Method", RFC 3311, October 2002.
Author's Address
Jonathan Rosenberg, Editor
IAB
Rosenberg Expires August 14, 2005 [Page 20]
Internet-Draft NAT Traversal Considerations February 2005
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights 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; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat 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 implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Disclaimer of Validity
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM 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.
Copyright Statement
Copyright (C) The Internet Society (2005). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Rosenberg Expires August 14, 2005 [Page 21]
| PAFTECH AB 2003-2026 | 2026-04-23 03:42:32 |