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/7 y ethernet1/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

ConceptoQué es
Active/PassiveUn firewall pasa tráfico y el otro espera sincronizado
Active/ActiveAmbos 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.
HA3Reenvío de paquetes entre los dos en Active/Active
Backup de HA1/HA2Enlaces alternativos para no perder la comunicación si cae el principal (por ejemplo Heartbeat Backup por la MGT)
Device PriorityNúmero que decide quién es el activo: el valor más bajo gana
PreemptiveSi está activado, el firewall de mejor prioridad recupera el rol activo cuando vuelve; por defecto está desactivado
Link MonitoringVigila interfaces físicas; si caen, provoca failover
Path MonitoringVigila destinos por ping (en un Virtual Router); si fallan, provoca failover
Heartbeat/HelloMensajes 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 sincronizaPor qué enlace
Objetos, Security Policy, NAT, routing, perfiles, zonasHA1 (Config Sync)
Tabla de sesiones, reenvío, ARP, SA de IPsecHA2 (Session Sync)
No se sincronizaMotivo
IP de MGT, hostnameEs propio de cada equipo
Configuración de los enlaces HAEs distinta en cada equipo (IP propia, prioridad)
Serial y licenciasCada 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) y FW-B (.52), con HA1 en ethernet1/6 (10.1.1.51 y 10.1.1.52) y HA2 en ethernet1/7 (10.2.2.51 y 10.2.2.52), prioridad 95 en el activo (ver Lab Network Security Engineering (curso)). Es la misma lógica con otros números.

1. Preparar las interfaces HA

  1. Network > Interfaces > Ethernet > ethernet1/7 > Interface Type HA. OK.
  2. Network > Interfaces > Ethernet > ethernet1/8 > Interface Type HA. OK.
  3. Confirma que ambos enlaces están conectados entre los dos firewalls (mismo cable o VLAN).

2. Firewall activo (FW-18)

  1. Device > High Availability > Setup (engranaje).
  2. Marca Enable HA.
  3. Group ID 1, Mode Active Passive, marca Enable Config Sync.
  4. Peer HA1 IP Address 10.1.1.19 (la del otro firewall).
  5. Pestaña Active/Passive Settings: Passive Link State Auto, Monitor Fail Hold Down Time 1 minuto.
  6. 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 Settings Recommended.
  7. Sección Control Link (HA1): Port ethernet1/7, IPv4/IPv6 Address 10.1.1.18, Netmask 255.255.255.0, Monitor Hold Time 3000 ms.
  8. Sección Data Link (HA2): marca Enable Session Synchronization, Port ethernet1/8, IPv4 Address 10.2.2.18, Netmask 255.255.255.0, Transport ethernet.
  9. Opcional en el pasivo: HA2 Keep-alive (con Action log-only, Threshold 10000 ms).
  10. 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:

  1. Group ID 1, Mode Active Passive, Enable Config Sync.
  2. Peer HA1 IP Address 10.1.1.18.
  3. Device Priority 105.
  4. HA1: Port ethernet1/7, IP 10.1.1.19, /24.
  5. HA2: Port ethernet1/8, IP 10.2.2.19, /24, Enable Session Synchronization.
  6. OK y Commit.

Si activas Preemptive, debe estar activado en ambos firewalls; si no, no funciona como esperas.

  1. Device > High Availability > Link and Path Monitoring (o la pestaña Link Monitoring según la versión).
  2. Marca Enable en Link Monitoring. Failure Condition Any o All.
  3. Link Group > Add: Name Uplinks, Enable, Failure Condition Any, y las interfaces a vigilar (por ejemplo ethernet1/1).
  4. Si una interfaz monitoreada cae, el firewall activo hace failover.
  5. OK y Commit.

5. Path Monitoring

  1. Device > High Availability > Link and Path Monitoring > Path Monitoring: marca Enable. Failure Condition Any o All.
  2. Path Group > Add: Type Virtual Router, Name VR-default (el Virtual Router), Enable, Failure Condition Any o All.
  3. Ping Interval (en el lab 200 ms) y Ping Count (10).
  4. Destination IP Group > Add: la IP a monitorear (por ejemplo 23.1.2.53).
  5. Si no se alcanzan los destinos, el activo hace failover al pasivo (que sí los alcance).
  6. 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

  1. En el activo: Device > High Availability > Operational Commands > Suspend local device, o por CLI request high-availability state suspend.
  2. El pasivo pasa a active en segundos. Los pings continuos de los clientes deben perder pocos o ningún paquete.
  3. Para volver: Make local device functional (o request high-availability state functional).
  4. 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 lugarQué debes verSi no lo ves
Dashboard > widget High AvailabilityMode Active Passive, Local Active/Peer Passive, Running Config: Synchronized, y App/Threat/AV/PAN-OS/GP Version = Match; HA1, Heartbeat Backup y HA2 en UpSi Running Config dice Not Synchronized, usa Sync to peer (ver errores comunes)
show high-availability stateLocal: active y Peer: passive (y los estados correctos)Si ve initial o non-functional, revisa los enlaces y la configuración
show high-availability allDetalle completo: configuración, estado de HA1/HA2, versiones, motivo de estadoÚtil para entender por qué no sincroniza
show high-availability link-monitoring / path-monitoringGrupos y destinos con estado upSi hay down, ese es el disparador
show high-availability transitionsHistorial de cambios de estado con motivoAyuda a saber por qué hubo un failover
ping source 10.1.1.18 host 10.1.1.19Respuestas entre los enlaces HA1Si no, revisa el cable, IP o VLAN
show session info en ambosNúmero de sesiones parecido entre el activo y el pasivoSi 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 enlacesMuestran el motivo exacto de un failover
Prueba de ping continuo durante el failoverPérdida de 0 a pocos paquetesSi 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 all y 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 all y 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 transitions y Monitor > Logs > System.
  • Solución: corrige la causa (enlace, destino de ping) y ajusta tiempos o criterios Any/All si 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) y show session info en 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 Shutdown o 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.