Eu configurei keepalived em duas máquinas Debian para alta disponibilidade, mas encontrei o número máximo de IPs virtuais que eu posso atribuir ao meu vrrp_instance
. Como eu poderia configurar e falhar em mais de 20 IPs virtuais?
Esta é a configuração muito simples:
LB01: 10.200.85.1
LB02: 10.200.85.2
Virtual IPs: 10.200.85.100 - 10.200.85.200
Cada máquina também está executando a ligação Apache (posterior Nginx) nos IPs virtuais para terminação de certificado de cliente SSL e proxy para servidores da Web de backend. A razão pela qual eu preciso de tantos VIPs é a incapacidade de usar o VirtualHost em HTTPS.
Este é o meu 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
}
Uma configuração idêntica está na máquina BACKUP e está funcionando bem, mas somente até o 20º IP.
Eu encontrei um HOWTO discutindo esse problema. Basicamente, eles sugerem ter apenas um VIP e rotear todo o tráfego "via" esse IP, e "tudo ficará bem". Será esta uma boa abordagem? Estou executando firewalls pfSense na frente das máquinas.
Cite o link acima:
ip route add $VNET/N via $VIP
or
route add $VNET netmask w.x.y.z gw $VIP
Obrigado antecipadamente.
EDITAR:
@ David Schwartz disse que faria sentido adicionar uma rota, então eu tentei adicionar uma rota estática ao firewall pfSense, mas isso não funcionou como eu esperava.
rota 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
Também verifiquei se o encaminhamento de pacotes estava ativado em meus hosts:
$ cat /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.ip_nonlocal_bind=1
Estou fazendo isso errado? Eu também removi todos os VIPs do keepalived.conf para que ele só falhasse em 10.200.85.100.