Ho installato keepalived su due macchine Debian per l'alta disponibilità, ma ho incontrato il numero massimo di IP virtuali che posso assegnare al mio vrrp_instance
. Come farei per configurare e fallire oltre 20+ IP virtuali?
Questa è la configurazione molto semplice:
LB01: 10.200.85.1
LB02: 10.200.85.2
Virtual IPs: 10.200.85.100 - 10.200.85.200
Ogni macchina esegue anche il collegamento Apache (in seguito Nginx) sugli IP virtuali per la terminazione del certificato client SSL e il proxy per i server Web back-end. Il motivo per cui ho bisogno di così tanti VIP è l'impossibilità di utilizzare VirtualHost su HTTPS.
Questo è il mio 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
}
Una configurazione identica si trova sulla macchina BACKUP e funziona bene, ma solo fino al 20 ° IP.
Ho trovato un HOWTO che discute questo problema. Fondamentalmente, suggeriscono di avere solo un VIP e instradare tutto il traffico "tramite" questo IP unico, e "tutto andrà bene". è un buon approccio? Sto eseguendo firewall pfSense davanti alle macchine.
Citazione dal link sopra:
ip route add $VNET/N via $VIP
or
route add $VNET netmask w.x.y.z gw $VIP
Grazie in anticipo.
MODIFICARE:
@David Schwartz ha detto che avrebbe senso aggiungere una route, quindi ho provato ad aggiungere una route statica al firewall pfSense, ma non ha funzionato come mi aspettavo.
Percorso 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
Mi sono anche assicurato di aver abilitato l'inoltro di pacchetti sui miei host:
$ cat /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.ip_nonlocal_bind=1
Sto sbagliando? Ho anche rimosso tutti i VIP da keepalived.conf in modo che non riesca solo oltre il 10.200.85.100.