Dynamic DNS with Namecheap

Hi there,

I’ve been trying to configure Dynamic DNS with Namecheap, however I’m struggling as the way to configure that Namecheap expects don’t match what Vyos is requiring.

To start, is demanding a “login” when Namecheap doesn’t use one, I’ve set my Namecheap username but still it fails.

Additionally, we have only the field for “host-name”, although Namecheap seperates Host from Domain.
Here is the docs from Namecheap for manual update: https://www.namecheap.com/support/knowledgebase/article.aspx/29/11/how-do-i-use-a-browser-to-dynamically-update-the-hosts-ip/

Here is my config:

vyos@vyos# show service dns dynamic
 interface eth1 {
     service namecheap {
         host-name ralmworld.com
         login ralms
         password <my namecheap Dynamic DNS password>
     }
 }

And when I check:

vyos@vyos:~$ show dns dynamic status
ip address   :
host-name    : ralmworld.com
last update  : 2020-04-05 03:54:23
update-status: failed

Any help is appreciated,
Thank you.

Hi @Ralm, I think you forget to add server

set service dns dynamic interface eth1 service namecheap server <ipv4 or URL>

Hi Dmitry,

I didn’t add the server because the documentation mentioned that you only need to in custom configs.
As I already defined the service, shouldn’t be needed right?
https://docs.vyos.io/en/crux/configuration/service/dns.html#vyos-cli-and-http-dynamic-dns-services

Thanks

Hi @Ralm, yes, you right!
Can you provide the output of the command for debugging?

show log tail | match ddclient

Sure,

Apr  6 16:30:56 vyos ddclient[29534]: WARNING:   Connection: close
Apr  6 16:30:56 vyos ddclient[29534]: WARNING:   Content-Length: 423
Apr  6 16:30:56 vyos ddclient[29534]: WARNING:
Apr  6 16:30:56 vyos ddclient[29534]: WARNING:   <?xml version="1.0"?><interface-response><Command>SETDNSHOST</Command><Language>eng</Language><ErrCount>1</ErrCount><errors><Err1>Domain name not found</Err1></errors><ResponseCount>1</ResponseCount><responses><response><ResponseNumber>316153</ResponseNumber><ResponseString>Validation error; not found; domain name(s)</ResponseString></response></responses><Done>true</Done><debug><![CDATA[]]></debug></interface-response>
Apr  6 16:30:56 vyos ddclient[29534]: FAILED:   updating ralmworld.com: Invalid reply.

Just managed to reproduce this with the browser, as I expected Vyos is not filling the “Domain” property and instead only the host.

On my repro I did this:

https://dynamicdns.park-your-domain.com/update?host=ralmworld.com&password=mykey&ip=127.0.0.1

However the Namecheap documentation asks for the following:

https://dynamicdns.park-your-domain.com/update?host= @ &domain= yourdomain.tld &password= e747d77054a844409c486973cb &ip= 127.0.0.1

Can you try the following configuration?

set service dns dynamic interface eth0 service namecheap host-name '@'
set service dns dynamic interface eth0 service namecheap login 'ralmworld.com'
set service dns dynamic interface eth0 service namecheap password '<your password>'

That worked.

I will look how to contribute to the docs so I can add this note there.

Thank you.

Hey Dmitry, I hope all is well with you

In addition, since the documentation stated that adding the server was only necessary in custom configurations, I did not add it to the list.
In light of the fact that I already defined the service, what’s the point of adding it to the list?