dns round robin is dead

November 13, 2015

Saviez-vous qu’utiliser du round-robbin DNS est inutile ?

Le bug remonté par le développeur de curl est toujours valide, presque 4 ans plus tard.

J’ai testé pour vous sur ma Debian Jessie :

$ gcc roundrobin.c -o roundrobin
$ ./roundrobin bad11.haxx.se 200
---Check 200 runs of getaddrinfo(bad11.haxx.se)
--- 4 different IPs were returned
IP index 0
 2020202 200 times (100%)

IP index 1
 4040404 200 times (100%)

IP index 2
 3030303 200 times (100%)

IP index 3
 1010101 200 times (100%)

---Check 200 runs of gethostbyname(bad11.haxx.se)
--- 4 different IPs were returned
IP index 0
 2020202 200 times (100%)

IP index 1
 4040404 200 times (100%)

IP index 2
 3030303 200 times (100%)

IP index 3
 1010101 200 times (100%)

Et cela est même pire puisque gethostbyname() a hérité du même comportement.

La conclusion, c’est qu’on ne peut plus faire de round-robbin mode yolo et qu’on est forcé de déployer un reverse-proxy (comme haproxy).