Je vous propose ici une solution de load balancing légeremnt osée … En fait ça tient plus du hack qu'autre chose… En effet il n'y a pas :
Je vous le met car :
Clairement je mettrais pas ça en prod. C'est tout juste bon à faire mumuse en DEV… Je préfererais même le DNS round robin…
Voici le principe :
Les clients demandent l'ip commune à tous les serveurs back-end.
Le “load balanceur” se contente de router le client vers un des serveurs back-end.
Les serveurs back-end ensuite se forwardent le messages à eux mêmes grâce à cette ip commune…
Pour parvenir à ceci, il faut :
Activer le forward sur le load-balancer, et sur les serveurs back-end.
Sur les clients :
ip route add 192.168.150.0/24 via 192.168.102.136
Et sur le “load balancer ip” :
192.168.150.0/24 nexthop via 192.168.103.167 nexthop via 192.168.103.166
Voilà voilà…
Note :
C'est plus propres si l'ip commune à ce groupe de serveur appartient à un réseau différent, mais ça demande des contraintes très fortes sur l'architecture de votre réseau…
Personnellement, je pense que temps qu'à avoir une solution sale, autant que ce soit sal jusqu'au bout 1). Le but de l'ip commune c'est qu'un serveur back-end puisse se reconnaître. Il ne s'en sert jamais pour communiquer avec qui que ce soit. Donc pourquoi prendre la peine de séparer les réseau? Oui c'est contre les best pratique élémentaires 2), mais ça n'a aucune incidence : cette solution est restée en place pendant deux heures sans se faire griller par arpwatch et ses horribles flip-flops…
Et je ne signerais pas cet article… Question de principe.