Trate Quick Start Guide

Rev. 0.2
5/25/2007

Content

1. Introduction
2. Some Concepts
3. Install
4. Usage
5. Trate GUI
6. Trouble Shooting

7. References

1. Introduction

Trate is a free software to selftly-enable firewall over a single UDP port, with support for SSL/TLS-based session authentication and key exchange, packet encryption, packet authentication, and packet compression.

Trate support Peer-to-Peer communication across Network Address Translator (NAT). No port forwarding, DMZ, and others are required, Trate allows other applications - almost all applications(BitTorrent,Web server etc) - to automatically create dynamic connections between two or more peers behind two or more separate NATs and firewalls.

That means machines behind a NATed firewall (e.g. An enterprise firewall, or a home router) can connect to each other through the help of Trate. More specificly, it can accelerate your BT downloads, allow you running your Web or FTP site behind a firewall with a private IP address, or help any application which needs to listen to a port.

2. Some Concepts

1) NAT

NAT stands for Network Address Translation. NAT is designed for IP address simplification and conservation. It enables private IP inter-networks that use non-registered IP addresses to connect to the Internet. NAT operates on a router, usually connecting two networks together, and translates the private (not globally unique) addresses in the internal network into legal addresses before packets are forwarded onto another network. As part of this functionality, NAT can be configured to advertise only one or a very few addresses for the entire network to the outside world. This provides additional security and effectively hides the entire internal network from the world behind that address. NAT has the dual functionality of security and address conservation, and is typically implemented in remote access environments.

NAT
An Example of Simple NAT

2) "UDP Hole Punching"

UDP hole punching enables two clients to set up a direct peer-to-peer UDP session with the help of a well-known rendezvous server, even if the clients are both behind NATs.

The following figure shows the NAT hole punching process with peers behind different NATs.

NAT hole punching is a complicated technology because of various NAT configuration on the Internet. You can refer to [1] for more information.

NAT
UDP Hole Punching, Peers Behind Multiple Levels of NAT

3) Trate Server

Hole punching assumes that the two clients (Client A and Client B) already have active UDP sessions with a rendezvous server (Server S). When a client registers with S, the server records two endpoints for that client: the (IP address, UDP port) pair that the client believes itself to be using to talk with S, and the (IP address, UDP port) pair that the server observes the client to be using to talk with it. We refer to the first pair as the client's private endpoint and the second as the client's public endpoint. The server might obtain the client's private endpoint from the client itself in a field in the body of the client's registration message, and obtain the client's public endpoint from the source IP address and source UDP port fields in the IP and UDP headers of that registration message. If the client is not behind a NAT, then its private and public endpoints should be identical.

We set up and maintains a public server called Trate Server, which acting as the well-known rendezvous server as decribed above.

 

4) How Trate Works

First, you need to install Trate on all the machines behind NAT firewall that you want to communicate with. Trate will start automatically each time you start your machines. When started, Trate will registrate the host machine on the Trate Server, Trate Server will record the machine's Public IP and port information.

For most of the time, Trate does nothing except listening to the network traffic on local machine. When it find an application fails to receive TCP response form its remote target, Trate will inquery the Trate Server for possible record about the remote target. If the Trate Server keep a record about the remote target, Trate will use the information to setup a connection to the remote target and help the local application to get through.

3. Install

We suggest you to run the setup program and accept the defaults (all categories).

4. Usage

The usage of Trate is highly automatic. All you need to do is install Trate. After insatallation, Trate will automatically start and handle connections quietly. Refer to How Trate Works for more information.

5. Trate GUI

Trate GUI provides a graphical user interface for user. When Trate GUI is started, there will be a icon on the notification area of the taskbar. According to different connection status, the icon will show different colors.

1) Red icon

The red icontrate red icon means Trate is not running. This icon should not appear. If, for some reason, you see this icon, just double click the icon to start Trate.

2) Yellow icon

The yellow icontrate yellow icon means no application is using trate or trate is tring to establish a connection. For example, the following picture shows that trate is tring to connect to "c2home".

Connecting to c2home

3) Green icon

The green icon means Trate has established at least one connection for your applications. For example, the following picture shows that trate has setup a connection to c2home and the user has successfully connected to a web server behind a NAT firewall through this connection.

trate connected

 

6. Trouble Shooting

1) Q: Does Trate support more than one outgoing connection from a client at the same time?
A: No. Currently Trate support only one connection at a time.

2) Q: As you have said, Trate need to communicate with Trate Server to get the remote client's Public IP and port. Wouldn't the communication between Trate and Trate Server cause a traffic burden to the network?
A: You don't necessary worry about this. Most of the time, Trate only listens to the local network traffic. It only communicate to Trate Server on two situation:
First: when it's stated, Trate will connect to Trate Server to do registration.
Second: when Trate detect that a local application failed to receive TCP resoponse from remote client, it will query Trate Server for possible record about the target remote client.
In both circumstances, Trate only sends/receives a few UDP packets to/from Trate Server, which will barely cause any traffic burden.

7. References

1
Bryan Ford, Bryan Ford and Dan Kegel.
Peer-to-Peer Communication Across Network Address Translators

2
P. Srisuresh and M. Holdrege.
IP network address translator (NAT) terminology and considerations, August 1999.
RFC 2663.

3
J. Rosenberg, J. Weinberger, C. Huitema, and R. Mahy.
STUN - simple traversal of user datagram protocol (UDP) through network address translators (NATs), March 2003.
RFC 3489.