Dynamic DNS Client

AstLinux now supports the ddclient-curl package, installed as ddclient.

The ddclient-curl package is a fork of the original ddclient perl script, which has been rewritten to use curl for network IO and a comprehensive IPv4/IPv6 framework allowing both IPv4 and/or IPv6 dynamic addresses (A and/or AAAA records) to be updated using supported DNS service providers.

Note: AstLinux 1.2.10 or later is required for 'ddclient-curl' specific features

Dynamic DNS Providers

Configuring Dynamic DNS is relatively simple, but a few things must be considered.

First you need to find a DNS provider you want to work with, many are free to use but be sure to check and abide by their terms of service. In many cases you will need to register a domain name of your own and configure your domain's DNS to point to the (two or more) name servers as instructed by your DNS provider.

So, while many DNS providers are free of charge, your domain name will have a nominal yearly cost.

Below is a short list of DNS providers that have been tested with AstLinux. There are many other providers available.

Cloudflare → Supports DNS A and AAAA record updates.

FreeDNS → Supports DNS A and AAAA record updates.

HE Free DNS → Supports DNS A and AAAA record updates.

DNS-O-Matic → Supports only DNS A record updates, relaying to other providers.

Dynamic DNS Standard Configuration

For the standard case where a single DNS provider is used, this example uses the “HE Free DNS” (Hurricane Electric) provider updating both IPv4 (A record) and IPv6 (AAAA record).

For the “HE Free DNS” service type, you must first create the A and AAAA records for dydns.example.com (fictitious) using the HE Free DNS web portal, and mark those records as dynamic. Use the generated API key as your password.

Select the Network Tab in the web interface.
Network Tab

Scroll down to the “Dynamic DNS Update:” section:

Dynamic DNS Standard Config

Tip → You must define the “DNS Hostname”, “DNS Username” and “DNS Password” entries, they can't be empty.

Dynamic DNS Custom Configuration

In most cases the standard configuration (above) will be fine. But for more advanced situations, multiple providers, multiple IP's, etc. a custom /mnt/kd/ddclient.conf file can be created.

The simplest case is to copy the system template /stat/etc/ddclient.conf to your custom config:

cp /stat/etc/ddclient.conf /mnt/kd/ddclient.conf

The next time you “Restart Dynamic DNS” the custom config will be used, but will work exactly as the standard case, matching the various “DNS Service Type:” menu entries. You may now make simple edits to the custom /mnt/kd/ddclient.conf file, maintaining support for all the “DNS Service Type:” menu entries.

For more complex configurations, you may find that supporting all the “DNS Service Type:” menu entries with the special syntax is too cumbersome, you may define your /mnt/kd/ddclient.conf without the leading provider syntax, as such the “DNS Service Type:” menu selection will be ignored.

Select the Network Tab in the web interface.
Network Tab

Scroll down to the “Dynamic DNS Update:” section:

Dynamic DNS Custom Config

Clicking on the Dynamic DNS Configuration button will allow you to edit the /mnt/kd/ddclient.conf file.

Tip → Macro replacements of @FOO@ variables will still be performed if your custom /mnt/kd/ddclient.conf contains such entities.

For example, your custom /mnt/kd/ddclient.conf may start with the same initial lines of the system template /stat/etc/ddclient.conf:

daemon=@DELAY@
@USE_WEB@use=web, web=@WEB_STR@
@USE_IF@use=if, if=@EXTIF@
@USEV6_WEB@usev6=web, webv6=@WEBV6_STR@
@USEV6_IF@usev6=if, if=@EXTIF@

These lines will allow the “DNS Get IPv4 Address” and “DNS Get IPv6 Address:” web interface entries to work as expected.

You may leave the “DNS Hostname”, “DNS Username” and “DNS Password” entries empty if you wish, or use @DDHOST@, @DDUSER@ and @DDPASS@ to pass along any of those web interface fields.