DNS Round Robin : Load Balancing Simple
Distribuez le trafic entre plusieurs serveurs avec le DNS Round Robin.
Le DNS Round Robin est une technique simple de rĂ©partition de charge qui consiste Ă associer plusieurs adresses IP Ă un mĂȘme nom de domaine. Quand un client rĂ©sout le nom, le serveur DNS retourne les IP dans un ordre diffĂ©rent (rotatif), distribuant ainsi les requĂȘtes entre les serveurs. C'est le load balancing le plus simple Ă mettre en place - aucun Ă©quipement spĂ©cial requis.
Cette technique existe depuis les débuts d'Internet et est toujours largement utilisée. Les grands sites comme Google ou Facebook utilisent une forme sophistiquée de round robin combinée avec de l'Anycast et du health checking. Pour des besoins simples, le round robin DNS classique reste une solution efficace et économique.
Cependant, le round robin DNS a des limitations importantes : pas de health checking intégré, distribution inégale due au caching, pas de prise en compte de la charge réelle. Comprendre ces limitations vous aidera à décider si c'est la bonne solution pour votre cas d'usage.
Comment Fonctionne le Round Robin DNS
Le principe est simple mais son comportement réel est nuancé :
- Multiple A records : Vous crĂ©ez plusieurs enregistrements A pour le mĂȘme nom, chacun pointant vers une IP diffĂ©rente. Le serveur DNS les retourne dans un ordre rotatif.
- Rotation des rĂ©ponses : Ă chaque requĂȘte, le serveur DNS change l'ordre des IP dans la rĂ©ponse. Le client utilise gĂ©nĂ©ralement la premiĂšre IP de la liste.
- Comportement client : Les clients modernes essaient souvent plusieurs IP si la premiĂšre Ă©choue. Mais tous n'implĂ©mentent pas ce comportement de la mĂȘme façon.
- Effet du cache : Les rĂ©solveurs et les clients cachent les rĂ©ponses DNS selon le TTL. Pendant ce temps, un mĂȘme client ira toujours vers les mĂȘmes IP.
Avantages du Round Robin DNS
Le round robin DNS offre plusieurs bénéfices :
- Simplicité : Aucun équipement spécial, aucun logiciel supplémentaire. Juste quelques enregistrements DNS et vos serveurs sont load-balancés.
- Coût zéro : Pas de load balancer à acheter ou maintenir. Le DNS fait le travail gratuitement, inclus dans votre hébergement DNS.
- Résilience basique : Si une IP ne répond pas, les clients modernes essaient les autres. Ce n'est pas du vrai failover mais ça aide.
- Distribution géographique : Combinez avec des serveurs dans différentes régions pour une forme primitive de GeoDNS - les clients varieront naturellement.
Configurer le Round Robin DNS
La configuration est remarquablement simple :
- Préparez vos serveurs : Déployez votre application sur plusieurs serveurs avec des IP différentes. Assurez-vous qu'ils sont tous identiques et synchronisés.
- CrĂ©ez les enregistrements : Dans votre DNS, crĂ©ez plusieurs enregistrements A pour le mĂȘme nom, chacun avec une IP diffĂ©rente. Utilisez le mĂȘme TTL pour tous.
- Choisissez le TTL : Un TTL court (60-300s) amĂ©liore la distribution mais augmente le trafic DNS. Un TTL long rĂ©duit les requĂȘtes mais colle les clients Ă une IP.
- Testez la rotation : Faites plusieurs requĂȘtes dig et vĂ©rifiez que l'ordre des IP change. Testez aussi depuis diffĂ©rents rĂ©seaux pour voir l'effet des caches.
Exemples de Configuration Round Robin
Voici comment configurer et tester le round robin :
; Configuration Round Robin - 3 serveurs
www.example.com. 300 IN A 203.0.113.1
www.example.com. 300 IN A 203.0.113.2
www.example.com. 300 IN A 203.0.113.3
; Test de rotation avec dig
$ dig www.example.com A +short
203.0.113.2
203.0.113.3
203.0.113.1
$ dig www.example.com A +short
203.0.113.3
203.0.113.1
203.0.113.2
; Observer les 3 IP Ă chaque requĂȘte, ordre diffĂ©rent
; VĂ©rifier le TTL (doit ĂȘtre identique)
$ dig www.example.com A | grep -A3 "ANSWER SECTION"
;; ANSWER SECTION:
www.example.com. 300 IN A 203.0.113.1
www.example.com. 300 IN A 203.0.113.2
www.example.com. 300 IN A 203.0.113.3
Chaque requĂȘte retourne toutes les IP mais dans un ordre diffĂ©rent. Le TTL de 300 secondes (5 minutes) est un bon compromis entre distribution et cache. Tous les enregistrements doivent avoir le mĂȘme TTL.
Bonnes Pratiques Round Robin
Maximisez l'efficacité du round robin :
- TTL cohĂ©rent : Tous les enregistrements du round robin doivent avoir le mĂȘme TTL. Des TTL diffĂ©rents causeraient des comportements imprĂ©visibles.
- Health checking externe : Le DNS ne sait pas si vos serveurs sont up. Utilisez MoniTao pour surveiller chaque IP et retirez manuellement les serveurs down du DNS.
- Sessions sticky : Si votre app a des sessions serveur, le round robin peut les casser. Utilisez des sessions partagées (Redis) ou des tokens cÎté client.
- CapacitĂ© Ă©quivalente : Tous les serveurs devraient avoir la mĂȘme capacitĂ©. Le round robin distribue Ă©quitablement - un serveur plus faible sera surchargĂ©.
Checklist Round Robin
- Serveurs identiques et synchronisés
- Enregistrements A créés avec mĂȘme TTL
- Rotation vérifiée avec dig
- Monitoring sur chaque IP individuelle
- Sessions/état gérés cÎté client ou partagés
- Plan de retrait rapide d'une IP en cas de panne
FAQ - Round Robin DNS
La distribution est-elle vraiment équitable ?
Non, pas parfaitement. Le caching DNS fait que certains clients restent sur la mĂȘme IP pendant le TTL. Les clients derriĂšre un mĂȘme rĂ©solveur partagent le mĂȘme cache.
Que se passe-t-il si un serveur tombe ?
Le DNS continue de retourner son IP. Les clients modernes essaieront une autre IP aprĂšs timeout, mais c'est lent et pas fiable. Retirez l'IP manuellement ou utilisez un vrai load balancer.
Puis-je pondérer la distribution ?
Pas avec le round robin standard. Pour la pondération, vous avez besoin d'un DNS intelligent (Cloudflare, Route 53) ou d'un load balancer matériel/logiciel.
Round robin fonctionne-t-il avec HTTPS ?
Oui, le DNS ne sait pas quel protocole sera utilisé. Assurez-vous que tous vos serveurs ont des certificats SSL valides pour le domaine.
Quelle est la différence avec Anycast ?
Anycast utilise la mĂȘme IP sur plusieurs serveurs - le routage rĂ©seau choisit le plus proche. Round Robin utilise des IP diffĂ©rentes - le DNS les fait tourner.
MoniTao peut-il surveiller un round robin ?
Oui, créez un monitor pour chaque IP du round robin. MoniTao vérifiera chaque serveur individuellement et vous alertera si l'un tombe.
Load Balancing Simple et Gratuit
Le DNS Round Robin reste une technique pertinente pour des besoins simples de répartition de charge. Zéro coût, facile à mettre en place, et suffisant pour de nombreux cas d'usage.
Mais ne sous-estimez pas ses limitations. Pour une vraie haute disponibilité avec health checking automatique, vous aurez besoin d'une solution plus sophistiquée. En attendant, surveillez chaque serveur avec MoniTao.
Liens utiles
PrĂȘt Ă dormir sur vos deux oreilles ?
Commencez gratuitement, sans carte bancaire.