J'ai mis en place sur deux machines de Debian pour une haute disponibilité, mais j'ai rencontré le nombre maximum d'IP virtuelle que je peux attribuer à mon vrrp_instance
. Comment puis-je utiliser la configuration et l'échec de plus de 20 ans de plus?
C'est le, très simple, configuré:
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 Apache (ultérieure NGinx) reliure sur la terminaison Virtual IPS pour le certificat de clientèle SSL et la proxy sur les serveurs Websters. La raison pour laquelle j'ai besoin de tellement de VIP est l'incapacité d'utiliser VirtualHost sur HTTPS.
Ceci est mon souvenir.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 est sur la machine de sauvegarde et cela fonctionne bien, mais seulement jusqu'à la 20e adresse IP.
J'ai trouvé un [~ # ~] howto [~ # ~ # ~] Discutez de ce problème. Fondamentalement, ils suggèrent d'avoir juste un VIP et en acheminant tout le trafic "via" cette adresse IP, et "tout ira bien". Est-ce une bonne approche? Je couronne des pare-feu Pfsense devant des machines.
Devis de la liaison 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 déclaré qu'il serait logique d'ajouter un itinéraire, alors j'ai essayé d'ajouter une voie statique au pare-feu PFSense, mais cela ne fonctionnait pas comme je m'attendais.
itinéraire 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
Je m'assurai aussi que j'avais le renvoi de paquets activé sur mes hôtes:
$ cat /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.ip_nonlocal_bind=1
Est-ce que je fais ça mal? J'ai également supprimé toutes les VIP de The Keepalived.Conf afin que cela ne tombe que sur 10.200.85.100.
La solution la plus simple tout en ne changeant pas votre architecture actuelle consiste à utiliser virtual_ipaddress_exclus. Par exemple
vrrp_instance VI_1 {
interface eth0
state MASTER
virtual_router_id 51
priority 101
virtual_ipaddress {
10.200.85.100
}
virtual_ipaddress_excluded {
10.200.85.101
. all the way to
10.200.85.200
}
}
virtual_ipaddress_exclued contient une liste des adresses IP contenant à ce que ce soit sur le serveur, mais ils ne sont pas inclus dans le paquet VRRP lui-même afin de ne pas compter vers la limite d'adresses IP.
Dans mes configurations, j'aime allouer une adresse IP spécifiquement pour virtual_ipaddress. C'est-à-dire celui qui est inclus dans les paquets VRRP et mettre tout le reste dans virtual_ipaddress_exclued. C'est une bonne idée car vous ne voulez pas avoir à changer l'adresse IP principale simplement parce que le client est parti.