Sie sind hier

FortiGate - High Availability

Jedes Netzwerk von heute muss mittels Hochverfügbarkeits- und Redundanzlösungen gegenüber den Ausfall von Komponenten abgesichert werden. Bekannt ist Ihnen bestimmt die Technik RSTP (Rapid Spanning Tree Protocol), welche eine redundante aber schleifenfreie Topologie ermöglicht. Protokolle wie VRRP (Virtual Router Redundancy Protocol) oder HSRP (Hot Standby Router Protocol) ermöglichen das redundante Auslegen von Default-Gateways in einem Netzwerk. Auch die FortGate-Firewalls von Fortinet können Hochverfügbar gemacht werden. Wie FGCP (FortiGate Clustering Protocol) im Allgemeinen funktioniert, wollen wir uns nun anschauen.

 

FortiGate HA - Grundlagen

Zwei bis vier FortiGates lassen sich zu einem Hochverfügbarkeitsverbund zusammenführen. Dabei unterscheidet man generell zwischen zwei Modi:

  • Active / Passive: In diesem Szenario gibt es eine Master-FortiGate. Die Übrigen fungieren als Slaves. Sollte der Master ausfallen übernimmt die nächst-priviligiertere FortiGate den Platz des Masters. Somit ist immer nur eine FortiGate gleichzeitig aktiv.
  • Active / Active: Beinhaltet alle Funktionen, die Active / Passive beherrscht. Allerdings verarbeiten alle FortiGates Datenverkehr. Die Mater-FortiGate kann gezielt Datenströme auf andere Slave-FortiGates auslagern, wodurch sich Vorteile in der CPU / ASIC Nutzung ergeben.

Welche FortiGate zum Master ernannt wird, hängt von der Konfiguration des HA-Setup ab. Generell sind zwei Ausführungen möglich (Betrachtete Eigenschaten in absteigender Reihenfolge):

  • Standard: Anzahl an "Monitored Ports" / Uptime / Priorität / Seriennummer
  • Override: Anzahl an "Monitored Ports" / Priorität / Uptime / Seriennummer

Die Override-Methode ermöglicht eine genauere Kontrolle über die Master-Wahl, da sich eine Priorität besser steuern lässt, als die Uptime des Geräts. Die Anzahl an "Monitored Ports" ist standardmäßig am wichtigsten.

Um uns die HA-Funktionen der FortiGates genauer anzuschauen, haben wir zwei FortiGate-1000D zu einem Verbund zusammengeführt. Wir haben uns für Active / Passive als Modus entschieden.

 

FortiGate HA - Active / Passive

Um das Testsetup zu verdeutlichen, habe ich mal ein Bild vom Aufbau gemacht.

Die FortiGates sind über Port9 (LAN) mit dem "internen" VLAN 10 (s. HP Switch) verbunden. Der Port10 wurde als WAN-Port deklariert. Diese Verbindungen terminieren ebenfalls auf dem HP Switch (VLAN 20). Somit sind die beiden Verbindungen logisch isoliert. Jeweils im äußeren und im inneren Netz befindet sich ein Laptop. Die Konfiguration der Schnittstellen für LAN und WAN sowie den Regelsatz lassen wir an dieser Stelle weg, da primär der Fokus auf HA liegen soll.

Um HA zwischen zwei FortiGates aktivieren zu können, bedarf es entweder einer dedizierten Leitung zwischen den Geräten oder man spannt ein separates VLAN, um die sog. "Heartbeat-Interfaces" zu verbinden. Für welche Methode Sie sich letztendlich entscheiden, hängt von den Gegebenheiten Ihres Netzwerks ab. In unserem Falle hier haben wir uns für eine dedizierte Leitung entschieden. Dies macht Sinn, da die FortiGates lediglich wenige Zentimeter voneinander getrennt sind. Weitere Strecken überbrücken Sie am besten mit Glasfaser oder mittels des bereits angesprochenen VLANs.

Um einen HA-Cluster aufzubauen, benötigt man zuerst einmal dedizierte Heartbeat-Interfaces. Dies ist eine Empfehlung des Herstellers Fortinet. Also wechselt man auf eine der Schnittstellen (z.B.: Port32), vergibt bspw. den Namen "HA_1" und konfiguriert eine IP-Adresse (IP-Adresse ist optional, da für FGCP virtuelle Adressen generiert werden).

Die Einstellungen erledigt man analog auf der anderen FortiGate. Dabei ist es egal, ob man nun wieder Port32 oder doch Port31 nehmen will. Hauptsache der IP-Adressbereich passt. Anschließend konfiguriert man über "Config -> HA" den Cluster. Für den designierten Master wählt man eine hohe Priorität, z.B.: 255, was gleichzeitig auch das Maximum wäre. Für die Slaves nimmt man Abstufungen. Wichtig ist, dass die Konfiguration des Gruppennamens und des Passworts identisch ist. Abschließend legt man noch die die Ports fest, die für den Heartbeat genutzt werden sollen, sowie die Ports (=Netze), die überwacht werden sollen. Überwacht heißt in dem Sinne, dass ein Failover eingeleitet wird, sollte bspw. das Kabel vom aktuellen Master gezogen wrden, über welches man das Netzwerk erreicht.

Die HA-Konfiguration muss auf allen FortiGates identisch sein. Ist man mit seinen Einstellungen zufrieden, dann werden die Heartbeat-Interfaces verkabelt. Bei korrekter Konfiguration wird sich der Cluster erfolgreich zusammenfügen.

FortiGate HA - Umschaltzeiten (Active / Passive)

Die Konfiguration von HA ging gut von der Hand. Wie Sie im Testaufbau erkennen können, befinden sich zwei Laptops in den beiden Netzwerken. Wir wollen nämlich herausfinden, wie schnell die Slave-FortiGate übernimmt, sobald der Master entdeckt, dass ihm ein "Monitored Port" abhanden gekommen ist. Um diese Umschaltzeiten im Milisekundenbereich zu messen, verwenden wir das selbstprogrammierte Tool FAT (Failover Approximation Tool), welches mit hoher Kadenz UDP-Pakete verschickt, die gemessenen Werte festhält und abschließend eine Analyse liefert. Der Failover wurde provoziert, in dem wir immer ein Kabel vom jeweiligen Master getrennt haben. Die Ergebnisse sind in der folgenden Tabelle hinterlegt (Diese Werte wurden unabhängig von uns gemessen und decken sich möglicherweise nicht mit Herstellerangaben):

Anzahl Messreihen 10
Pakete pro Sekunde (ø) 367
Gesendete Pakete pro Messreihe (ø) 2363
Empfangene Pakete (ø) 1949
Paketverlust (ø) 413
Failoverzeit (ø) 1,164 Sekunden

Mit den Default-Einstellungen schaltet ein Active / Passive Cluster im Schnitt nach 1,164 Sekunden um. Wer bestimmte Timer (Hello, Dead, usw.) granular einstellen möchte, der kann dies über die CLI machen