Keepalived ist eine Software um Hochverfügbarkeit in Linux Umgebungen zu gewährleisten. Keepalived verwendet u.a VRRP (https://docs.linuxfabrik.ch/software/keepalived.html#vrrp-advertisement)
sudo apt install -y keepalived
Die Konfig liegt unter
/etc/keepalived/keepalived.conf
Das Github Repo verwendet autoconf.
sudo apt install build-essential libssl-dev libnl-3-dev libnl-genl-3-dev autoconf automake libtool git clone https://github.com/acassen/keepalived.git cd keepalived ./autogen.sh ./configure make sudo make install sudo keepalived -v
sudo nano /etc/systemd/system/keepalived.service
[Unit] Description=Keepalived Daemon After=network.target [Service] Type=simple # Log nach Stdout (neeee) # ExecStart=/usr/local/sbin/keepalived --dont-fork --log-console # Log nach syslog ExecStart=/usr/local/sbin/keepalived --dont-fork Restart=always [Install] WantedBy=multi-user.target
sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl enable keepalived sudo systemctl start keepalived
dnf install -y gcc make openssl-devel libnl3-devel autoconf automake libtool git git clone https://github.com/acassen/keepalived.git cd keepalived ./autogen.sh ./configure make sudo make install
sudo nano /etc/systemd/system/keepalived.service
[Unit] Description=Keepalived Daemon After=network-online.target Wants=network-online.target [Service] Type=simple ExecStart=/usr/local/sbin/keepalived --dont-fork --log-console ExecReload=/bin/kill -HUP $MAINPID Restart=always [Install] WantedBy=multi-user.target
| Option | Beschreibung |
|---|---|
| vrrp_instance VI_1 | Definiert eine VRRP-Gruppe (Virtual Router Redundancy Protocol). Alle Server, die zur gleichen Gruppe gehören, müssen denselben Namen und dieselbe `virtual_router_id` haben. |
| state | Startzustand dieser Instanz. Mögliche Werte: MASTER (aktiv) oder BACKUP (passiv). Der tatsächliche Zustand kann sich zur Laufzeit ändern. |
| interface | Netzwerkinterface, über das VRRP-Kommunikation läuft (z. B. `eth0`, `ens160`). |
| virtual_router_id | Eindeutige Gruppen-ID zwischen 1–255. Alle Server in derselben VRRP-Gruppe müssen dieselbe ID verwenden. |
| priority | Priorität dieses Knotens (1–255, Standard = 100). Höherer Wert = höhere Wahrscheinlichkeit, Master zu werden. |
| advert_int | Zeitintervall in Sekunden, wie oft der Master VRRP-Announcements sendet (Standard = 1 s). Kleinere Werte = schnellere Umschaltung. |
| authentication | Abschnitt für Authentifizierung zwischen den VRRP-Knoten. |
| auth_type | Authentifizierungsmethode. Meist PASS (Klartext-Passwort). Alternativ: AH (IPSec-ähnliche Authentifizierung, selten genutzt). |
| auth_pass | Gemeinsames Passwort für alle Knoten dieser VRRP-Instanz. Nur die ersten 8 Zeichen werden verwendet. Muss auf allen Servern identisch sein. |
| virtual_ipaddress | Eine oder mehrere virtuelle IP-Adressen (VIPs), die im Masterzustand auf das Interface gebunden werden. Beim Wechsel zu BACKUP werden sie wieder entfernt. |
vrrp_instance VI_1 {
state MASTER
interface ens160
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass geheim
}
virtual_ipaddress {
172.21.0.166
}
}
vrrp_instance VI_1 {
state BACKUP
interface ens160
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass geheim
}
virtual_ipaddress {
172.21.0.166
}
}
Man kann Prozesse, Dateien, Interfaces und eigene Scripte „tracken“.
Siehe https://docs.linuxfabrik.ch/software/keepalived.html#prozesse-mit-keepalived-tracken.