It's usually very easy to enter alternative DNS sources in your router rather than in the OS. But, of course, there are reasons to do it in the OS; for example, if you don't want other devices on your wireless network to use the alternate DNSs.
Thanks, that's good advice! However, my router (provided by my ISP) doesn't seem to have that setting.
It does sound like a program in the background is altering your DNS settings daily.
The thought appeared to me, but I don't know what program, when or why, and I have no idea how to find that out. Probably, it's unavoidable, in that case. Additionally, lots of people are complaining about this online, so it's possible that it's just something in Windows 8.
For me, the best solution was a workaround.
Here is how I "think" I have solved this, after spending a couple of hours digging around.
1) Create a bat script to set your DNS servers (the syntax was rather confusing and poorly documented, but I got it, at last)
Code:
REM Sets the primary DNS server for the Ethernet connection (LAN cable to modem)
netsh interface ip set dns name="Ethernet" source=static addr= x.xx.xx.xxx register=none
REM Sets the backup DNS server for the Ethernet connection
netsh interface ip add dnsservers "Ethernet" xx.xx.xx.xx index=2
REM Set the primary DNS server for the VPN
netsh interface ip set dns name="VPN _Connection_Name" source=static addr=xx.xx.xx.xx register=none
REM Set the backup DNS server for the VPN
netsh interface ip add dnsservers "VPN _Connection_Name" xx.xx.xx.xx index=2
Note: You would have to add things like Wireless connection if you are using that. My setup are for the conditions on my desktop PC. There is no visible error message if the commands fail (unless you pause the bat file), so you need to verify that you have the correct name for your connections. The names of the connections are case sensitive.
2) Save the file with the extension bat, in a convenient location on your machine, for example the Windows folder.
3) Create a shortcut to the bat file and enter Advanced settings to say that it should run as Administrator (otherwise it doesn't execute).
4) Place the bat file in your Startup folder. This takes care of the risk that the settings are lost at reboot.
5) You may also want to set up a Scheduled task to run the script every 6 hours the computer is on, or something like that. Just in case the settings are reset by some application or other source for whatever reason.
This works....