En el primer artículo de esta serie, Uso de Keepalived para administrar la conmutación por error simple en clústeres, aprendió sobre Keepalived
y el VRRP
protocolo para la conmutación por error de una dirección IP de una máquina a otra. Ahora es el momento de ensuciarse las manos y aprender sobre la instalación y configuración básica de Keepalived
. En este artículo, configurará Keepalived
para habilitar la conmutación por error entre dos servidores. ¡Empecemos!
Instalación mantenida
Keepalived
está disponible dentro de los repositorios de paquetes estándar y se instala fácilmente usando yum
:
[root@server1 ~]# yum install -y keepalived
[root@server1 ~]# keepalived --version
Keepalived v2.0.10 (11/12,2018)
[root@server1 ~]# systemctl status keepalived
keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disab
Active: inactive (dead)
También debe saber cómo compilar Keepalived
del código fuente. Keepalived
es un proyecto mantenido activamente, y recibe regularmente nuevas funciones y correcciones de errores que pueden no estar en la versión del administrador de paquetes cuando los necesita. Incluso encontré errores con la versión actual en los repositorios de paquetes mientras escribía esta serie, y tuve que seguir este procedimiento exacto para usar la última versión de Keepalived
.
# Install prerequisites
yum install -y gcc openssl-devel
# Download the latest version of the code. Be sure to check the downloads page for the most recent version:https://www.keepalived.org/download.html
[root@localhost ~]# wget https://www.keepalived.org/software/keepalived-2.0.20.tar.gz
# Extract the code
[root@localhost ~]# tar -xf keepalived-2.0.20.tar.gz
# Run the configure scripts
[root@localhost ~]# cd keepalived-2.0.20
[root@localhost keepalived-2.0.20]# ./configure
# Build and install keepalived
[root@localhost keepalived-2.0.20]# make
[root@localhost keepalived-2.0.20]# make install
# Test your installation
[root@localhost keepalived-2.0.20]# keepalived --version
Keepalived v2.0.20 (01/22,2020)
Configuración básica
Símbolos de red en los diagramas disponibles a través de VRT Network Equipment Extension, CC BY-SA 3.0.
El archivo de configuración para Keepalived
se encuentra en /etc/keepalived/keepalived.conf
. Como se discutió en el artículo anterior, Keepalived
hace más que simplemente implementar VRRP
básico . Esto conduce a un archivo de configuración que puede parecer desalentador si observa la página de manual de Keepalived. Sin embargo, se puede lograr una topología simple como la anterior con una configuración mínima.
El Keepalived
más básico La configuración habilita una dirección IP compartida entre dos servidores. En la topología anterior, el servidor1 es el maestro y el servidor2 es la copia de seguridad. La configuración de ambos servidores es sencilla.
Configuración del servidor 1:
server1# cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 255
advert_int 1
authentication {
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
192.168.122.200/24
}
}
Configuración del servidor 2:
server2# cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 254
advert_int 1
authentication {
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
192.168.122.200/24
}
}
Las directivas de configuración deberían ser obvias a partir de sus convenciones de nomenclatura, pero analizaré cada una de ellas:
vrrp_instance
define una instancia individual delVRRP
protocolo que se ejecuta en una interfaz. He nombrado arbitrariamente esta instancia VI_1.state
define el estado inicial en el que debe comenzar la instancia.interface
define la interfaz queVRRP
sigue funcionando.virtual_router_id
es el identificador único que aprendiste en el primer artículo de esta serie.priority
es la prioridad anunciada que aprendiste en el primer artículo de esta serie. Como aprenderá en el próximo artículo, las prioridades se pueden ajustar en tiempo de ejecución.advert_int
especifica la frecuencia con la que se envían los anuncios (1 segundo, en este caso).authentication
especifica la información necesaria para los servidores que participan enVRRP
para autenticarse entre sí. En este caso, se define una contraseña simple.virtual_ipaddress
define las direcciones IP (puede haber varias) queVRRP
es responsable de.
Si está utilizando un firewall basado en host, como firewalld
o iptables
, debe agregar las reglas necesarias para permitir el tráfico del protocolo IP 112. De lo contrario, Keepalived
El método de publicidad de no funcionará. La configuración de un firewall basado en host está fuera del alcance de este artículo, pero asegúrese de consultar algunos de los otros artículos de Enable Sysadmin sobre iptables y firewalld para obtener más información.
Con la configuración anterior en su lugar, puede iniciar Keepalived
en ambos servidores usando systemctl start keepalived
y observe las direcciones IP en cada máquina. Observe que server1 se ha iniciado como VRRP
maestro y posee la dirección IP compartida (192.168.122.200), mientras que las direcciones IP del servidor2 permanecen sin cambios:
server1# ip -brief address show
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.168.122.101/24 192.168.122.200/24 fe80::5054:ff:fe82:d66e/64
server2# ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.168.122.102/24 fe80::5054:ff:fe04:2c5d/64
Una vez que hayas confirmado que Keepalived
se ha iniciado en ambos servidores y el servidor 1 es el maestro activo, puede probar la funcionalidad de conmutación por error "cambiando" el VIP al otro servidor. Deteniendo Keepalived
en el servidor1, el maestro activo deja de enviar anuncios y el servidor2 se hace cargo del VIP:
server1# systemctl stop keepalived
server1# ip -brief address show
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.168.122.101/24 fe80::5054:ff:fe82:d66e/64
server2# ip -brief address show
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.168.122.102/24 192.168.122.200/24 fe80::5054:ff:fe04:2c5d/64
¡Y eso es! Ahora tiene un par básico de servidores redundantes.
Supervisión del tráfico VRRP
Como se discutió en el primer artículo de la serie, comprender el comportamiento a nivel de protocolo de VRRP
es importante para que pueda configurarlo correctamente y solucionarlo. Si ha leído los artículos anteriores de Enable Sysadmin sobre el análisis del tráfico de red, probablemente se sienta cómodo usando tcpdump
. Capturas de paquetes de línea de comando usando tcpdump
puede revelar todo lo que necesita saber sobre su VRRP
configuración, incluyendo el VRID y la prioridad del maestro activo:
server1# tcpdump proto 112
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:51:01.353224 IP 192.168.122.102 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 254, authtype simple, intvl 1s, length 20
16:51:02.353673 IP 192.168.122.102 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 254, authtype simple, intvl 1s, length 20
16:51:03.353753 IP 192.168.122.102 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 254, authtype simple, intvl 1s, length 20
^C
3 packets captured
3 packets received by filter
0 packets dropped by kernel
Pruébelo usted mismo ejecutando tcpdump
mientras voltea el VIP de un lado a otro entre los dos servidores.
Conclusión
Este artículo lo llevó a través de los fundamentos de Keepalived
instalacion y configuracion. Aprendiste a instalar Keepalived
a través del administrador de paquetes y compilándolo desde la fuente, y creó un Keepalived
básico configuración para habilitar la conmutación por error VIP entre dos hosts. Finalmente, probó esta configuración y usó tcpdump
observar VRRP
tráfico. En el próximo artículo de esta serie, lo guiaré a través de algunos Keepalived
avanzados. configuraciones.
[ ¿Necesita aprender más sobre la administración del sistema Linux? Considere tomar un curso de administración de sistemas de Red Hat. ]