I have a dedicated test server with a single public facing IP that has VMWare Server on it and 4 test environments hooked up through NAT.

This works fine to RDP into the Windows Server 2003 host and preview the sites and client/server from there, but some of these sites/servers need to be accessed externally by clients.

Is there anyway to translate a Name (i.e. clientXYZ.ourtestserver.com) that say GoDaddy's DNS resolves to the host server (64.89.12.44), to the private IP (192.168.248.16), and forward all traffic to the guest?

All help is much appreciated.


No, this is not possible using a single address without accepting drawbacks or using software that is specialised for this approach. What you can do is:

  • Forward a port for each target machine. Let's say you have three NATed machines that host a service on TCP port 12345. You could create portforwardings on your public machine: Port 12345 -> Host A, Port 12345 Port 12346 -> Host B, Port 12345 Port 12347 -> Host C, Port 12345

  • Use a protocol level reverse proxy. This of course only works for protocols that inherently support naming like needed. Assuming you want to serve HTTP you'd have a reverse proxy running on port 80 on your public address. This proxy would then analysze the Host: headers and forward the request to the NATed machines.