Dynamic DNS using dynv6.com and DD-WRT

As of DD-WRT v3.0-r33772 (16/11/2017), DD-WRT's DDNS settings do not offer presets for dynv6.com. Unfortunately, the instructions for the »custom« settings of DD-WRT's DDNS feature are even more opaque than inadyn's man page. After some trial and error, I ended up with the following working setup.

DDNS Service
Custom
DYNDNS Server
dynv6.com
Username
user
Password
password
Hostname
your host name
URL
/api/update?ipv4=auto&ipv6=auto&token=your token&hostname=

Note that the username and password settings aren't used by dynv6.com, but they cannot be empty because DD-WRT then refuses to start the inadyn service.

You can find out the value for token by logging into your dynv6.com account. The settings are chosen to update the IPv4 or IPv6 address to the address from which the request is received. I have not investigated how to update both protocols at the same time.

The host name you enter into the corresponding field is automatically appended to the URL, which is why that parameter comes last without a value.

If you would like to see what's happening, you can add --verbose 5 to the »Additional DDNS Options« and the log file shown at the bottom of the page will contain more information.

Windows 10 setup steps

Remove OneDrive:

C:\Windows\SysWOW64\OneDriveSetup.exe -uninstall
Set HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree and HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree to 0.
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}]
"System.IsPinnedToNameSpaceTree"=dword:00000000

[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}]
"System.IsPinnedToNameSpaceTree"=dword:00000000

Run Protec'tor.

Ad filtering setup for DD-WRT

In order to set up ad filtering by host blocking on DD-WRT, you can create a cron(1) script to download a hosts file and point dnsmasq(1) to it.

The first step is accomplished by a crontab entry in Administration, Cron like the following (line broken for readability). Note that this file is in cron.d format, i.e. the sixth field is the user name and the command is the seventh field.

0 0 * * * root mkdir -p /tmp/adhosts;
    i=0;
    for url in "http://hosts-file.net/download/hosts.txt";
    do
        /usr/bin/curl -s "$url" > /tmp/adhosts/$i;
        i=$((1 + i));
    done;
    kill -hup $(cat /var/run/dnsmasq.pid)

You can add any number of files to download, but since cron(1) does not support line continuation you will have to write the entire script in one line (or store it somewhere in the filesystem).

In order for dnsmasq to pick up the list, the following setting is needed in Services, DNSMasq:

addn-hosts=/tmp/adhosts