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).