I'm attempting to serve a website from a machine that only has an IPv6 address. I have purchased a domain name and changed the AAAA record of the DNS resource record to my IPv6 address, and have verified that this change has been updated using nslookup --query=AAAA example.com. However, when I navigate to my page, it resolves to the default site provided by my domain registrar, which is hosted at the IPv4 address in the A record.

In addition, I've tried to set the A record to an invalid IPv4 address, but no dice.

How can I force the use of the IPv6 address?

| improve this question | | | | |
  • Wait, there's an A record pointing somewhere useless (or more ideally, no A record at all) and the registrar's still responding with an A record that points to their own systems? What's the nslookup show when querying for A (or better yet, ANY)? – Shane Madden Jun 12 '15 at 2:09
  • Right; nslookup -query=A foo.com gives the useless IPv4 address, ping foo.com gives the default IPv4 address of the registrar. nslookup -query=ANY gives expected results. – user14717 Jun 12 '15 at 2:13
  • 2
    If it's IPv6-only, make sure you don't have an A record, not even a "fake" one. – Michael Hampton Jun 12 '15 at 2:43
  • 2
    @MichaelHampton: I'm using 1and1.com; there is no option to delete the A record, and if you leave it null it comes back to the default IPv4 address. . . – user14717 Jun 12 '15 at 2:55
  • 2
    Well then, that's a great argument for hosting your DNS elsewhere. :) And probably everything else; I've never heard a good word about 1and1. – Michael Hampton Jun 12 '15 at 2:59

If you want to force all users accessing a domain to do so over IPv6 rather than IPv4, the correct way to do so is to simply not publish any A record.

From the additional information provided in the comments I understand that your current DNS hosting provider does not support a correct configuration. That means you'll have to switch to another DNS hosting provider.

If for some reason you want to stay with the current provider, there is another way to force clients to use IPv6 even when there is an A record. You can point the A record to an IPv4 address which responds with a TCP RST packet to every connection attempt. Most clients with IPv6 access will switch to IPv6 if they get a RST over IPv4.

But don't just point your A record to some random IPv4 address which happens to be responding with RST at the moment. You need to ensure that you have an agreement with whoever is responsible for the host on the IPv4 address you point to, before you start using it.

| improve this answer | | | | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.