OpenVPN DNS Fails to Resolve

domain-name-systemopenvpnvpn

I am connected to an OpenVPN server that is configured with the options to redirect the VPN as the default gateway and to push my internal DNS servers:

push "dhcp-option DNS 192.168.1.2"
push "redirect-gateway def1"

When I do an:

ipconfig /all

I see my 192.168.1.2 DNS server in the list. I can also ping 192.168.1.1 successfully.

My problem is that when I try to ping somesite.internal.dom I'm not getting a result from my internal DNS server. I'm getting the result from OpenDNS (which is handling my non-VPN DNS traffic) telling me the site doesn't exist.

If I ping somesite.internal.dom from a machine that's directly connected to the network (i.e. not VPN'd in), it resolves properly.

How can I get my OpenVPN connection to try the VPN DNS server first? Or to ignore the local DNS traffic all together?

Best Answer

The binding order of your network interfaces determines the order Windows will access DNS servers. You don't specify the version of Windows you're using. In Windows XP the "Advanced Settings..." dialog in the "Network Connections" dialog will allow you to change the binding order. It's in the same place in Windows 7, however the nomenclature has changed slightly in regards to getting to the "Network Connections" dialog. (I generally just run ncpa.cpl to get there in Windows 7 anyway...)

Put the OpenVPN "NIC" at the top of the list in the "Connections" list and its DNS servers will be queried first.