Enabling IPv6 with Kinsta’s Cloudflare Integration

Officially, Kinsta doesn’t support IPv6. In fact I’m not aware of any managed WordPress host provider advertising IPv6 as a feature. Out of the popular WordPress hosts like Kinsta, Liquid Web, Pagely, Pressable, Siteground or WP Engine, only Liquid Web has their own homepage running on IPv6.

I get it. IPv6 is one of those features hardly anyone is asking for. So why would a web host spend time and energy switching over their entire tech stack in order to support it? A few years ago I would have said it’s not worth the effort. Now the landscape is starting to change. A big indicator is that many internet providers are now ready for IPv6. Check if your own connection is supported: https://ipv6test.google.com.

Cloudflare’s Automatic IPv6 Gateway is awesome.

If your website is behind Cloudflare then IPv6 is already supported. Even if your host provider only works with IPv4. This is huge as it means most front facing websites can now be covered by IPv6 without any underlying infrastructure changes.

It also means any Kinsta customer can get IPv6 working on their WordPress website with a few manual steps. Until I see IPv6 officially listed on the Kinsta knowledge base then please consider this setup experimental. Proceed with caution as this could break at anytime.

Switching to Kinsta’s CNAME rather than IP, when possible.

When implementing Kinsta’s Cloudflare integration it will typically tell you to point to Kinsta’s Cloudflare IP rather than a CNAME record. The one exception is when the website is using Cloudflare for DNS. In that case it will prompt you to use a Kinsta’s Cloudflare CNAME record in the format of <sitename>.hosting.kinsta.cloud. This CNAME trick prevents an internal Cloudflare conflict when multiple accounts are involved.

Switching your DNS from the Kinsta Cloudflare IP to the Kinsta Cloudflare CNAME record will automatically enable IPv6. That’s because their CNAME records has both A and AAAA records associated with it. We can use dig to extract both the IPv4 and IPv6 as shown here.

However it’s not possible to use a CNAME at the top level of a domain. For example you can point www.anchor.host to anchorhosting.hosting.kinsta.cloud however you can’t point anchor.host to anchorhosting.hosting.kinsta.cloud. Some DNS provider like Cloudflare do allow you to do that, see CNAME flattening, however that’s not part of the official DNS spec. Instead the proper way of handling the top level is to create both A records and AAAA records. We can use the above extracted records to do just that.

Pointing root level A and AAAA records

Verifying with IPv6 Test‘s online scanner.

This is a safe way to check if your website is working properly with IPv6.

When I first switched over DNS for my own site I ran into an error were the website was covered however my DNS nameservers weren’t.

If your DNS provider doesn’t support IPv6 then you probably want to find one that does. My DNS provider, Constellix, definitely supports IPv6 however it turns out I never configured IPv6 records when creating vanity nameservers. That was easily fixable by adding 4 new AAAA records under anchor.host to match the Constellix records.

Checking IPv6 coverage using IPvFoo browser extension.

If your internet provider supports IPv6 then you can dig deeper with the IPvFoo browser extension. This shows which domains are covered for each asset loaded in the background.

IPvFoo running on Google.com
IPvFoo running on WPEngine.com