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/