Cyanogenmod 7 OpenVPN DNS not working I want to route all the internet traffic of my phone through my VPN.

I configured OpenVPN on my htc Desire with Cyanogenmod 7.2.0.1-bravo through the integrated VPN settings dialog.

When I activate the Redirect-Gateway option, DNS resolution (e.g. google.com) doesn't work anymore. So not like others where the resolution of there local hostnames doesn't work (that wouldn't be a problem for me). The device hast still a connection to the internet (through the VPN) but it can't resolve domain names anymore.

The nameservers look correctly configured (adb shell):

# cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4


I've also tested the OpenVPN Settings app but as soon as i add 'redirect-gateway' to the openvpn configuration file I get the same problem.

What could cause this problem?
I found now a solution myself:

First, cat /etc/resolv.conf isn't a valid way to display the used DNS servers under Android. Use getprop net.dns1 instead.

In my case the DNS server wasn't the Google server as set in /etc/resolv.conf, instead it was one of my ISP which accepts only requests from IPs in its network but my OpenVPN server is in another network.

To solve this issue i just modified /system/etc/dhcpcd/dhcpcd-hooks/20-dns.conf a bit:

# Set net.&lt;iface&gt;.dnsN properties that contain the
# DNS server addresses given by the DHCP server.

set_dns_props()
{
    case "${new_domain_name_servers}" in
    "")   return 0;;
    esac

    count=1
    for i in 1 2 3 4; do
        setprop dhcp.${interface}.dns${i} ""
    done

    count=1
    for dnsaddr in ${new_domain_name_servers}; do
        setprop dhcp.${interface}.dns${count} ${dnsaddr}
        count=$(($count + 1))
    done

    setprop net.dns1 8.8.8.8
    setprop net.dns2 8.8.4.4
}

case "${reason}" in
BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT)       set_dns_props;;
EXPIRE|FAIL|IPV4LL|RELEASE|STOP)                unset_dns_props;;
esac


That will force the phone to always use the Google DNS servers for all connections (e.g. 3G, WiFi, OpenVPN, ...).

I've tested that for a few weeks now and it works perfect.