Fortigate Cluster Out of Sync

(Dieser Beitrag wurda am 12. Mai 2021 aktualisiert.)

Hilfe, das Cluster ist out of Sync!

Fehlerbild

Im Dashboard ne Warnung und im HA Status ein rotes Kreuz beim Secondary, das sieht nach einem "Out of Sync" aus.

Ok, dann prüfen wir das via SSH anhand der Prüfsummen:

Zuerst Checksum Prüfung

ACHTUNG! Hier Firmware Version 5.2.x und älter…

get system checksum status

gibt uns die Prüfsumme der Primary-Konfig, welche immer identisch zu der des Secondary sein sollte.

Also prüfen wir die Prüfsumme des Secondary:

execute ha manage 1 Admin-Benutzername

Login…

get system checksum status

ACHTUNG! Hier ab Firmware Version 5.4…
Direkt auf dem Primary:

diagnose sys ha checksum cluster

Interessant immer die "all:" Zeile und die passt nicht. Bei einer sauber synchronisierten Konfiguration, stimmen die Prüfsummen exakt überein.

Der Sache müssen wir auf den Grund gehen…

Neuberechnung der Checksum initiieren

Zuerst initiieren wir eine Neuberechnung der Prüfsumme auf dem Primary:

diagnose sys ha checksum recalculate

und prüfen erneut:

diagnose sys ha checksum cluster

Ok, das war’s auch nicht und hat bei mir persönlich auch nie wirklich geholfen.

Die Frage nach dem Log zum Thema Synchronisierung beantworten wir hier:
Kurzum: Stoppen der Synchronisation am Primary, Debug Trace (Troubleshooting) vorbereiten und dann den Sync starten…

execute ha synchronize stop
diag debug reset
diag debug enable
diag debug console timestamp enable
diag debug application hasync -1
diag debug application hatalk -1
execute ha synchronize start

In der Ausgabe sind eventuell Fehler bei der Verbindung oder andere Umgereimtheiten zu entdecken.
Diese Ausgabe kann u.U. auch vom Support eingefordert werden, wenn ein Ticket eröffnet wurde.

System Disks prüfen!

Gerne spinnt ein Cluster Member, wenn die lokale Disk defekt ist, also sofort Status auf beiden Appliances prüfen mit:

get sys status
exec disk list

Sollte alles nichts nützen kann versucht werden, die beiden Konfigurationen der Systeme manuell anzugleichen.

Manuell die Konfiguration abgleichen

Um die Ausgaben von irgendwelchen — More — Zeilen zu verhindern, via SSH am Primary:

config system console
set output standard
end

Dann bei Putty die Log Ausgabe einschalten, "Printable" Output aktivieren und das Ganze in eine Datei bspw. primary-config.log schreiben.
Mit einem simplen

show

erscheint nun die "Running Config" und wird ins File umgeleitet…
Direkt danach das Putty Log wieder auf none umstellen, um Müll im Log zu vermeiden…

Jetzt wieder mit

execute ha manage 1

auf die Secondary Unit wechseln

Nun wieder am Putty die Logging Ausgabe einschalten, das Ganze in eine Datei bspw. secondary-config.log umleiten und "Printable" Output aktivieren.
Mit einem simplen

show

erscheint nun die "Running Config" und wird ins File secondary-config.log geschrieben…

Im Notepadd++ das Plugin "Compare" installieren und die Primry Config öffnen.
Mit Strg+Alt+1 markiert man das File primary-config.log als "First to Compare".
Jetzt die Datei secondary-config.log öffnen und mit Strg+Alt+C vergleichen.
Die unterschiedlichen Stellen werden nun hervorgehoben.
Ignoriert werden können:

  • hostname
  • SN
  • interface dedicated to management
  • password hashes,
  • certificates
  • HA priorities und override settings
  • disk labels

Alles andere sollte nach Möglichkeit identisch sein.
Achtet auf Umlaute und sonstige ASCII Zeichen, egal wo! Oft waren diese eine Ursache für merkwürdige Fehler, da die Konfig nicht sauber übernommen wurde.

Das gilt übrigens immer, speziell vor Firmware Updates!

Sollte das alles fehlschlagen, hilft nur noch der Holzhammer und man muss jetzt physisch, mit Konsolenkabel ans Secondary System!

Disjoin und Rejoin der Secondary Appliance

Dies ist im Übrigen die letzte Möglichkeit, die auch der Support empfiehlt, wenn alle anderen Methoden fehlschlagen und die Festplatten ok sind. Hat man physischen Zugriff auf das System, ist das auch kein Problem und im laufenden Betrieb, ohne Downtime möglich. Aber Achtung! Diese Aktion nur durchführen, wenn man physischen Zugriff auf die Appliances hat!

Also Konsolenkabel an die Secondary Unit und jetzt die Secondary Unit via GUI aus dem Cluster entfernen.
Dann versetzt man das System in den Auslieferungszustand und startet mit der Netzwerk-Konfig bei NULL…

execute factory reset
config system interface
edit [Portname]
set ip [IP Adresse] [Subnetz Maske]
set allowaccess ping https ssh http

Damit sollte man jetzt via SSH ans System kommen, was uns völlig reicht, wenn die HA Ports noch miteinander verbunden sind.

Achtung, vor dem Cluster Join der Secondary prüfen, dass am Secondary KEIN Interface seine IP Adresse via DHCP bezieht, also im Zweifel alle anderen Interfaces auf NULL setzen.

Dann die Secondary wieder via GUI ins Cluster aufnehmen und ein paar Minuten den initialen Sync des Clusters abwarten…