Dynamic DNS

Dynamic DNS is a system for automatically updating DNS entries in order to provide a consistent name for a host that has a dynamically allocated IP address.

All Mythic Beasts domain registrations include free access to our Primary DNS API, a simple web-based API for automating changes to DNS records for your domain. This API also supports Dynamic DNS.

Please note that these instructions use our legacy, DNS API v1. We recommend using DNS API v2 for new configurations.

In order to use the DNS API you must first set an API password for your domain, which can be done using the Domains link on the control panel.

The DNS API requires an HTTP request with the following parameters:

  • domain - the domain you are updating
  • password - the API password for the domain
  • command - the API command

To update a Dynamic DNS record, use the REPLACE API command with the DYNAMIC_IP parameter. This will replace all existing records of the specified type for the specified host with the record provided. If the record does not already exist, it will be created. For example, to update an A record for "myhost" with a TTL of 5 seconds, use the following command:

REPLACE myhost 5 A DYNAMIC_IP

Your IP address will be automatically detected and used as the target for this record.

The request can be either a POST or a GET request. We recommend using POST, as otherwise your API password will appear unencrypted in the request URL.

The necessary POST requests can be implemented using the curl command line utility:

d=mydomain.com; p=password; curl --data "domain=$d&password=$p&command=REPLACE myhost 5 A DYNAMIC_IP" https://dnsapi4.mythic-beasts.com

There is no harm in making this request even if your IP address hasn't changed, so a basic approach would be to simply repeat this request at regular intervals.

Using your full hostname

Some dynamic DNS clients require you to provide your full hostname, rather than just the part within your domain (e.g. myhost.mydomain.com rather than just myhost). If specify the optional origin paramater with a value of ., hostnames will be assumed to be fully qualified. For example:

d=mydomain.com; p=password; curl --data "domain=$d&password=$p&command=REPLACE myhost.mydomain.com 5 A DYNAMIC_IP&origin=." https://dnsapi4.mythic-beasts.com

IPv4 vs IPv6

The DNS API fully supports both IPv4 and IPv6 records. As Dynamic DNS relies on detecting your IP address, it's important to control which protocol you use to connect to us. For this reason, we provide alternative IPv4 and IPv6-only versions of the service under different URLs:

  • https://dnsapi4.mythic-beasts.com (IPv4 only)
  • https://dnsapi6.mythic-beasts.com (IPv6 only)
  • https://dnsapi.mythic-beasts.com (dual-stack, not recommended for Dynamic DNS)

IPv6 and AAAA records

To set an AAAA record for your IPv6 address, use the following command:

d=mydomain.com; p=password; curl --data "domain=$d&password=$p&command=REPLACE myhost 5 AAAA DYNAMIC_IP" https://dnsapi6.mythic-beasts.com