Dynamic DNS

From VyOS Wiki
Jump to: navigation, search

VyOS dynamic dns updater

VyOS is able to update a remote DNS record when an interface gets a new IP address. In order to do so, VyOS includes ddclient, a perl script written for this exact purpose.

ddclient uses two methods to update a DNS record. The first one will send updates directly to the DNS daemon, in compliance with RFC2136. The second one involves a third party service, like DynDNS.com or any other similar website. This method uses HTTP requests to transmit the new IP address. You can configure both in VyOS.

VyOS CLI and RFC2136

First, create an RFC2136 config node :

# edit service dns dynamic interface eth0 rfc2136 <confignodename>

Present your RNDC key to ddclient :

# set key /config/dyndns/mydnsserver.rndc.key

Set the DNS server IP/FQDN :

# set server dns.mydomain.com

Set the NS zone to be updated :

# set zone mydomain.com

Set the records to be updated :

# set record dyn
# set record dyn2

You can optionally set a TTL (note : default value is 600 seconds) :

# set ttl 600

This will generate the following ddclient config blocks :

server=dns.mydomain.com
protocol=nsupdate
password=/config/dyndns/mydnsserver.rndc.key
ttl=600
zone=mydomain.com 
dyn
server=dns.mydomain.com
protocol=nsupdate
password=/config/dyndns/mydnsserver.rndc.key
ttl=600
zone=mydomain.com
dyn2

You can also keep a different dns zone updated. Just create a new config node :

# edit service dns dynamic interface eth0 rfc2136 <confignode2>

VyOS CLI and HTTP dynamic DNS services

VyOS is also able to use any service relying on protocols supported by ddclient.

To use such a service, you must define a login, a password, one or multiple hostnames, a protocol and a server.

# edit service dns dynamic interface eth0 service HeNet
# set login my-login # set password my-password
# set host-name my-tunnel-id
# set protocol dyndns2
# set server ipv4.tunnelbroker.net

VyOS is also shipped with a list of known services. You don't need to set the protocol and server value as VyOS has defaults provided for those. These are the services VyOS knows about :

  • afraid
  • changeip
  • dnspark
  • dslreports
  • dyndns
  • easydns
  • namecheap
  • noip
  • zoneedit

To use DynDNS for example :

# edit service dns dynamic interface eth0 service dyndns
# set login my-login
# set password my-password
# set host-name my-dyndns-hostname

It's possible to use multiple services :

# edit service dns dynamic interface eth0 service dyndns
# set login my-login
# set password my-password
# set host-name my-dyndns-hostname
# edit service dns dynamic interface eth0 service HeNet
# set login my-login
# set password my-password
# set host-name my-tunnel-id
# set protocol dyndns2
# set server ipv4.tunnelbroker.net

ddclient behind NAT

By default, ddclient will update a dynamic dns record using the IP address directly attached to the interface. If your VyOS instance is behind NAT, your record will be updated to point to your internal IP.

ddclient has another way to determine the WAN IP address. This is controlled by these two options :

# set service dns dynamic interface eth0 use-web url
# set service dns dynamic interface eth0 use-web skip

ddclient will load the webpage at [url] and will try to extract an IP address for the response. ddclient will skip any address located before the string set in [skip].


Please see ddclient manual for further information.