Este contenido se ha movido de Qiita.
En algún lugar se utiliza keepalived como balanceador de carga en una configuración VRRP + LVS.
Este balanceador de carga opera configurando numerosos IPs (debido a los certificados SSL, entre otras razones) de la siguiente manera.
En este proceso, se produjo un triste incidente en el que no se pudo establecer la comunicación con las direcciones IP añadidas.
Configuración del balanceador de carga keepalived (Configuración DSR)
Se rutearon las direcciones IP necesarias para SSL desde el router utilizando una ruta estática y se fueron añadiendo direcciones IP según fuera necesario.
→ Como resultado, las direcciones IP en el keepalived del balanceador de carga han ido aumentando poco a poco.
Nota: Se han utilizado direcciones IP privadas por conveniencia.
No se pueden establecer más de 20 direcciones IP en VRRP
- Se configuraron 21 direcciones IP en el archivo de configuración (Nota: este es un ejemplo de configuración)
vrrp_instance BOND0 {
state MASTER
interface bond0
virtual_router_id 100
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.4 dev bond0
192.168.2.1 dev bond0
192.168.2.2 dev bond0
192.168.2.3 dev bond0
192.168.2.4 dev bond0
192.168.2.5 dev bond0
192.168.2.6 dev bond0
192.168.2.7 dev bond0
192.168.2.8 dev bond0
192.168.2.9 dev bond0
192.168.2.10 dev bond0
192.168.2.11 dev bond0
192.168.2.12 dev bond0
192.168.2.13 dev bond0
192.168.2.14 dev bond0
192.168.2.15 dev bond0
192.168.2.16 dev bond0
192.168.2.17 dev bond0
192.168.2.18 dev bond0
192.168.2.19 dev bond0
192.168.2.20 dev bond0
}
}
- A pesar de haber configurado 21 direcciones IP, ¡no hay suficientes!
# ip addr show bond0 | grep "inet 192"
inet 192.168.1.4/32 scope global bond0
inet 192.168.2.1/32 scope global bond0
inet 192.168.2.2/32 scope global bond0
inet 192.168.2.3/32 scope global bond0
inet 192.168.2.4/32 scope global bond0
inet 192.168.2.5/32 scope global bond0
inet 192.168.2.6/32 scope global bond0
inet 192.168.2.7/32 scope global bond0
inet 192.168.2.8/32 scope global bond0
inet 192.168.2.9/32 scope global bond0
inet 192.168.2.10/32 scope global bond0
inet 192.168.2.11/32 scope global bond0
inet 192.168.2.12/32 scope global bond0
inet 192.168.2.13/32 scope global bond0
inet 192.168.2.14/32 scope global bond0
inet 192.168.2.15/32 scope global bond0
inet 192.168.2.16/32 scope global bond0
inet 192.168.2.17/32 scope global bond0
inet 192.168.2.18/32 scope global bond0
inet 192.168.2.19/32 scope global bond0
Esto en realidad se menciona en la documentación de keepalived…
http://www.keepalived.org/pdf/UserGuide.pdf
virtual_ipaddress { # Bloque limitado a 20 direcciones IP
@IP
@IP
@IP
}
¡Se permiten hasta 20 direcciones IP! ¡Lo dice claramente!
Cómo configurar más de 20 direcciones IP
- Se pueden añadir direcciones IP adicionales en el archivo de configuración utilizando virtual_ipaddress_excluded (Nota: este es un ejemplo de configuración)
vrrp_instance BOND0 {
state MASTER
interface bond0
virtual_router_id 100
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.4 dev bond0
}
virtual_ipaddress_excluded {
192.168.2.1 dev bond0
192.168.2.2 dev bond0
192.168.2.3 dev bond0
192.168.2.4 dev bond0
192.168.2.5 dev bond0
192.168.2.6 dev bond0
192.168.2.7 dev bond0
192.168.2.8 dev bond0
192.168.2.9 dev bond0
192.168.2.10 dev bond0
192.168.2.11 dev bond0
192.168.2.12 dev bond0
192.168.2.13 dev bond0
192.168.2.14 dev bond0
192.168.2.15 dev bond0
192.168.2.16 dev bond0
192.168.2.17 dev bond0
192.168.2.18 dev bond0
192.168.2.19 dev bond0
192.168.2.20 dev bond0
}
}
- Ahora se pueden configurar con éxito más de 20 direcciones IP.
# ip addr show bond0 | grep "inet 192"
inet 192.168.1.4/32 scope global bond0
inet 192.168.2.1/32 scope global bond0
inet 192.168.2.2/32 scope global bond0
inet 192.168.2.3/32 scope global bond0
inet 192.168.2.4/32 scope global bond0
inet 192.168.2.5/32 scope global bond0
inet 192.168.2.6/32 scope global bond0
inet 192.168.2.7/32 scope global bond0
inet 192.168.2.8/32 scope global bond0
inet 192.168.2.9/32 scope global bond0
inet 192.168.2.10/32 scope global bond0
inet 192.168.2.11/32 scope global bond0
inet 192.168.2.12/32 scope global bond0
inet 192.168.2.13/32 scope global bond0
inet 192.168.2.14/32 scope global bond0
inet 192.168.2.15/32 scope global bond0
inet 192.168.2.16/32 scope global bond0
inet 192.168.2.17/32 scope global bond0
inet 192.168.2.18/32 scope global bond0
inet 192.168.2.19/32 scope global bond0
inet 192.168.2.20/32 scope global bond0