He configurado keepalived en dos máquinas Debian para una alta disponibilidad, pero me he encontrado con la cantidad máxima de IP virtuales que puedo asignar a mi vrrp_instance
. ¿Cómo haría para configurar y fallar más de 20 IP virtuales?
Esta es la configuración, muy simple:
LB01: 10.200.85.1
LB02: 10.200.85.2
Virtual IPs: 10.200.85.100 - 10.200.85.200
Cada máquina también está ejecutando el enlace Apache (más tarde Nginx) en las IP virtuales para la terminación del certificado del cliente SSL y el proxy para servidores web backend. La razón por la que necesito tantos VIP es la incapacidad de usar VirtualHost en HTTPS.
Este es mi 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
}
Hay una configuración idéntica en la máquina BACKUP, y funciona bien, pero solo hasta la 20ª IP.
He encontrado un CÓMO discutiendo este problema. Básicamente, sugieren tener solo un VIP y enrutar todo el tráfico "a través de" esta IP, y "todo estará bien". ¿Es este un buen enfoque? Estoy ejecutando firewalls pfSense frente a las máquinas.
Cita del enlace de arriba:
ip route add $VNET/N via $VIP
or
route add $VNET netmask w.x.y.z gw $VIP
Gracias por adelantado.
EDITAR:
@David Schwartz dijo que tendría sentido agregar una ruta, así que intenté agregar una ruta estática al firewall de pfSense, pero eso no funcionó como esperaba.
Ruta 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
También me aseguré de tener habilitado el reenvío de paquetes en mis hosts:
$ cat /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.ip_nonlocal_bind=1
¿Estoy haciendo esto mal? También eliminé todos los VIP del keepalived.conf, por lo que solo falla durante 10.200.85.100.