Das proprietäre FortiGate Clustering Protocol (FGCP) ist ein effektives und pragmatisches Clustering-Protokoll. Fortinet verzichtet dabei auf die Verwendung von dedizierten Interface-IPs und einer zusätzlichen Cluster IP pro Interface. Stattdessen wird pro Cluster-Interface mit nur einer IP gearbeitet und dafür aber mit einer eigenen virtuellen MAC-Adresse pro Cluster-Interface. Nur der Cluster-Master darf diese virt. MAC-Adresse nutzen, um produktiven Traffic zu senden (oder zu empfangen). Die phys. MAC-Adressen werden (ausser für spezielle Kommunikation im A/A-Cluster) nicht genutzt.
Folgendes Bild veranschaulicht das Prinzip:
Der Aufbau der virtuellen MAC-Adresse folgt einem bestimmten Schema:
00 : 09 : 0f : 09 : group_id : (vcluster_id+interface_id)
wobei die Werte folgende Bedeutung haben:
- group-id: dieses ist die HA-Group-ID (in hexadezimal umgerechnet)
- vcluster_id: ist 0x00 bei dem Virtual Cluster 1 und 0x80 beim Virtual Cluster 2
- interface_id: das ist der Index vom Interface (Achtung – es geht hier nicht um den SNMP-Index)
Die vcluster_id und die interface_id sind mehr oder weniger fix und können nicht geändert werden. Anders die group_id, diese kann im CLI konfiguriert werden:
config system ha > set group-id ...
Der Defaultwert der Group-ID ist auf 0 gesetzt, mögliche Werte liegen zwischen 0 und 255. Da die Group-ID nur im CLI konfiguriert werden kann, wird diese typischerweise beim Cluster aufbau auf dem Defaultwert belassen. Genau daraus ergibt sich bei manchen Providern dann ein recht mühsames Problem:
Einige Provider scheuen sich davor, für jeden Kunden ein eigenes geroutetes Subnet anzulegen. Statt dessen bekommen mehrere Kunden z.B. über DHCP oder PPPoE unterschiedliche IPs, die aber im gleichen Subnet und damit in der gleichen Broadcast Domain liegen. Andere Provider scheinen darüber hinaus auch mehrere Subnetze auf den gleichen Switch zu legen. Egal welcher dieser beiden Fälle eintritt – wenn nun zwei Kunden dieser ISPs je ein Fortigate Cluster aufbauen, die WAN-Interfaces die gleiche Interface ID besitzen und dann noch die Group-ID auf dem Defaultwert belassen wird, dann errechnet sich bei beiden Fortigate Clustern die gleiche virtuelle MAC Adresse am WAN Interface!
Im einfachsten Fall gibt es dann immer wieder Kommunikationsschwierigkeiten, da die MAC-Table des angeschlossenen ISP Switch zweimal die gleiche MAC-Adresse sieht. Im dümmsten Fall vergibt der DHCP-Server aufgrund der gleichen MAC-Adresse zweimal die gleiche IP-Adresse.
Deswegen unsere Empfehlung:
Setzt immer eine andere Cluster-ID, wenn Ihr ein neues Fortigate Cluster aufbaut!