J'ai configuré keepalived sur deux machines Debian pour une haute disponibilité, mais j'ai rencontré le nombre maximum d'IP virtuelles que je peux assigner à mon vrrp_instance
. Comment pourrais-je configurer et échouer plus de 20 IP virtuelles?
Voici la configuration, très simple:
LB01: 10.200.85.1
LB02: 10.200.85.2
Virtual IPs: 10.200.85.100 - 10.200.85.200
Chaque machine exécute également une liaison Apache (plus tard Nginx) sur les adresses IP virtuelles pour la terminaison du certificat client SSL et le proxy pour les serveurs Web principaux. La raison pour laquelle j'ai besoin de tant de VIP est l'impossibilité d'utiliser VirtualHost sur HTTPS.
Voici mon keepalived.conf:
vrrp_script chk_apache2 {
script "killall -0 apache2"
interval 2
weight 2
}
vrrp_instance VI_1 {
interface eth0
state MASTER
virtual_router_id 51
priority 101
virtual_ipaddress {
10.200.85.100
.
. all the way to
.
10.200.85.200
}
Une configuration identique se trouve sur la machine BACKUP, et cela fonctionne bien, mais uniquement jusqu'à la 20e IP.
J'ai trouvé un HOWTO traitant de ce problème. Fondamentalement, ils suggèrent d'avoir un seul VIP et d'acheminer tout le trafic "via" cette adresse IP, et "tout ira bien". Est-ce une bonne approche? J'utilise des pare-feu pfSense devant les machines.
Citation du lien ci-dessus:
ip route add $VNET/N via $VIP
or
route add $VNET netmask w.x.y.z gw $VIP
Merci d'avance.
ÉDITER:
@David Schwartz a dit qu'il serait judicieux d'ajouter une route, j'ai donc essayé d'ajouter une route statique au pare-feu pfSense, mais cela n'a pas fonctionné comme je m'y attendais.
Route pfSense:
Interface: LAN
Destination network: 10.200.85.200/32 (virtual IP)
Gateway: 10.200.85.100 (floating virtual IP)
Description: Route to VIP .100
J'ai également vérifié que le transfert de paquets était activé sur mes hôtes:
$ cat /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.ip_nonlocal_bind=1
Suis-je en train de mal faire? J'ai également supprimé tous les VIP du keepalived.conf pour qu'il échoue uniquement le 10.200.85.100.