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_instance
definiert eine einzelne Instanz desVRRP
Protokoll, das auf einer Schnittstelle ausgeführt wird. Ich habe diese Instanz willkürlich VI_1 genannt.state
definiert den Anfangszustand, in dem die Instanz starten soll.interface
definiert die Schnittstelle, dieVRRP
läuft weiter.virtual_router_id
ist die eindeutige Kennung, die Sie im ersten Artikel dieser Serie kennengelernt haben.priority
ist 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_int
gibt die Häufigkeit an, mit der Werbung gesendet wird (in diesem Fall 1 Sekunde).authentication
gibt die Informationen an, die für Server erforderlich sind, die anVRRP
teilnehmen miteinander zu authentifizieren. In diesem Fall wird ein einfaches Passwort definiert.virtual_ipaddress
definiert die IP-Adressen (es können mehrere sein), dieVRRP
ist 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. ]