Dynamic DNS Update

You can use dynamic DNS update to keep your hostname updated with the latest IP address assigned by your ISP.

Currently only dyndns2 protocol is supported. This is a simple protocol and it works by running a client on the network device.

The dynamic DNS client detects when the IP address changes and issues HTTP requests to update the host IP address in the DNS.

This protocol uses Basic Authentication to authenticate HTTP requests.

You can use dynamic DNS only with hosts from the zones that you own.

You must create the hostname(s) in advance (A and/or AAAA records) and use your email and an API key for authentication.

* Protocol: dyndns2
* Server: app.luadns.com (required)
* Hostname: YOUR_HOST    (required, Example: myhost.example.org)
* Username: YOUR_EMAIL   (required, Example: joe@example.com)
* Password: YOUR_API_KEY (required, Example: '9e1248d97e234fd618c40c8cf2423813')
* Use SSL: yes           (required)


Example configuration for ddclient:

# /etc/ddclient.conf

# Use https, http is not supported.

# The `usev6` option enables IPv6, it may not be available on your OS, check your manual.
protocol=dyndns2 \
use=if, usev6=if, if=eth0 \
server=app.luadns.com \
password='9e1248d97e234fd618c40c8cf2423813' \

Command Line

Example usage using command line:

$ curl -i 'https://joe%40example.com:9e1248d97e234fd618c40c8cf2423813@app.luadns.com/nic/update?hostname=myhost.example.org&myip='
HTTP/2 200
content-type: text/plain; charset=utf-8
cache-control: max-age=0, private, must-revalidate
date: Thu, 10 Jan 2024 08:54:45 GMT
x-request-id: F6k_E0JMmD2d-kQAACHh
content-length: 4

To use Dynamic DNS update with git setup, you must instruct the build system to keep current A/AAAA records for your dynamic IP hostnames using ignore function.