qdm12 / ddns-updater

Container to update DNS records periodically with WebUI for many DNS providers
https://hub.docker.com/r/qmcgaw/ddns-updater/
MIT License
1.64k stars 158 forks source link

Help: DuckDns Ipv6 only missing in update URL #304

Closed Fubar7 closed 2 years ago

Fubar7 commented 2 years ago

TLDR: I want to update my Ipv6 only to DuckDns. ddns-updater gets the right ipv6 adress in the logs but don't send it to DuckDns. If the Update URL is without an adress, DuckDns try to detected the ipv4 adress. That's my problem. If i understand it correctly the IPv6 should be place in the URL witch send to DuckDns, for example

https://www.duckdns.org/update?domains=xxxsubdomain1xxx&token=xxxTokenxxx&&ipv6=2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx&verbose=true&verbose=true

  1. Is this urgent: Yes/No

  2. DNS provider(s) you use: DuckDns

  3. Program version:

    Running version latest built on 2022-01-21T13:37:49Z (commit f5b76f2)

  4. What are you using to run the container: docker-compose

  5. Extra information (optional)

Logs:

2022/02/01 21:14:32 json.go:46: INFO reading JSON config from file /updater/data/config.json
2022/02/01 21:14:32 json.go:63: DEBUG config read: {
"settings": [
{
"provider": "duckdns",
"host": "xxxsubdomain1xxx",
"token": "xxxTokenxxx",
"ip_version": "ipv6",
"provider_ip": true
},
{
"provider": "duckdns",
"host": "xxxsubdomain2xxx",
"token": "xxxTokenxxx",
"ip_version": "ipv6",
"provider_ip": false
}
]
}
2022/02/01 21:14:32 main.go:191: INFO Found 2 settings to update records
2022/02/01 21:14:32 main.go:203: INFO Reading history from database: domain duckdns.org host xxxsubdomain1xxx
2022/02/01 21:14:32 main.go:203: INFO Reading history from database: domain duckdns.org host xxxsubdomain2xxx
2022/02/01 21:14:32 server.go:45: INFO healthcheck server: listening on 127.0.0.1:9999
2022/02/01 21:14:32 main.go:273: INFO backup: disabled
2022/02/01 21:14:32 server.go:48: INFO http server: listening on :8000
2022/02/01 21:14:32 run.go:268: DEBUG configured to fetch IP: v4 or v6: false, v4: false, v6: true
2022/02/01 21:14:33 run.go:270: DEBUG your public IP address are: v4 or v6: <nil>, v4: <nil>, v6: 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
2022/02/01 21:14:33 run.go:227: INFO IPv6 address of xxxsubdomain1xxx.duckdns.org is <nil> and your IPv6 address is 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
2022/02/01 21:14:33 run.go:143: DEBUG record xxxsubdomain2xxx.duckdns.org is within ban period or cooldown period, skipping update
2022/02/01 21:14:33 run.go:292: INFO Updating record [domain: duckdns.org | host: xxxsubdomain1xxx | provider: duckdns | ip: ipv6] to use 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
2022/02/01 21:14:33 logclient.go:46: DEBUG GET https://www.duckdns.org/update?domains=xxxsubdomain1xxx&token=xxxTokenxxx&verbose=true | headers: User-Agent: DDNS-Updater quentin.mcgaw@gmail.com
2022/02/01 21:14:34 logclient.go:53: DEBUG 200 OK | headers: Date: Tue, 01 Feb 2022 20:14:33 GMT; Set-Cookie: AWSALB=3ztWMrT0eR/u2KcYt3ppuc2LHhFtMvlxNHLU4r6J9DZYr0YX2zf6pp4pf8qs1KKElgd5z3EAHPZKxz3tlbd1j0oGnFmWkke/eElDBpbaACjBoDbMDyl+f2cpSAjx; Expires=Tue, 08 Feb 2022 20:14:33 GMT; Path=/,AWSALBCORS=3ztWMrT0eR/u2KcYt3ppuc2LHhFtMvlxNHLU4r6J9DZYr0YX2zf6pp4pf8qs1KKElgd5z3EAHPZKxz3tlbd1j0oGnFmWkke/eElDBpbaACjBoDbMDyl+f2cpSAjx; Expires=Tue, 08 Feb 2022 20:14:33 GMT; Path=/; SameSite=None; Secure; Server: nginx/1.20.0; X-Clacks-Overhead: GNU Terry Pratchett; X-Frame-Options: DENY | body: OK88.130.153.114NOCHANGE
2022/02/01 21:14:34 run.go:295: ERROR mismatching IP address received: 88.130.153.114

Configuration file (remove your credentials!):

  "settings": [
    {
      "provider": "duckdns",
      "host": "xxxsubdomain1xxx",
      "token": "xxxTokenxxx",
      "ip_version": "ipv6",
      "provider_ip": true
    },
    {
      "provider": "duckdns",
      "host": "xxxsubdomain2xxx",
      "token": "xxxTokenxxx",
      "ip_version": "ipv6",
      "provider_ip": false
    }
  ]

Host OS: Unraid 6.9.2

DDNS-Updater Plugin

qdm12 commented 2 years ago

Just set "provider_ip": false and that should do it :wink: Sorry for the long delay answering as well.

Although the program uses ip6 instead of ipv6 as the URL query parameter, so let me know if that doesn't work.

Fubar7 commented 2 years ago

Hey @qdm12, thanks for your response. 😊 I'm glad you are helping me. Maybe i missunderstand you. In the LogFile you can see i set up two Subdomains. Subdomain1 with "provider_ip": true and the other Subdomain2 with "provider_ip": false. Both send only the ipv4 adress to DuckDNS. I tried it anyway to set both Subdomains on "provider_ip": false but it still sends ipv4 addresses to DuckDns

Although the program uses ip6 instead of ipv6 as the URL query parameter, so let me know if that doesn't work.

What do you mean here? I can't wirte "ip_version": "ip6",in the config file ?

qdm12 commented 2 years ago

Ah I know why from the logs:

On the other hand, ERROR mismatching IP address received: 88.130.153.114 is a bit weird since the code should just blindly believe the provider to find our IP correctly instead of double-checking, when provider_ip is set.

qdm12 commented 2 years ago

Actually they mention it on duckdns.org, basically using provider_ip: true only works with ipv4, not ipv6. I updated the duckdns document in 1f9eb467cae1bfcc7e08de1228b5dc2802d7a7bb to mention this.

Let's close this issue for now, but feel free to comment back if you got anything else going wrong. Thanks!