High Availability
Resumen
Un firewall es un punto único de falla: si se apaga, se avería o se reinicia por una actualización, la red se queda sin salida. High Availability (HA) resuelve esto con dos firewalls que trabajan como un par. En el modo Active/Passive (el más usado), uno está activo y procesa todo el tráfico, y el otro está pasivo: no pasa tráfico pero mantiene una copia exacta de la configuración y de las sesiones. Si el activo falla, el pasivo se convierte en activo automáticamente y los usuarios ni lo notan, porque sus conexiones ya estaban sincronizadas. En Active/Active los dos pasan tráfico a la vez (diseño más complejo, para casos concretos).
Los dos firewalls se hablan por enlaces dedicados: HA1 (control: latidos o heartbeats y sincronización de la configuración) y HA2 (datos: sincronización de las sesiones). El par decide quién es el activo según la prioridad (el valor más bajo gana) y vigila su salud con Link Monitoring (interfaces físicas), Path Monitoring (ping a destinos importantes) y los latidos de HA1. Esta nota configura un par Active/Passive paso a paso con los valores del laboratorio PCNSE, explica qué se sincroniza y qué no, cómo probar un failover y qué hacer cuando falla la sincronización.
Requisitos previos
- Dos firewalls idénticos: mismo modelo, misma versión de PAN-OS, mismo contenido (App/Threat, Antivirus, GlobalProtect), mismas licencias y mismas interfaces físicas (cantidad y tipo) (ver Licensing y Subscriptions y Updates y Upgrades)
- Una interfaz libre en cada firewall para HA1 y otra para HA2 (en el lab PCNSE:
ethernet1/7yethernet1/8), conectadas entre sí por un cable o una VLAN dedicada (ver Lab PCNSE (curso)) - Una IP en cada enlace HA, en una subred propia que no se use para nada más
- Un Group ID común (1 a 63) en ambos firewalls
- La interfaz de gestión (MGT) de cada firewall con su propia IP; no se sincroniza (ver Initial Setup y Management Plane)
- Un plan de prioridades: cuál será el activo preferido (prioridad más baja)
- Decidir si habrá Preempt (por defecto está deshabilitado)
- Interfaces de datos conectadas de forma idéntica en ambos equipos hacia los mismos switches/VLAN
Conceptos clave
| Concepto | Qué es |
|---|---|
| Active/Passive | Un firewall pasa tráfico y el otro espera sincronizado |
| Active/Active | Ambos pasan tráfico; requiere HA3 y más diseño |
| HA1 (Control Link) | Capa 3, con IP; latidos (heartbeats) y sincronización de la configuración. Si no hay puerto libre, puede usarse la interfaz MGT |
| HA2 (Data Link) | Sincroniza la tabla de sesiones, ARP, SA de IPsec, etc. |
| HA3 | Reenvío de paquetes entre los dos en Active/Active |
| Backup de HA1/HA2 | Enlaces alternativos para no perder la comunicación si cae el principal (por ejemplo Heartbeat Backup por la MGT) |
| Device Priority | Número que decide quién es el activo: el valor más bajo gana |
| Preemptive | Si está activado, el firewall de mejor prioridad recupera el rol activo cuando vuelve; por defecto está desactivado |
| Link Monitoring | Vigila interfaces físicas; si caen, provoca failover |
| Path Monitoring | Vigila destinos por ping (en un Virtual Router); si fallan, provoca failover |
| Heartbeat/Hello | Mensajes por HA1 que indican que el peer vive |
Tres disparadores de failover: Link Monitoring, Path Monitoring y la pérdida de Heartbeat/Hello por HA1.
Estados de HA: initial, active, passive, suspended, non-functional, tentative.
graph LR subgraph FW18["FW-18 (prioridad 95, activo)"] A1["HA1 ethernet1/7<br/>10.1.1.18"] A2["HA2 ethernet1/8<br/>10.2.2.18"] AD["Interfaces de datos"] end subgraph FW19["FW-19 (prioridad 105, pasivo)"] P1["HA1 ethernet1/7<br/>10.1.1.19"] P2["HA2 ethernet1/8<br/>10.2.2.19"] PD["Interfaces de datos<br/>(sin tráfico)"] end A1 <-- "HA1: latidos y config" --> P1 A2 <-- "HA2: sesiones" --> P2 NET["Red"] --- AD NET -. "en espera" .- PD
Qué se sincroniza y qué no:
| Sí se sincroniza | Por qué enlace |
|---|---|
| Objetos, Security Policy, NAT, routing, perfiles, zonas | HA1 (Config Sync) |
| Tabla de sesiones, reenvío, ARP, SA de IPsec | HA2 (Session Sync) |
| No se sincroniza | Motivo |
|---|---|
| IP de MGT, hostname | Es propio de cada equipo |
| Configuración de los enlaces HA | Es distinta en cada equipo (IP propia, prioridad) |
| Serial y licencias | Cada equipo tiene la suya |
El efecto del failover en los usuarios
Si HA2 sincroniza las sesiones, el failover es transparente: las conexiones establecidas continúan. Sin HA2 (o con Session Synchronization desactivado), las sesiones se pierden y los clientes deben reconectar.
Configuración (Ejemplo, Lab PCNSE)
Valores del laboratorio PCNSE: FW-18 (activo, prioridad 95) y FW-19 (pasivo, prioridad 105). HA1 en ethernet1/7 (10.1.1.18 y 10.1.1.19, /24); HA2 en ethernet1/8 (10.2.2.18 y 10.2.2.19, /24). Group ID 1.
Variante del laboratorio Network Security Engineering
En ese laboratorio el par es
FW-A(.51) yFW-B(.52), con HA1 enethernet1/6(10.1.1.51y10.1.1.52) y HA2 enethernet1/7(10.2.2.51y10.2.2.52), prioridad95en el activo (ver Lab Network Security Engineering (curso)). Es la misma lógica con otros números.
1. Preparar las interfaces HA
- Network > Interfaces > Ethernet >
ethernet1/7> Interface TypeHA. OK. - Network > Interfaces > Ethernet >
ethernet1/8> Interface TypeHA. OK. - Confirma que ambos enlaces están conectados entre los dos firewalls (mismo cable o VLAN).
2. Firewall activo (FW-18)
- Device > High Availability > Setup (engranaje).
- Marca Enable HA.
- Group ID
1, ModeActive Passive, marca Enable Config Sync. - Peer HA1 IP Address
10.1.1.19(la del otro firewall). - Pestaña Active/Passive Settings: Passive Link State
Auto, Monitor Fail Hold Down Time1minuto. - Pestaña Election Settings: Device Priority
95, Preemptive (déjalo desactivado salvo que lo necesites), Heartbeat Backup (marca para usar la MGT como respaldo de HA1), HA Timer SettingsRecommended. - Sección Control Link (HA1): Port
ethernet1/7, IPv4/IPv6 Address10.1.1.18, Netmask255.255.255.0, Monitor Hold Time3000ms. - Sección Data Link (HA2): marca Enable Session Synchronization, Port
ethernet1/8, IPv4 Address10.2.2.18, Netmask255.255.255.0, Transportethernet. - Opcional en el pasivo: HA2 Keep-alive (con Action
log-only, Threshold10000ms). - OK y Commit.
set deviceconfig high-availability enabled yes
set deviceconfig high-availability group group-id 1 mode active-passive
set deviceconfig high-availability group peer-ip 10.1.1.19
set deviceconfig high-availability group election-option device-priority 95
set deviceconfig high-availability group configuration-synchronization enabled yes
set deviceconfig high-availability group state-synchronization enabled yes
set deviceconfig high-availability interface ha1 port ethernet1/7 ip-address 10.1.1.18 netmask 255.255.255.0
set deviceconfig high-availability interface ha2 port ethernet1/8 ip-address 10.2.2.18 netmask 255.255.255.0
Si un comando no coincide con tu versión, usa Tab o ?.
3. Firewall pasivo (FW-19)
Misma configuración con los valores cruzados:
- Group ID
1, ModeActive Passive, Enable Config Sync. - Peer HA1 IP Address
10.1.1.18. - Device Priority
105. - HA1: Port
ethernet1/7, IP10.1.1.19, /24. - HA2: Port
ethernet1/8, IP10.2.2.19, /24, Enable Session Synchronization. - OK y Commit.
Si activas Preemptive, debe estar activado en ambos firewalls; si no, no funciona como esperas.
4. Link Monitoring
- Device > High Availability > Link and Path Monitoring (o la pestaña Link Monitoring según la versión).
- Marca Enable en Link Monitoring. Failure Condition
AnyoAll. - Link Group > Add: Name
Uplinks, Enable, Failure ConditionAny, y las interfaces a vigilar (por ejemploethernet1/1). - Si una interfaz monitoreada cae, el firewall activo hace failover.
- OK y Commit.
5. Path Monitoring
- Device > High Availability > Link and Path Monitoring > Path Monitoring: marca Enable. Failure Condition
AnyoAll. - Path Group > Add: Type
Virtual Router, NameVR-default(el Virtual Router), Enable, Failure ConditionAnyoAll. - Ping Interval (en el lab
200ms) y Ping Count (10). - Destination IP Group > Add: la IP a monitorear (por ejemplo
23.1.2.53). - Si no se alcanzan los destinos, el activo hace failover al pasivo (que sí los alcance).
- OK y Commit.
Path Monitoring puede monitorear varias IP, y con Any/All decides si falla con una o con todas.
6. Probar un failover
- En el activo: Device > High Availability > Operational Commands > Suspend local device, o por CLI
request high-availability state suspend. - El pasivo pasa a
activeen segundos. Los pings continuos de los clientes deben perder pocos o ningún paquete. - Para volver: Make local device functional (o
request high-availability state functional). - Si Preempt está activado, el firewall con el valor de prioridad más bajo (el preferido) recupera el rol al volver; si no, el que quedó activo se mantiene.
Verificación
| Comando o lugar | Qué debes ver | Si no lo ves |
|---|---|---|
| Dashboard > widget High Availability | Mode Active Passive, Local Active/Peer Passive, Running Config: Synchronized, y App/Threat/AV/PAN-OS/GP Version = Match; HA1, Heartbeat Backup y HA2 en Up | Si Running Config dice Not Synchronized, usa Sync to peer (ver errores comunes) |
show high-availability state | Local: active y Peer: passive (y los estados correctos) | Si ve initial o non-functional, revisa los enlaces y la configuración |
show high-availability all | Detalle completo: configuración, estado de HA1/HA2, versiones, motivo de estado | Útil para entender por qué no sincroniza |
show high-availability link-monitoring / path-monitoring | Grupos y destinos con estado up | Si hay down, ese es el disparador |
show high-availability transitions | Historial de cambios de estado con motivo | Ayuda a saber por qué hubo un failover |
ping source 10.1.1.18 host 10.1.1.19 | Respuestas entre los enlaces HA1 | Si no, revisa el cable, IP o VLAN |
show session info en ambos | Número de sesiones parecido entre el activo y el pasivo | Si el pasivo tiene casi cero, la sincronización de sesiones falla |
Monitor > Logs > System (subtype eq ha) | Eventos de HA: cambios de estado, pérdida de enlaces | Muestran el motivo exacto de un failover |
| Prueba de ping continuo durante el failover | Pérdida de 0 a pocos paquetes | Si hay pérdida larga, revisa HA2 y el tiempo de convergencia en el switch |
Errores comunes
Los firewalls no se ven (peer unknown o initial)
- Causa: HA1 mal conectada, IP o máscara mal, Group ID distinto, interfaz sin tipo
HA, o falta commit. - Revisa:
ping source 10.1.1.18 host 10.1.1.19,show high-availability ally el cableado. - Solución: corrige IP/cable/tipo de interfaz y haz commit en ambos.
Running Config aparece Not Synchronized
- Causa: un firewall tiene cambios que el otro no (por ejemplo, un commit hecho solo en uno), versiones distintas o falta Enable Config Sync.
- Revisa:
show high-availability ally el widget. - Solución: en el activo, usa Sync to peer (Dashboard o Device > High Availability > Operational Commands > Synchronize config). Haz los cambios de configuración siempre en el activo.
Las versiones no coinciden (Mismatch)
- Causa: PAN-OS, App/Threat, Antivirus o GlobalProtect distintos.
- Solución: iguala las versiones en ambos antes de continuar (ver Updates y Upgrades, que incluye el orden de actualización de un par HA).
Failover inesperado
- Causa: Link o Path Monitoring detectó una caída, o se perdieron los latidos de HA1.
- Revisa:
show high-availability transitionsy Monitor > Logs > System. - Solución: corrige la causa (enlace, destino de ping) y ajusta tiempos o criterios
Any/Allsi son demasiado sensibles.
Después del failover las sesiones se pierden
- Causa: Session Synchronization está desactivado o HA2 no funciona.
- Revisa: widget HA (HA2
Up) yshow session infoen el pasivo. - Solución: activa Enable Session Synchronization y revisa el enlace HA2. Las sesiones de ciertos tipos (por ejemplo algunas con decryption o sin sincronizar) pueden reiniciarse.
Dos firewalls activos a la vez (split-brain)
- Causa: HA1 y todos los enlaces de respaldo cayeron, y cada uno cree que el otro murió.
- Solución: usa un Heartbeat Backup (por la MGT) y enlaces redundantes; restaura la comunicación y verifica el estado.
El pasivo no recupera el rol deseado al volver el primario
- Causa: Preempt está desactivado (por defecto) o solo activado en un lado.
- Solución: activa Preemptive en ambos si quieres que el de valor de prioridad más bajo (el preferido) vuelva a ser el activo; ten en cuenta que causa un segundo cambio de rol.
Las interfaces no suben en el pasivo tras el failover
- Causa: Passive Link State
Shutdowno interfaces con configuración distinta. - Solución: usa Passive Link State
Auto(las interfaces del pasivo quedan arriba y no reenvían tráfico) y revisa que ambos equipos tengan los mismos tipos de interfaz.
Cambié algo en el pasivo y se perdió
- Causa: la configuración se sincroniza del activo al pasivo; los cambios locales en el pasivo se sobrescriben.
- Solución: haz los cambios en el activo.