¿Cómo se puede forzar el failover slave -> master (standby -> active) en un cluster HA de fortigate? A simple vista la respuesta debería ser sencilla, pero se debe conocer el funcionamiento del cluster en FortiOS para entender el modo de hacerlo.
Descartando opciones más agresivas, como pudiera ser el apagado del nodo que queremos convertir de master a slave (va a ser que no…), la forma correcta es jugar con el valor de prioridad que tiene asignado cada nodo (device priority). Tengo dudas si este método está activo por defecto (consultadlo directamente en vuestro cluster), en caso contrario entrarían en juego otros valores como los puertos/interfaces monitorizadas, el uptime de cada uno de los sistemas, prioridad por Serial Number, etc.
El orden por defecto en teoría es:
Monitorización de interfaces > Uptime > Prioridad de dispositivo > Serial Number
Ejecutar failover cambiando la prioridad
Para ejecutar el failover, hay que subir la prioridad al nodo standby, a partir de ese momento de forma automática se convertirá en master.Lo primero que debemos hacer es conectar al nodo slave. Para ver el detalle haced clic en el enlace anterior, os llevará al artículo que hice ayer sobre cómo conectar al nodo standby. El resumen:
Forti01B # get system ha status Model: FortiGate-200D Mode: a-p Group: 0 Debug: 0 ses_pickup: disable Master:129 Forti01B FGv00D4615801104 0 Slave :128 Forti01A FGv00D4615801173 1 number of vcluster: 1 vcluster 1: work 169.254.0.1 Master:0 FGv00D4615801104 Slave :1 FGv00D4615801173 FORTI01B # execute ha manage 1 FORTI01A $
Hay que conocer la prioridad asignada a cada uno de los nodos, para ello se ejecuta el comando config system ha
en ambos:
Forti01B # config system ha Forti01B # get [...] priority: 128 [...]
Forti01A $ config system ha Forti01A $ get [...] priority: 127 [...]
Desde el nodo slave (FORTI01A), hay que cambiar la prioridad para que sea superior a la del nodo activo. A partir de ese momento se ejecutará el failover. Ejemplo.
Forti01A $ config system ha set priority 129 end