Windows – DNS Route Public IP To Private IP

dnsnetworkingwindows-server-2003

I have a public IP, say, 123.45.67.89
And a private network of 192.168.1.0/24

When I am anywhere outside the private network, I can connect to the public IP. When I am inside the private network, I cannot communicate with the public IP (HTTP/IMAP/etc).

I am told that my DNS should resolve to the private IP from the public IP when inside the network.

Is this true, and how would I go about doing this?
On server 2003 (the DNS server) I setup a reverse lookup of 123.45.67.0 and created a pointer of 123.45.67.89 to my private hostname. After an ipconfig /flushdns on a client, this doesn't appear to be working.

Best Answer

DNS does not route anything – it only resolves names.

The function you are looking for is Split-horizon DNS. You can set up your DNS server to resolve the same name to different addresses, depending on where the request comes from. For example:

192.168.0.1 → dnsserver:  query  'mail.example.com.' A
dnsserver → 192.168.0.1:  answer 'mail.example.com.' A 192.168.1.42

45.67.89.0 → dnsserver:   query  'mail.example.com.' A
dnsserver → 45.67.89.0:   answer 'mail.example.com.' A 123.456.78.9

For Windows Server 2003, you'll probaly need a second DNS server. See these two pages for more information.

Related Question