Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Running authoratative zone for with the NS for the A records on an IPv4 accessable NS but having the AAAA records for the same zone running on a different NS accessable via IPv6 - is this possible - viable - sensible?

share|improve this question
Possible, yes; viable, maybe; sensible... ghods no. – womble Jul 27 '11 at 10:45

It's certainly possible to do this on the server side - just have different versions of the zone files (aka "split horizon DNS") on the two sets of servers, with one only containing A records and the other (IPv6-connected) set only containing AAAA records. The parent zone would need to have both A and AAAA glue, though.

However you shouldn't actually do it, particularly if the intent is to direct different users based on the IP protocol used in their DNS queries.

The reasons for this are several:

  1. Inbound DNS queries come from recursive servers, not end users. It's perfectly possible that an IPv6 enabled user could send a DNS query over IPv6, but for their DNS server to send its query to you over IPv4

  2. It's a layer violation - the choice of protocol used for DNS should be completely separate from the choice of protocol for subsequent application use.

  3. Cache coherency - DNS doesn't like it when servers return different results to different people. If a recursive cache only gets hold of the IPv6 servers, and an IPv4 client then asks for the info from cache, it'll have no A records, so the query will fail.

share|improve this answer

You're not going to be able to do this since there is no way of delegating based on request type. What you could do is delegate a subdomain and return A records for one set of nameservers and AAAA records for a different set of nameservers. However, what would happen in a dual stack environment? You can't know whether a request would prefer IPv4 or IPv6 and it's probably going to be requesting both types of records - especially in a public environment where it usually won't be the end-client which is making the DNS lookups to your server.

You could also do something similar with routing, so that you route IPv4 and IPv6 traffic to different nameservers. You'd have exactly the same problem though.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.