J’ai du travailler sur IPVS recemment et j’ai decide de documenter mes experimentations. Imaginons que vous ayez une adresse IP utilisee pour plusieurs machines repondant sur le port 80 : 192.168.66.6, prenons a presents 3 machines, celle tournant IPVS en 10.10.1.66, et deux autres machines servant du contenu web sur le port 80 avec les IPS suivantes : 10.10.1.101 et 10.10.1.102.
Afin de faire marcher le tout, il vous faudra installer ipvsadmin et keepalived. Ce dernier vous servira a distribuer le trafique entre les deux machines. Voici la configuration pour ce faire :
global_defs { notification_email { luser@frlinux.net } notification_email_from root@frlinux.net smtp_server 127.0.0.1 smtp_connect_timeout 3000 router_id MYFANCY_IPVS } virtual_server 192.168.6.66 80 { delay_loop 30 lb_algo wrr lb_kind NAT protocol TCP real_server 10.10.1.101 80 { weight 10 TCP_CHECK { connect_timeout 3 } real_server 10.10.1.102 80 { weight 10 TCP_CHECK { connect_timeout 3 } } }
Pensez bien evidemment a activer ip_forward dans le sysctl.conf: net.ipv4.ip_forward = 1.
Il faut ensuite ajouter la route par default pour les machines, la plus propre etant de diriger le trafique par defaut vers la machine IPVS : route add default gw 10.10.1.66. Assurez vous de sauver ces changements pour survivre un redemarrage.
Vous pouvez a present demarrer IPVS et admirer sa haute disponibilite :)