One of slowest topics in networking is probably the take-up of IPv6 on the client side. Despite this, I’ve been evolving the IPv6 connectivity of my servers at home over the years and with my recent evolution to virtual machines and a new DynDNS hoster, things are now even smoother and a lot simpler.
While IPv6 has its difficult edges, configuring servers is at least straight forward. If the router to the Internet broadcasts the IPv6 prefix it has been assigned, devices usually auto-configure their IPv6 address. In my case, the IPv6 prefix is dynamic and changes whenever the DSL connectivity is reset. I therefore need to update the IPv4 and IPv6 DNS records (the A and AAAA records to be precise) whenever this happens.
In the past I’ve been using No-IP.com for my dynamic DNS needs out of habit. Unfortunately, to this day, they are not offering dynamic updates for AAAA records. As a consequence, I had to resort to using a static CNAME record for a subdomain I wanted to use with IPv6 that points to another domain name hosted at a service where quad-A records can be dynamically updated. That’s nice to play around but certainly not a long term solution. It is too complex and I don’t want to spend my money with a dynamic DNS provider who doesn’t fulfill my needs.
So for my latest setup I’ve registered the domains I want to use IPv6 with at inwx.com who has significantly cheaper prices for domain hosting and dynamic DNS than no-ip.com. What won me over apart from competitive pricing and the company operating out of my home country was that they offer several different interfaces ranging from simple HTTP GET requests to a complex API with a lot of bells and whistles for dynamically updating A, AAAA and other DNS fields with the time to live field set to 60 seconds.
While my severs have no direct way of knowing when the IPv4 address changes on the public side of my router, they are made aware of IPv6 prefix changes by the router immediately. So instead of polling an external service frequently to see if the IPv4 address has changed, I can now rely on checking the IPv6 prefix on the server. The IPv4 address never changes without the IPv6 prefix doing so as well so it’s the perfect indicator.
There are a number of scripts available on Github to update the IPv4 and IPv6 records for a domain at inwx which probably work great, but I wanted to have something simpler. As I do have IPv6 connectivity and don’t have to rely on remote IPv4 address lookups, I was able to come up with an update script that is much simpler. It’s over on Github Gitlab in case you want to have a look.