Dans le premier article de cette série, Utiliser Keepalived pour gérer le basculement simple dans les clusters, vous avez découvert Keepalived
. et le VRRP
protocole de basculement d'une adresse IP d'une machine à une autre. Il est maintenant temps de vous salir les mains et d'en savoir plus sur l'installation et la configuration de base de Keepalived
. Dans cet article, vous allez configurer Keepalived
pour activer le basculement entre deux serveurs. Commençons !
Installation continue
Keepalived
est disponible dans les référentiels de packages standard et s'installe facilement à l'aide de 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)
Vous devez également savoir comment compiler Keepalived
à partir du code source. Keepalived
est un projet activement maintenu, et il reçoit régulièrement de nouvelles fonctionnalités et des corrections de bogues qui peuvent ne pas être dans la version du gestionnaire de packages lorsque vous en avez besoin. J'ai même rencontré des bogues avec la version actuelle dans les référentiels de packages lors de l'écriture de cette série, et j'ai dû suivre cette procédure exacte pour utiliser la dernière version 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)
Configuration de base

Symboles de réseau dans les diagrammes disponibles via VRT Network Equipment Extension, CC BY-SA 3.0.
Le fichier de configuration pour Keepalived
se trouve dans /etc/keepalived/keepalived.conf
. Comme indiqué dans l'article précédent, Keepalived
fait plus que simplement implémenter VRRP
de base . Cela conduit à un fichier de configuration qui peut sembler intimidant si vous regardez la page de manuel Keepalived. Cependant, une topologie simple comme celle ci-dessus peut être obtenue avec une configuration minimale.
Le plus basique Keepalived
La configuration active une adresse IP partagée entre deux serveurs. Dans la topologie ci-dessus, le serveur1 est le maître et le serveur2 est la sauvegarde. La configuration des deux serveurs est simple.
Configuration du serveur 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
}
}
Configuration du serveur 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
}
}
Les directives de configuration devraient être évidentes à partir de leurs conventions de nommage, mais je vais les parcourir :
vrrp_instance
définit une instance individuelle duVRRP
protocole s'exécutant sur une interface. J'ai arbitrairement nommé cette instance VI_1.state
définit l'état initial dans lequel l'instance doit démarrer.interface
définit l'interface queVRRP
fonctionne.virtual_router_id
est l'identifiant unique dont vous avez entendu parler dans le premier article de cette série.priority
est la priorité annoncée dont vous avez entendu parler dans le premier article de cette série. Comme vous le découvrirez dans le prochain article, les priorités peuvent être ajustées lors de l'exécution.advert_int
spécifie la fréquence à laquelle les publicités sont envoyées (1 seconde, dans ce cas).authentication
précise les informations nécessaires aux serveurs participant auVRRP
pour s'authentifier les uns avec les autres. Dans ce cas, un simple mot de passe est défini.virtual_ipaddress
définit les adresses IP (il peut y en avoir plusieurs) queVRRP
est responsable.
Si vous utilisez un pare-feu basé sur l'hôte, tel que firewalld
ou iptables
, vous devez ajouter les règles nécessaires pour autoriser le trafic IP 112. Sinon, Keepalived
La méthode de publicité de ne fonctionnera pas. La configuration d'un pare-feu basé sur l'hôte n'entre pas dans le cadre de cet article, mais assurez-vous de consulter certains des autres articles d'Enable Sysadmin sur iptables et firewalld pour plus d'informations.
Avec la configuration ci-dessus en place, vous pouvez démarrer Keepalived
sur les deux serveurs en utilisant systemctl start keepalived
et observez les adresses IP sur chaque machine. Notez que le serveur1 a démarré en tant que VRRP
master et possède l'adresse IP partagée (192.168.122.200), tandis que les adresses IP du serveur2 restent inchangées :
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
Une fois que vous avez confirmé que Keepalived
a démarré sur les deux serveurs et que le serveur 1 est le maître actif, vous pouvez tester la fonctionnalité de basculement en « basculant » le VIP sur l'autre serveur. En arrêtant Keepalived
sur le serveur1, le maître actif arrête d'envoyer des publicités et le serveur2 prend le contrôle du 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
Et c'est tout! Vous disposez maintenant d'une paire de serveurs redondants de base.
Surveillance du trafic VRRP
Comme indiqué dans le premier article de la série, comprendre le comportement au niveau du protocole de VRRP
est important pour que vous puissiez le configurer et le dépanner correctement. Si vous avez lu les articles précédents d'Enable Sysadmin sur l'analyse du trafic réseau, vous êtes probablement à l'aise avec tcpdump
. Captures de paquets de ligne de commande à l'aide de tcpdump
peut révéler tout ce que vous devez savoir sur votre VRRP
configuration, y compris le VRID et la priorité du maître actif :
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
Essayez-le par vous-même en exécutant tcpdump
tout en retournant le VIP entre les deux serveurs.
Conclusion
Cet article vous a présenté les principes de base de Keepalived
mise en place et configuration. Vous avez appris à installer Keepalived
via le gestionnaire de paquets et en le compilant à partir des sources, et vous avez construit un Keepalived
de base configuration pour activer le basculement VIP entre deux hôtes. Enfin, vous avez testé cette configuration et utilisé tcpdump
pour respecter VRRP
Circulation. Dans le prochain article de cette série, je vous expliquerai quelques étapes avancées de Keepalived
configurations.
[ Besoin d'en savoir plus sur l'administration système Linux ? Envisagez de suivre un cours d'administration système Red Hat. ]