Round-robin DNS is a load-balancing technique that uses several different IP addresses for a single domain name.
What is round-robin DNS?
Round-robin DNS is a load-balancing technique where a type of DNS server does the balancing called an authoritative nameserver rather than using a dedicated piece of load-balancing hardware. Round-robin DNS can be used when a website or service has its content hosted on several redundant web servers; when the DNS authoritative nameserver is queried for an IP address, the server hands out a different address each time, operating on a rotation. This is particularly useful when the redundant web servers are geographically separated, making traditional load-balancing difficult. Round-robin is known for its ease of implementation but has substantial drawbacks.
A DNS server with round-robin enabled will have multiple A records, each with the same domain name but a different IP address. Each time the DNS server is queried, it sends the IP address to which it most recently responded to the back of the queue, operating on a loop. The IP addresses in a round-robin DNS server are like baseball players in a batting lineup: each gets a turn and then is moved to the back of the line.
What are the drawbacks of Round-Robin DNS?
Because of DNS and client-side caching, the round-robin method doesn’t always provide evenly-distributed load balancing. Suppose a user makes a DNS query to a particularly high-traffic recursive resolver for a particular website. In that case, that resolver will cache the website’s IP, potentially sending a heavy amount of traffic to that one IP.
Another drawback is that round-robin cannot be depended upon for site reliability; if one of the servers goes down, the DNS server will still keep that server’s IP in the round-robin rotation. So if there are six servers and one is taken offline, one in six users will be denied service. In addition, round-robin DNS does not account for server load, transaction time, geographical distance, and other factors that traditional load balancing can be configured for.
Some advanced round-robin services have methods to overcome a few drawbacks, such as the ability to detect unresponsive servers and take them out of the round-robin rotation. Still, there is no way around the caching issue.