Fortigate HA Cluster

Dieser Blogbeitrag beschreibt die Funktionsweise und Konfiguration von einem Fortigate HA Cluster mit Fortigate Firewalls unter Forti OS 6.2.5. Das dafür verwendete Protokoll ist das Fortigate Clustering Protocol (FGCP), welches folgende Funktionen vereint:

  • Ausfallsicherheit: Durch permanente Heartbeat-Pakete kann selbst bei Ausfall einer Firewall eine Ausfallzeit der Dienste von weniger als einer Sekunde realisiert werden. Der Einsatz von virtuellen MAC Adressen dient dazu, dass Clients bei einem Failover keine neuen Adressen lernen müssen.
  • Session Failover: Im Normalzustand werden permanent die Zustände von TCP, SIP und IPSec Sessions auf alle Cluster-Mitglieder verteilt, so dass im Fehlerfall auch diese Protokolle ohne erneuten Verbindungsaufbau weiterlaufen können.
  • Lastverteilung: Mit Hilfe eines Active-Active Clusters verteilt sich die Session Last auf alle Cluster-Mitglieder, so dass sich auch ressourcenintensive Sicherheitsfeatures (z.B. Virusscan) auf mehrere Systeme verteilen lassen.
  • Virtuelles Clustering:  Als Erweiterung des FGCP lässt sich das Clustering auch auf virtualisierte Firewalls mit mehreren VDOMS erweitern.
  • Full-Mesh HA: Vor- und nachgelagerte Switches können vollvermascht an den Cluster mit Hilfe von LACP angeschlossen werden, so dass auch die angeschlossene Layer-2 Umgebung voll redundant aufgebaut werden kann.

Jedes Mitglied einer Clustergruppe ist eine sog. Einheit (Unit). Eine dieser Einheiten wird als primäre Firewall ausgewählt, die die Konfiguration an alle weiteren Einheiten verteilt. Ebenso können Statusinformation über aktive Sessions synchronisiert werden, so dass z.B. TCP Sessions bei einem Ausfall ohne TCP Verbindungsaufbau weiterlaufen. Die Synchronisierung der Einheiten läuft über dedizierte Heartbeat Interfaces.

Voraussetzungen

Bevor ein Cluster in Betrieb genommen werden kann müssen folgende Voraussetzungen erfüllt sein:

  • Innerhalb des Clusters muss dasselbe FortiGate Firewall Modell eingesetzt werden.
  • Die Firmware Version muss auf allen Einheiten identisch sein.
  • Alle genutzten Interfaces müssen mit statischen Adressen versehen sein. DHCP oder PPPoE können Sie erst aktivieren, wenn Sie den Cluster formiert haben.
  • Alle Einheiten müssen den gleichen Lizensierungsstand aufweisen. Wenn es Unterschiede gibt, dann wird der Cluster nur die Lizenzen aktivieren, die auf allen Einheiten identisch sind. Ausnahme bildet die FortiToken Lizenz.

Testaufbau

Zur Veranschaulichung der Konfiguration dient folgender Testaufbauvon dem Fortigate HA Cluster, bestehend aus zwei FortiGate 50E und einem nachgelagerten Aruba 2930F Switch

Im produktiven Umfeld würde man, sofern verfügbar, den Switch mit geeigneten Virtualisierungstechniken (VSF, IRF, VSS oder änlichen) ebenfalls redundant auslegen.

Wenn die beiden Firewalls räumlich getrennt sind, wäre auch der Transport der Heartbeat-Pakete über ein separates VLAN möglich.

Konfiguration

Die Konfiguration erfolgt in folgenden Schritten:

1. Hostnamen vergeben

Da die Hostnamen nicht synchronisiert werden, müssen Sie diese eindeutig vergeben. In unserem Fall heißen die Einheiten Primary und Secondary.

2. Auf beiden Systemen die Lizenzen aktivieren

3. Fortigate HA Cluster Konfiguration auf Primary durchführen. Hierzu müssen Sie folgende Parameter konfigurieren:

  • Mode: Active-Active oder Active-Passive. Wir wählen hier Active-Passive, so dass ein System keine aktiven Verbindungen hat, sondern nur im Fehlerfall einspringt. Für kleinere Systeme ist das die empfohlene Einstellung. Auf größeren Plattformen hingegen können Sie zur Performancesteigerung auch eine Active-Active Konfiguration erstellen.
  • Device Priority: Ein numerischer Prioritätenwert, bei dem die höchste Priorität dazu führt, dass dieses System die Rolle des Masters annimmt. Wir wählen den Wert 200.
  • Group Name: Alphanumerischer Gruppenname, der im Cluster identisch sein muss.
  • Password: Passwort zu Authentifizierung der Firewalls.
  • Session Pickup: Die Möglichkeit TCP, IPSsec und VPN Sessions auf die anderen Firewalls zu synchronisieren, so dass die Sessions im Fehlerfall ohne Neuaufbau weiterlaufen.
  • Monitor Interfaces: Hier können Sie ein oder mehrere Interfaces auswählen, deren Ausfall zu einem Failover führt.
  • Hearbeat Interface: Mindestens ein, empfohlen zwei physikalische Interfaces um die Heartbeat-Pakete zu übertragen und die Firewalls zu synchronisieren. Hier konfigurieren wir das Interface 5.
  • Heartbeat Priority: Hier kann für jedes Interface eine Priorität angegeben werden.
  • Management Interface Reservation: Hier können Sie physikalische Interfaces definieren, die von der HA Konfiguration ausgenommen sind, um jedes singuläre System über definierte Managementprotokolle (HTTPS, SSH, SNMP usw) ansprechen zu können.

Auf der Primary Firewall sieht die Konfiguration dann so aus:

Auf der Secondary Firewall sieht die Konfiguration identisch aus mit Ausnahme der Device Priorität. Hier können Sie einen kleineren Wert wählen, damit versetzen Sie dieses System in den Standby Modus.

Sobald Sie die beiden Interfaces über die Heartbeat Interfaces verbinden, formiert sich der Cluster. Primary läuft als Master und Secondary als Slave. Statt der Konfigurationsseite wird nun der Status des Clusters angezeigt:

Sie können optional noch Management Interface Reservation konfigurieren, um die beiden Systeme in vorhandene Management- und Monitoring System einzubinden. Auch fürs Troubleshooting ist es zu empfehlen, eine Managemt Interface Reservation einzurichten. Wir gehen dazu mit „Edit“ in die Konfiguration des Clusters:

Mit dieser Einstellung lassen sich nun verschiedene IP Adressen auf den beiden Systemen konfigurieren:

Die Management Interfaces werden in der Cluster Übersicht mit einem Zahnrad und die Heartbeat Interfaces mit einem Herz angezeigt:

Auf den Chassis sollte nun auch die HA LED auf beiden Systemen grün sein:

Failover-Test

Bei einem Ausfall einer Firewall kommt es zu einer kurzen Unterbrechung und die zweite Einheit übernimmt die aktiven Sessions. Um ein Gefühl für die Ausfallzeit zu bekommen lassen wir ein Ping auf eine IP Adresse der Systeme laufen und schalten die aktive Firewall aus:

Im Fortigate HA Cluster Event Log sehen wir folgende Meldungen:

Der Status fehlerhafte HA Status wird auch direkt am Chassis in Form einer roten HA LED angezeigt:

Weitere Dokumentation zu diesem Thema findet sich im FortiOS Handbook – High Availability unter https://docs.fortinet.com

Zurück