Keepalived

Keepalived es un software que brinda alta disponibilidad asignando a dos o más nodos una IP virtual (VIP) y monitoreando esos nodos, y conmutando por error cuando uno falla.
Enlaces
https://www.server-world.info/en/note?os=Ubuntu_22.04&p=keepalived&f=1
Diagrama
+-----------------------------------------------------+
| Keepalived Cluster |
| |
| +----------------+ +----------------+ |
| | nodo1 MASTER | | nodo2 BACKUP | |
| | (Prioridad100)| | (Prioridad50) | |
| | | | | |
| | +-----------+ | | +-----------+ | |
| | | keepalived| | | | keepalived| | |
| | | (MASTER) | | | | (BACKUP) | | |
| | +-----------+ | | +-----------+ | |
| | | | | | | |
| [eth0: 192.168.1.201] [eth0: 192.168.1.202] |
| | VIP: 192.168.1.200 (flotante) | |
| +--------|----------------|----------------+ |
| | | |
+-------------|----------------|----------------------+
| |
| |
+-------------v----------------v----------------------+
| Red (LAN/VLAN) |
| |
| Clientes acceden al VIP: 192.168.1.200 |
| |
+-----------------------------------------------------+
+--------------------+ +---------------------+
| MASTER | | BACKUP |
| (VIP activo) | | (En espera) |
+----------+---------+ +----------+----------+
| |
| MASTER cae (timeout VRRP) |
+---------------------------->|
| |
| |
| BACKUP promovido a MASTER |
| (VIP se mueve) |
+-----------------------------+
Instalar
En todos los nodos
sudo apt -y install keepalived
Configuración
El fichero de configuración está en "/etc/keepalived/keepalived.conf". Modifícalo en cada nodo
global_defs {
router_id nodo1
}
vrrp_instance VRRP1 {
state MASTER # BACKUP en el otro nodo
priority 100 # Prioridad inferior en nodo BACKUP
interface eth0
virtual_router_id 101
advert_int 1
authentication {
auth_type PASS
auth_pass secreto123
}
virtual_ipaddress {
192.168.1.200/24
}
}
Comandos
# Gestión del servicio Keepalived
sudo systemctl start keepalived # Inicia el servicio.
sudo systemctl stop keepalived # Detiene el servicio.
sudo systemctl restart keepalived # Reinicia el servicio (útil tras cambios de configuración).
sudo systemctl status keepalived # Muestra el estado del servicio (activo/fallido).
sudo systemctl enable keepalived # Habilita el inicio automático al arrancar el sistema.
# Verificación del estado del cluster
ip a show dev <interfaz> # Verifica si la VIP está asignada a la interfaz (ej. eth0).
journalctl -u keepalived -f # Muestra logs en tiempo real (útil para debugging).
# Monitoreo del protocolo VRRP
sudo tcpdump -i <interfaz> vrrp # Captura tráfico VRRP para verificar anuncios entre nodos.
sudo watch -n 1 ip a # Monitoriza cambios en las IPs (incluida la VIP) cada segundo.