Come Transverse my NAT
When I first heard about the feature, it made me very nervous (and still does). Could I trust something that automatically opened holes in my router's firewall? Would it work? How reliable would it be? Would it tell me what it was doing? Could I control it?
I found that I was pretty much on my own in answering these questions and had to rely on net searching with Google and poking around in the XP Help documentation to piece together a picture of what NAT Traversal is supposed to do. Let me summarize the key points of what you should know:
- The present Version 1 NAT Traversal API (Application Programming Interface) provides the following functions:
- Determine if a NAT is present
- Get the external IP address of the NAT, i.e. the router
- Get the static port mapping information for a specific external port, if it is mapped.
- Add a static port mapping, unless the external port is previously assigned.
- Enable or disable a specific port mapping without deleting it
- Edit the user-friendly description of a static port mapping
- Delete a static port mapping.
Obtain a list of static port mappings for the local network.
Applications do the "heavy lifting" in managing port mappings, using the API functions listed in Point 1. The router is more a "slave" than a "master", so UPnP doesn't add much value to a router without applications that know how to use UPnP features.
- UPnP enabled Internet Gateway Devices or IGD's (Microsoft's UPnP term for routers and similar devices) currently support port mappings of infinite duration only. This means the mappings can't be set with a router-controlled time-out. It also means that IGD's are not smart enough to detect "zombie" mappings, i.e. ports left opened by abnormally terminated applications. If the application that used UPnP NAT Traversal to open ports in an IGD crashes, the ports will stay open until the next time that application is used.
It was pretty clear that I needed to find some NAT Traversal savvy applications to test with. But when I asked D-Link, Linksys, and Microsoft for a list of applications that supported NAT Traversal, I didn't really get one and couldn't find one anywhere on the web. I did learn that XP's Windows Messenger, Remote Desktop Connection, and Remote Assistance features supported it, and that various Microsoft games were in the process of adding support for it, too. But I couldn't get reliable information on UPnP support in applications from any vendor other than Microsoft. So since XP insists on launching Messenger every time it starts up, I used it to check out NAT Traversal. Let's get to it!