Page MenuHomeVyOS Platform

Update dynamic dns configuration path to be consistent with other areas of VyOS
Closed, ResolvedPublic

Description

Modify the configuration path to be consistent with the usual dialects of VyoS configuration (wireguard, dns, firewall, etc.)

This would also shorten the configuration path and have a unified treatment for RFC2136-based updates and other 'web-service' based updates.

While at it, add support for per-service web-options. This would allow for probing different external URLs on a per-service basis.

Note: Since we weren't sure about the long-term viability of ddclient (and were considering other providers), the configuration path structure had been somewhat 'in-flux' so that switching Dynamic DNS provider would be easier.
However, now that ddclient is been better maintained again, we can stick with ddclient for now.

Summary of how the change would look like:

Case 1: Web-based DDNS with address web:
Before:

set service dns dynamic address web web-options url 'https://domains.google.com/checkip'   # Note that this was global
set service dns dynamic address web service cloudflare host-name 'dyn.example.com'
set service dns dynamic address web service cloudflare protocol 'cloudflare'
set service dns dynamic address web service cloudflare zone 'example.com'
set service dns dynamic address web service cloudflare password 'super-secret'
set service dns dynamic address web service cloudflare ip-version 'both'

After:

set service dns dynamic name cloudflare address 'web'
set service dns dynamic name cloudflare web-options url 'https://domains.google.com/checkip'   # Note that this is per-service now
set service dns dynamic name cloudflare host-name 'dyn.example.com'
set service dns dynamic name cloudflare protocol 'cloudflare'
set service dns dynamic name cloudflare zone 'example.com'
set service dns dynamic name cloudflare password 'super-secret'
set service dns dynamic name cloudflare ip-version 'both'

Case 2: Web-based DDNS with address eth6:
Before:

set service dns dynamic address eth6 service cloudflare host-name 'dyn.example.com'
set service dns dynamic address eth6 service cloudflare protocol 'cloudflare'
set service dns dynamic address eth6 service cloudflare zone 'example.com'
set service dns dynamic address eth6 service cloudflare password 'super-secret'
set service dns dynamic address eth6 service cloudflare ip-version 'both'

After:

set service dns dynamic name cloudflare address 'eth6'
set service dns dynamic name cloudflare host-name 'dyn.example.com'
set service dns dynamic name cloudflare protocol 'cloudflare'
set service dns dynamic name cloudflare zone 'example.com'
set service dns dynamic name cloudflare password 'super-secret'
set service dns dynamic name cloudflare ip-version 'both'

Case 3: RFC2136-based DDNS with address web:
Before:

set service dns dynamic address web web-options url 'https://domains.google.com/checkip'    # Note that this was global
set service dns dynamic address web rfc2136 foo host-name 'dyn.example.com'
set service dns dynamic address web rfc2136 foo zone 'example.com'
set service dns dynamic address web rfc2136 foo key '/config/auth/foo.txt'
set service dns dynamic address web rfc2136 foo server 'dns.example.com'

After:

set service dns dynamic name foo address 'web'
set service dns dynamic name cloudflare web-options url 'https://domains.google.com/checkip'   # Note that this is per-service now
set service dns dynamic name foo host-name 'foo.example.com'
set service dns dynamic name foo protocol 'nsupdate'             # Note that this needs to be configured now, just like other protocols
set service dns dynamic name foo zone 'example.com'
set service dns dynamic name foo key '/config/auth/foo.txt'     # Note that `nsupdate` needs `key` instead of `password`
set service dns dynamic name foo server 'dns.example.com'

Details

Version
1.4, 1.5
Is it a breaking change?
Config syntax change (migratable)

Related Objects

Event Timeline

indrajitr triaged this task as Normal priority.
indrajitr created this object in space S1 VyOS Public.
indrajitr changed the task status from Open to Needs testing.Dec 28 2023, 6:28 AM