Page MenuHomeVyOS Platform

DDNS service name validation rejects valid service names
Closed, ResolvedPublicBUG

Description

In the VyOS 1.2.4 don't work 2 custom ddns services. In VyOS 1.2.3, it was possible to specify any service names without validation.
Example

set service dns dynamic interface eth0 service duckdn
set service dns dynamic interface eth0 service mysperdnserver
set service dns dynamic interface eth0 service mysuperdn2server

Now only through the custom service

In this case login and password are overwritten.

set service dns dynamic interface eth0 service custom host-name 'host01.01test.com'
set service dns dynamic interface eth0 service custom login 'login01'
set service dns dynamic interface eth0 service custom password 'pass01'
set service dns dynamic interface eth0 service custom protocol 'dyndns2'
set service dns dynamic interface eth0 service custom server 'www.duckdns.org'

set service dns dynamic interface eth0 service custom host-name 'host02.02test.com'
set service dns dynamic interface eth0 service custom login 'login02'
set service dns dynamic interface eth0 service custom password 'pass02'
set service dns dynamic interface eth0 service custom server 'www.duckdns2.org'

vyos@1.2.4# sudo cat /etc/ddclient/ddclient.conf

### Autogenerated by dynamic_dns.py ###
daemon=1m
syslog=yes
ssl=yes
pid=/var/run/ddclient/ddclient.pid
cache=/var/cache/ddclient/ddclient.cache

#
# ddclient configuration for interface "eth0":
#
use=if, if=eth0


# DynDNS provider configuration for host01.01test.com
protocol=dyndns2,
max-interval=28d,
login=login02,
password='pass02',
server=www.duckdns2.org,
host01.01test.com

# DynDNS provider configuration for host02.02test.com
protocol=dyndns2,
max-interval=28d,
login=login02,
password='pass02',
server=www.duckdns2.org,
host02.02test.com

Strict validation is also present.

vyos@1.2.4# set service dns dynamic interface eth0 service duckdns 

  Please choose from the list of allowed services
  Value validation failed
  Set failed

[edit]
vyos@1.2.4#

In version 1.2.3, this was solved by a workaround. because there was no strict validation.

set service dns dynamic interface eth0 service duckdns host-name 'host01.01test.com'
set service dns dynamic interface eth0 service duckdns login 'login01'
set service dns dynamic interface eth0 service duckdns password 'pass01'
set service dns dynamic interface eth0 service duckdns protocol 'dyndns2'
set service dns dynamic interface eth0 service duckdns server 'www.duckdns.org'
set service dns dynamic interface eth0 service pubyun host-name 'host02.02test.com'
set service dns dynamic interface eth0 service pubyun login 'login02'
set service dns dynamic interface eth0 service pubyun password 'pass02'
set service dns dynamic interface eth0 service pubyun protocol 'dyndns2'
set service dns dynamic interface eth0 service pubyun server 'www.pubyun.com'

vyos@1.2.3# sudo cat /etc/ddclient.conf

### Autogenerated by dynamic_dns.py ###
daemon=1m
syslog=yes
ssl=yes
pid=/var/run/ddclient/ddclient.pid
cache=/var/cache/ddclient/ddclient.cache

#
# ddclient configuration for interface "eth0":
#
use=if, if=eth0


# DynDNS provider configuration for host01.01test.com
protocol=dyndns2
max-interval=28d
login=login01
password='pass01'
server=www.duckdns.org
host01.01test.com



# DynDNS provider configuration for host02.02test.com
protocol=dyndns2
max-interval=28d
login=login02
password='pass02'
server=www.pubyun.com
host02.02test.com



[edit]
vyos@1.2.3#

Details

Difficulty level
Easy (less than an hour)
Version
VyOS 1.2.4
Why the issue appeared?
Other
Is it a breaking change?
Perfectly compatible

Event Timeline

pasik added a subscriber: pasik.Jan 8 2020, 5:27 PM
Viacheslav updated the task description. (Show Details)Jan 9 2020, 12:59 PM
c-po added a subscriber: c-po.Jan 10 2020, 8:43 AM

Please use service custom

Service custom don't support 2 ddns entries now.
It overwrite login/pass to (login02) for each custom service

set service dns dynamic interface eth0 service custom host-name 'host01.01test.com'
set service dns dynamic interface eth0 service custom login 'login01'
set service dns dynamic interface eth0 service custom password 'pass01'
set service dns dynamic interface eth0 service custom host-name 'host02.02test.com'
set service dns dynamic interface eth0 service custom login 'login02'
set service dns dynamic interface eth0 service custom password 'pass02'
# DynDNS provider configuration for host01.01test.com
protocol=dyndns2,
max-interval=28d,
login=login02,
password='pass02',
server=www.duckdns2.org,
host01.01test.com

# DynDNS provider configuration for host02.02test.com
protocol=dyndns2,
max-interval=28d,
login=login02,
password='pass02'
syncer changed the task status from Open to Backport candidate.Mar 28 2020, 12:10 PM
syncer assigned this task to jestabro.
syncer triaged this task as Low priority.
syncer moved this task from Need Triage to Backport Candidates on the VyOS 1.3 Equuleus board.
dmbaturin renamed this task from Two custom ddns services to DDNS service name validation rejects valid service names.Jul 26 2020, 3:33 PM
dmbaturin closed this task as Resolved.
dmbaturin changed Difficulty level from Unknown (require assessment) to Easy (less than an hour).
dmbaturin changed Why the issue appeared? from Will be filled on close to Other.
dmbaturin changed Is it a breaking change? from Unspecified (possibly destroys the router) to Perfectly compatible.
syncer reopened this task as Open.Mon, Sep 7, 7:35 PM
syncer moved this task from Needs Triage to Finished on the VyOS 1.2 Crux (VyOS 1.2.6) board.
syncer closed this task as Resolved.Wed, Sep 9, 5:23 PM