IPVS tout propre chez toi

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