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_instancedefine una instancia individual delVRRPprotocolo que se ejecuta en una interfaz. He nombrado arbitrariamente esta instancia VI_1.statedefine el estado inicial en el que debe comenzar la instancia.interfacedefine la interfaz queVRRPsigue funcionando.virtual_router_ides el identificador único que aprendiste en el primer artículo de esta serie.priorityes 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_intespecifica la frecuencia con la que se envían los anuncios (1 segundo, en este caso).authenticationespecifica la información necesaria para los servidores que participan enVRRPpara autenticarse entre sí. En este caso, se define una contraseña simple.virtual_ipaddressdefine las direcciones IP (puede haber varias) queVRRPes 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. ]