qdm12 / ddns-updater

Container to update DNS records periodically with WebUI for many DNS providers

Home Page:https://hub.docker.com/r/qmcgaw/ddns-updater/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`hosting.de`

halgorvan opened this issue · comments

curl -v -I -X GET "https://<user>:<password>@ddns.hosting.de/nic/update?hostname=<domain>&myip=1.2.3.4"

Support page: https://www.hosting.de/helpdesk/produkte/dns/dynamic-dns/
Unfortunately it's only in German.

  1. Does it support wildcard updating?
  2. Does it support Ipv6? With the same myip paramater?

Note for the time being, you can use the custom provider with your url (see the docs/custom.md page)

  1. Pretty sure. I update only my domain, but no subdomains. And all subdomains get redirected to my public IP. And for my DNS server (at hosting.de) I configured this record: *.simmy.org CNAME Wildcard DNS record simmy.org
  2. I asked the support there. I have no idea. What I can tell you right now, that the myip parameter is optional. Without the parameter, hosting.de will take the IP address from the host that is sending the request.
  3. Thanks for the hint, I was always looking for "custom". However, I'm using truecharts (on TrueNAS) and somehow they didn't implement this.

I received the answer from my provider. hosting.de supports IPv6.
And for the parameter they were writing: it is ip6addr instead of ipaddr. I am not sure if they were referencing to the DynDNS service or the DNS service.

However, I'm using truecharts (on TrueNAS) and somehow they didn't implement this.

Ask them to bump it to version 2.6 🤔 Or just version 2 and it should get newer versions automatically

Pretty sure. I update only my domain, but no subdomains.

Can you try curling with the *.domain.com to see if updates the wildcard A record correctly? Thanks!

I don't know what you mean with curling *.domain.com. Maybe I am on the wrong track, but I have several subdomains, like vault.simmy.org or hwiki.simmy.org, but I only update simmy.org and all subdomains point automatically to my public IP. That should qualify for wildcard updating. I haven'T created any subdomains on the DNS server.

Can you create a wildcard subdomain, and then try:

curl -v -I -X GET "https://<user>:<password>@ddns.hosting.de/nic/update?hostname=*.yourdomain.com&myip=1.2.3.4"

To see if it works? Or is this not an option on their site 🤔

Slightly related, I just added a guide to add a new provider if you want to give it a try eventually: https://github.com/qdm12/ddns-updater/blob/master/.github/CONTRIBUTING.md#add-a-new-dns-provider

I have a wildcard domain. And this is the command I use at the moment:
curl -v -I -X GET "https://not-so-secret-username:super-secret-password@ddns.hosting.de/nic/update?hostname=simmy.org"
I omit the parameter myip, because I send this command from my public IP address. It's working.
However, I will try your docker-compose.yml on my portainer in the evening. This is maybe a better option than using truecharts on TrueNAS.

I have a wildcard domain.

Well it's a CNAME which acts the same, but could you add an A (or AAAA) wildcard record? For example *.test owner, A type, and simmy.org domain, then request with *.test.simmy.org to update it to check it works? Sorry to be paranoid on edge cases, but I've seen this not working for some dns registrars, despite them supporting wildcards via their web ui etc.

Bildschirmfoto 2024-03-01 um 10 24 37
I tried it. I can't do it with AAAA, hence I don't have an IPv6 address. But an A record is ok.
It seems to work. This is what I get after trying to update:

  • Trying 134.0.26.158:443...
  • Connected to ddns.hosting.de (134.0.26.158) port 443 (#0)
  • ALPN: offers h2,http/1.1
  • TLSv1.3 (OUT), TLS handshake, Client hello (1):
  • CAfile: /etc/ssl/certs/ca-certificates.crt
  • CApath: /etc/ssl/certs
  • TLSv1.3 (IN), TLS handshake, Server hello (2):
  • TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
  • TLSv1.3 (IN), TLS handshake, Certificate (11):
  • TLSv1.3 (IN), TLS handshake, CERT verify (15):
  • TLSv1.3 (IN), TLS handshake, Finished (20):
  • TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
  • TLSv1.3 (OUT), TLS handshake, Finished (20):
  • SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
  • ALPN: server did not agree on a protocol. Uses default.
  • Server certificate:
  • subject: CN=ddns.hosting.de
  • start date: Jan 23 20:35:22 2024 GMT
  • expire date: Apr 22 20:35:21 2024 GMT
  • subjectAltName: host "ddns.hosting.de" matched cert's "ddns.hosting.de"
  • issuer: C=US; O=Let's Encrypt; CN=R3
  • SSL certificate verify ok.
  • using HTTP/1.x
  • Server auth using Basic with user 'ddnsneo'

GET /nic/update?hostname=test.simmy.org HTTP/1.1
Host: ddns.hosting.de
Authorization: Basic don't tell
User-Agent: curl/7.88.1
Accept: /

  • TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
  • TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
  • old SSL session ID is stale, removing
    < HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    < server: nginx
    server: nginx
    < date: Fri, 01 Mar 2024 09:39:51 GMT
    date: Fri, 01 Mar 2024 09:39:51 GMT
    < transfer-encoding: chunked
    transfer-encoding: chunked
    < strict-transport-security: max-age=15768000
    strict-transport-security: max-age=15768000
    < x-content-type-options: nosniff
    x-content-type-options: nosniff

<

  • Excess found: excess = 17 url = /nic/update (zero-length body)
  • Connection #0 to host ddns.hosting.de left intact

I tested a little bit more. Despite the fact that I don't get an error message when I try to update, it doesn't update the record. A ping showed the truth. (my IP address is 85.195.229.42):
ping robert.test.simmy.org
PING robert.test.simmy.org (85.195.229.41) 56(84) bytes of data.
64 bytes from 85-195-229-41.fiber7.init7.net (85.195.229.41): icmp_seq=1 ttl=62 time=0.414 ms

I guess your paranoia is at the right place.