TOC 
MIDCOM WGR. Mahy
Internet-DraftCisco Systems, Inc.
Expires: August 2, 2003Feb 2003

Pre-Midcom Requirements for Traversal of NATs for traffic not supported by STUN
draft-mahy-midcom-premidcom-relay-reqs-00.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 2, 2003.

Copyright Notice

Copyright (C) The Internet Society (2003). All Rights Reserved.

Abstract

STUN (Simple Traversal of UDP for NATS) specifies a mechanism which enables nodes in a private network to determine if they are behind a NAT, to discover their remapped address and port, and for many types of NATs to send UDP traffic through them. In addition TCP connections initiated from the private side of NATs already works. This document specifies requirements for a mechanism that enables traversal of expected TCP traffic through all NATs, and traversal of UDP traffic through symmetric NATs.



 TOC 

Table of Contents




 TOC 

1. Overview

STUN[1] (Simple Traversal of UDP for NATS) specifies a mechanism which enables nodes in a private network to determine if they are behind a NAT. It also allows STUN Clients to discover their address as viewed from a STUN Server. For full cone, address-restricted cone, and port-restricted cone NATs, this knowledge allows the STUN client to receive UDP traffic. (Nodes behind a NAT can initiate TCP connections and send UDP traffic without the need for any additional protocol). In order to allow nodes on the private side of a NAT to receive incoming TCP connections and to receive UDP traffic through a symmetric NAT, some type of simple relay-based solution is necessary. This document describes the requirements such a solution need to provide a useful service which does not prolong the life of IPv4.



 TOC 

2. Requirements

  1. Passes bidirectional UDP through one or two NATs, at least one of which may be symmetric or port-restricted
  2. Allows "expected" TCP connection from a single source to be received by a user behind a NAT.
  3. The implementation of the previous requirement (relay of TCP traffic) must not interfere with TLS
  4. Prevents the node on the private network from running a server (can't receive multiple connections on the same well known port).
  5. The implementation allows nodes to reference the relay session/stream/connection by an identifier which is unique to the stream and which is valid in the public Internet (i.e. globally unique)
  6. Works where the endpoints and relay server are all IPv4 endpoints
  7. Works where the private endpoint is IPv4 and another is IPv6, when the relay supports both IPv4 and IPv6.
  8. The originator of the relay session can terminate the relay session
  9. The originator of the relay session can determine the relay timeout interval
  10. The relay should be able to open a port number such that the actual address and port of one end of the relay is not fixed until the first packet arrives from that end.
  11. The relay can "passthrough" UDP traffic (in the case of a symmetric NAT) to a known IP address and UDP port number
  12. The relay does not forward TCP connections originating from inside a NAT. Presumably, a node on the inside of the NAT can already originate outgoing connections.
  13. Supports strong authentication and message integrity of control traffic
  14. Does not attempt to protect data traffic
  15. Does not require data traffic to be modified or escaped in any way
  16. Existing end-to-end integrity and encryption of data traffic is encouraged and must still work through the solution
  17. Needs the ability to reserve a port on the relay for future use
  18. Needs the ability to promote a reserved port to a full mapping. When two nodes are behind different NATs, this allows one to obtain a port before use. It also enables nodes an opportunity to attempt allocation of contiguous ports for applications which require this behavior (for example RTP and RTCP).
  19. Need ability to release a reserved port.
  20. Supports a keepalive, so that the client does not have to send traffic to keep the mapping active
  21. Does not increase packet sizes for data traffic.
  22. Allows for the client to indicate how much bandwidth they expect to use, so that the server can do policing if needed.
  23. Allows for the server to redirect the client to a different server.



 TOC 

3. Security Considerations

Security-related requirements are discussed in the body of the document.



 TOC 

4. Acknowledgments

Thanks to Jonathan Rosenberg for his comments.



 TOC 

Normative References

[1] Rosenberg, J., Huitema, C., Mahy, R. and J. Weinberger, "STUN - Simple Traversal of UDP Through Network Address Translators", draft-ietf-midcom-stun-05 (work in progress), December 2002.
[2] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997 (TXT, HTML, XML).


 TOC 

Author's Address

  Rohan Mahy
  Cisco Systems, Inc.
  101 Cooper Street
  Santa Cruz, CA 95060
  USA
EMail:  rohan@cisco.com


 TOC 

Intellectual Property Statement

Full Copyright Statement

Acknowledgement