IPv6 DDNS not working with 6rd
-
I just migrated my home network to a pfSense router, and I am trying to replicate the IPv6 DDNS setup I had on my OpenWRT router previously. The setup is as follows:
- IPv6 via 6rd tunnel configured on the main WAN interface.
- IPv6 gateway set up in System -> Routing -> Gateways.
- DDNS via he.net, using the "HE.net (v6)" service in the pfSense UI.
I can (I believe) confirm that my IPv6 on WAN is set up correctly by running
curl http://ip1.dynupdate6.no-ip.com
in Diagnostics -> Command Prompt and getting a good response with the same IPv6 address pfSense shows for WAN on the dashboard. However, the DDNS is not working ("Cached IP" shows as::
in red). Here's the log of an update attempt:Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: Dynamic DNS: updatedns() starting Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: Dynamic DNS he-net-v6 (<my ddns domain>): _checkIP() starting. Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: Dynamic DNS he-net-v6 (<my ddns domain>): <my correct IPv6 address> extracted from local system. Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: Dynamic DNS (<my ddns domain>): running get_failover_interface for wan. found wan_stf Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: Dynamic DNS he-net-v6 (<my ddns domain>): _detectChange() starting. Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: Dynamic DNS he-net-v6 (<my ddns domain>): _checkIP() starting. Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: Dynamic DNS he-net-v6 (<my ddns domain>): <my correct IPv6 address> extracted from local system. Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: Dynamic Dns (<my ddns domain>): Current WAN IP: <my correct IPv6 address> No Cached IPv6 found. Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: DynDns (<my ddns domain>): Dynamic Dns: cacheIP != wan_ip. Updating. Cached IP: :: WAN IP: <my correct IPv6 address> Initial update. Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: Dynamic DNS he-net-v6 (<my ddns domain>): _update() starting. Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: Response Header: Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: Response Data: Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: Dynamic DNS he-net-v6 (<my ddns domain>): _checkStatus() starting. Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: Curl error occurred: Failed to connect to dyn.dns.he.net port 443 after 9 ms: Couldn't connect to server Jun 30 20:25:54 php-fpm 391 /rc.dyndns.update: Dynamic DNS he-net-v6 (<my ddns domain>): _update() ending.
I am able to
curl https://dyn.dns.he.net:443
via Diagnostics -> Command Prompt. It returns a body ofbadauth
, which is not 'Couldn't connect to server', and is expected since I'm passing no auth. This also works if I add--interface <my ipv6>
.Can anybody help me debug this? Note that IPv4 DDNS via he.net is working. Happy to provide more relevant info on request.
-
Cached IP showing as empty is expected when the link first comes up. That's when it should send a dyndns update.
But not able to connect is certainly an issue. How do you have that configured?
Can you curl to that over v6?
curl -6 https://dyn.dns.he.net
?Steve
-
@stephenw10 Thanks for the reply. Yes, this appears to work too:
-
How is the dyndns client configured?
-
@stephenw10 Straightforwardly, AFAICT (see below). This configuration is translated straight from my working OpenWRT configuration, double-checked, etc. For he.net, hostname and username are the same (the domain to use). The 'Interface to monitor' dropdown only has WAN and my other LAN interfaces, no special separate interface for 6rd.
Even if these details were wrong, I would expect to see something other than 'Couldn't connect to server' in the logs. It seems like there is some deeper issue preventing the DDNS handler from even contacting the he.net server.
-