Im ersten Artikel dieser Reihe, Verwenden von Keepalived zum Verwalten eines einfachen Failovers in Clustern, haben Sie etwas über Keepalived erfahren und das VRRP Protokoll für das Failover einer IP-Adresse von einem Rechner auf einen anderen. Jetzt ist es an der Zeit, sich die Hände schmutzig zu machen und mehr über die Installation und grundlegende Konfiguration von Keepalived zu erfahren . In diesem Artikel richten Sie Keepalived ein Failover zwischen zwei Servern zu ermöglichen. Fangen wir an!
Keepalived-Installation
Keepalived ist in den Standard-Paket-Repositories verfügbar und kann einfach mit yum installiert werden :
[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)
Sie sollten auch wissen, wie man Keepalived kompiliert aus Quellcode. Keepalived ist ein aktiv gepflegtes Projekt und erhält regelmäßig neue Funktionen und Fehlerbehebungen, die möglicherweise nicht in der Paketmanager-Version enthalten sind, wenn Sie sie benötigen. Ich bin beim Schreiben dieser Serie sogar auf Fehler in der aktuellen Version in den Paket-Repositories gestoßen, und ich musste genau dieses Verfahren befolgen, um die neueste Version von Keepalived zu verwenden .
# 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) Basiskonfiguration
Netzwerksymbole in den Diagrammen verfügbar über VRT Network Equipment Extension, CC BY-SA 3.0.
Die Konfigurationsdatei für Keepalived befindet sich unter /etc/keepalived/keepalived.conf . Wie im vorherigen Artikel besprochen, Keepalived kann mehr als nur einfaches VRRP implementieren . Dies führt zu einer Konfigurationsdatei, die abschreckend wirken könnte, wenn Sie sich die Keepalived-Manpage ansehen. Eine einfache Topologie wie die obige kann jedoch mit minimaler Konfiguration erreicht werden.
Das grundlegendste Keepalived Konfiguration ermöglicht eine gemeinsam genutzte IP-Adresse zwischen zwei Servern. In der obigen Topologie ist Server1 der Master und Server2 das Backup. Die Konfiguration für beide Server ist einfach.
Server 1-Konfiguration:
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
}
} Server 2-Konfiguration:
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
}
} Die Konfigurationsdirektiven sollten aus ihren Namenskonventionen ersichtlich sein, aber ich werde sie alle durchgehen:
vrrp_instancedefiniert eine einzelne Instanz desVRRPProtokoll, das auf einer Schnittstelle ausgeführt wird. Ich habe diese Instanz willkürlich VI_1 genannt.statedefiniert den Anfangszustand, in dem die Instanz starten soll.interfacedefiniert die Schnittstelle, dieVRRPläuft weiter.virtual_router_idist die eindeutige Kennung, die Sie im ersten Artikel dieser Serie kennengelernt haben.priorityist die beworbene Priorität, von der Sie im ersten Artikel dieser Serie erfahren haben. Wie Sie im nächsten Artikel erfahren werden, können Prioritäten zur Laufzeit angepasst werden.advert_intgibt die Häufigkeit an, mit der Werbung gesendet wird (in diesem Fall 1 Sekunde).authenticationgibt die Informationen an, die für Server erforderlich sind, die anVRRPteilnehmen miteinander zu authentifizieren. In diesem Fall wird ein einfaches Passwort definiert.virtual_ipaddressdefiniert die IP-Adressen (es können mehrere sein), dieVRRPist verantwortlich für.
Wenn Sie eine hostbasierte Firewall wie firewalld verwenden oder iptables , dann müssen Sie die erforderlichen Regeln hinzufügen, um Datenverkehr des IP-Protokolls 112 zuzulassen. Andernfalls Keepalived Die Werbemethode von funktioniert nicht. Das Konfigurieren einer hostbasierten Firewall ist in diesem Artikel nicht enthalten, aber lesen Sie unbedingt einige der anderen Artikel von Enable Sysadmin über iptables und firewalld, um weitere Informationen zu erhalten.
Mit der obigen Konfiguration können Sie Keepalived starten auf beiden Servern mit systemctl start keepalived und beobachten Sie die IP-Adressen auf jedem Computer. Beachten Sie, dass server1 als VRRP gestartet wurde master und besitzt die gemeinsame IP-Adresse (192.168.122.200), während die IP-Adressen von server2 unverändert bleiben:
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
Sobald Sie dies bestätigt haben, Keepalived auf beiden Servern gestartet wurde und server1 der aktive Master ist, können Sie die Failover-Funktionalität testen, indem Sie die VIP auf den anderen Server „umdrehen“. Indem Sie Keepalived stoppen Auf Server1 hört der aktive Master auf, Werbung zu versenden, und Server2 übernimmt die 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 Und das ist es! Sie haben jetzt ein einfaches Paar redundanter Server.
Überwachung des VRRP-Verkehrs
Wie im ersten Artikel der Serie besprochen, verstehen Sie das Verhalten von VRRP auf Protokollebene ist wichtig, damit Sie es richtig konfigurieren und Fehler beheben können. Wenn Sie die vorherigen Artikel von Enable Sysadmin über die Analyse des Netzwerkverkehrs gelesen haben, sind Sie wahrscheinlich mit der Verwendung von tcpdump vertraut . Befehlszeilenpaketerfassung mit tcpdump kann alles enthüllen, was Sie über Ihren VRRP wissen müssen Konfiguration, einschließlich VRID und Priorität des aktiven Masters:
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
Probieren Sie es selbst aus, indem Sie tcpdump ausführen während Sie den VIP zwischen den beiden Servern hin und her schalten.
Abschluss
Dieser Artikel führte Sie durch die Grundlagen von Keepalived Installation und Konfiguration. Sie haben gelernt, wie man Keepalived installiert über den Paketmanager und durch Kompilieren aus dem Quellcode, und Sie haben ein grundlegendes Keepalived erstellt Konfiguration zum Aktivieren von VIP-Failover zwischen zwei Hosts. Schließlich haben Sie diese Konfiguration getestet und tcpdump verwendet um VRRP einzuhalten Verkehr. Im nächsten Artikel dieser Serie werde ich Sie durch einige fortgeschrittene Keepalived führen Konfigurationen.
[ Möchten Sie mehr über die Linux-Systemadministration erfahren? Erwägen Sie die Teilnahme an einem Red Hat Systemadministrationskurs. ]