Hallo Zusammen,

ich versuche gerade einen Router/Firewall hochverfügbar zu machen / neu
aufzubauen.
Ich hab also 2 Maschinen(Debian Buster), die Aktiv-Passiv laufen sollen.
Iptables und Routen sind kein Problem, die werden ganz humorlos auf
beiden Nodes gestartet.

Mit den IPs(Einige...) geht das natürlich nicht.
Ich hab also die ganzen IPs in Resourcen gestopft, die dann im Fall der
Fälle / Wartung umschalten sollen.

root@fw-a:~# pcs status
Cluster name: debian
Stack: corosync
[...]
2 nodes configured
20 resources configured

[Online: [ fw-a fw-b ]
[...]
Full list of resources:
[...]
ENP1-1    (ocf::heartbeat:IPaddr2):    Started fw-a
ENP1-2    (ocf::heartbeat:IPaddr2):    Started fw-a
ENP1-3    (ocf::heartbeat:IPaddr2):    Started fw-a
[...]

Wenn ich fw-a jetzt Standby schicke, kriegt er 1-3 von 20 Adresssen
unerklärlicherweise nicht ordentlich umgeschaltet.
Im Status siehts dann so aus:

ENP1-4    (ocf::heartbeat:IPaddr2):    FAILED fw-a (blocked)
[...]
* ENP1-4_stop_0 on fw-b 'unknown error' (1): call=1102, status=complete,
exitreason='Unable to remove IP [<IP> from interface [ enp1s0 ]',
[...]

Im Log:
[...]
Sep 13 14:46:27 fw-a IPaddr2(ENP1-4)[6270]: ERROR: RTNETLINK answers:
Cannot assign requested address
Sep 13 14:46:27 fw-a IPaddr2(ENP1-4)[6321]: ERROR: Unable to remove IP
[<IP> from interface [ enp1s0 ]
Sep 13 14:46:27 fw-a pacemaker-controld[647]:  notice: Result of stop
operation for ENP1-4 on fw-a: 1 (unknown error)
Sep 13 14:46:27 fw-a pacemaker-controld[647]:  notice:
fw-a-ENP1-4_stop_0:1157 [ ocf-exit-reason:Unable to remove IP ...
[...]

Dummerweise stimmt das so nicht, die betroffenen IPs _werden_
runtergefahren / sind weg.
Mache ich jetzt ein pcs resource cleanup, werden sie auch anstandslos
auf dem zweiten Node hochgefahren...
Ich vermute dass er sich irgendwie verschluckt, weil alle IPs auf einem
Interface liegen und alle gleichzeitig runterreißt?!?
Nacheinander manuell umschalten klappt ohne Probleme.

Hat von Euch jemand Erfahrungen mit solchen Szenarien und eine Idee, wie
man das robust(!) löst?
Die Umschaltung der Resourcen irgendwie staffeln? (constraints?)
Das Hoch/Runterfahren der IPs in Scripte stecken und von Pacemaker
triggern lassen? Oder direkt networkd mit Pacemaker verbandeln?
Wie gesagt, im Grunde genommen soll einfach ein Kübel IPs Active-Passiv
HA laufen.

Danke && Grüße, Falk

by the way Veranstaltungshinweis für Ende kommende Woche/WE:
https://www.datenspuren.de/2019/


Antwort per Email an