DirectX and NAT vs. DXport

DirectPlay API

Microsoft's DirectX network API, DirectPlay uses a large number of ports, around one hundred, to make connections. DirectX also made no allowances for Network Address Translation (NAT), all machines need public IP addresses. Typically because of this only one machine behind a NAT can play in one game and then only with proper configuration of the NAT using port forwarding or the DMZ.

Enter the hero

DXport You can download DXport from Puffinsoft's page. forces each computer behind a NAT to use a subset of those hundred or so ports. This will allow port forwarding of each subset to the correct machine.

Why use DXport

Configuration when using an RT314 router

First, you must be able to connect to the Internet and play on one machine behind the NAT. Follow my advice on proper NAT configuration. This will make sure that your first system is configured properly and hardware is indeed compatiable. You will need a NAT that can port forward; using DMZ doesn't count.

Sample RT314 network
Sample LAN using an RT314 router with 4 clients

Configuring the RT314 for DXport

  1. Browse to the router, http://192.168.0.1. The default login Username is admin, and the default password is 1234.

    RT314 login screen

  2. From the Main Menu of the browser interface, click on ADVANCED.

    RT314 Main Menu

  3. Next click on PORTS to view the port forwarding screen.

    RT314 Advanced Menu

  4. On the ports menu Enter the following information and click apply. My menu doesn't look like that. If your menu has the only one column for port, then you have an older revision of the Netgear firmware. Not to worry you can Upgrade the firmware. You could simply tell DXport to use a very small port range and forward each individual port.
    Start Port End Port Server IP Address
    2302 2311 192.168.0.2
    2312 2321 192.168.0.3
    2322 2331 192.168.0.4
    2332 2341 192.168.0.5
    47624 47624 192.168.0.2*
    *This entry is only required if you wish to host a game. Only the computer at this address will be able to host.

    RT314 Ports Menu

  5. You can now logout of the RT314 router.

    RT314 Ports Menu

Configuring the client computers for DXport

  1. Download the latest version of DXport from Puffinsoft. Copy it to each client computer.
  2. Unzip it. DXport has a built in extractor. Simply double click on it in Windows Explorer. It will extract four files: DXport.exe, DXport.txt, DXport_Disclaimer.txt, Version.txt to C:\Program Files\DXport\.
  3. Double click on C:\Program Files\DXport\DXport.exe to run DXport.
  4. DXport Screen

  5. Click on File, then Port Range. On each client computer, select the corresponding range. For example pc1, at IP address 192.168.0.2, will use the range 2302-2311; pc2, 192.168.0.3, will use 2312-2322; pc3, 192.168.0.4, will use 2322-2332; pc4, 192.168.0.5, will use 2332-2342.
  6. DXport Port Range Screen

  7. Repeat this procedure for each client computer, selecting a different port range each time.

Enter the villain

There are reports that even with DXport and the ports properly forwarded you still cannot play in the same game from behind the router. These reports are when using peer-to-peer type of games such as Age of Empires or Age of Kings.

While I still haven't given DXport the testing it deserves. I successfully tested and played Star Wars: Galactic Battleground, which uses the Age of Empires engine, using two machines behind an RT314 to play a machine on the Internet.

I test Age of Kings locally, I used the public IP address of the RT314 and was able to connect and play the two machines. Netstat showed that the client computer did in fact appear to originate from outside the NAT and was not redirected. While this isn't proof that Age of Kings should work, it is very compelling. Anyone care to help me test?

I am hoping to find time to experiment more with DXport and the RT314 soon.

Not to be confused with

The other DXPort