I'm looking to explore the technical details of a quirk I've found.
I have an authoritative DNS server, performing Global Services Load Balancing. It responds with multiple IP addresses, in the order of preference based on its Load Balancing algorithms. So, for example if all services are healthy, but x.y.z.3 is least loaded, the response may look like:
x.y.z.3
x.y.z.1
x.y.z.2
However, what I've discovered is that if a user uses Google's DNS (8.8.8.8) they get a response exactly as above. However, OpenDNS appears to further round-robin these responses.
In other words, a user using 8.8.8.8 as their DNS server will always get this response:
x.y.z.3
x.y.z.1
x.y.z.2
But a user using OpenDNS could see them in any order.
I can immediately resolve this issue by only returning x.y.z.3, but I'd like to know:
- Is there an alternative way to resolve this?
- Is this behaviour covered in an RFC or standard?
- Is the OpenDNS behaviour expected and correct?