Configuración CARP en pfSense para alta disponibilidad en WAN

La configuración de una IP Virtual usando el protocolo CARP (Common Address Redundancy Protocol) en pfSense permite implementar alta disponibilidad en la interfaz WAN de forma efectiva. Este método soluciona el problema crítico de continuidad del servicio y evita puntos únicos de falla al definir una IP que puede ser compartida y aportada por diversos firewalls en un clúster, garantizando así la conmutación rápida en caso de fallos de alguno de los nodos.

Campos principales

A continuación se describen los campos más relevantes de esta configuración en pfSense:

  • Type: Se selecciona CARP para indicar que la IP virtual utiliza este protocolo de redundancia.
  • Interface: En este caso se elige WAN, que es la interfaz donde se aplicará la IP virtual para proporcionar alta disponibilidad en el acceso externo.
  • Address type: Habitualmente Single address, para especificar una única IP virtual en la subred WAN.
  • Address(es): La dirección IP virtual que será compartida por los nodos. Debe tener la máscara de red adecuada; en este ejemplo, 192.168.122.100/24.
  • Virtual IP Password: Contraseña compartida para el grupo VHID, que permite la autenticación entre los nodos CARP para evitar interferencias externas.
  • VHID Group: Identificador del grupo CARP; todos los miembros deben usar el mismo VHID para compartir la IP virtual.
  • Advertising frequency: Se compone de dos valores (Base y Skew) que determinan la frecuencia con que cada nodo anuncia la IP virtual. Un valor de skew menor da prioridad para ser maestro, siendo en general 0 el maestro por defecto.
  • Description: Campo libre para anotar la finalidad de la IP virtual, útil para la administración y documentación.

Compatibilidad de versiones y modelos

La funcionalidad CARP está disponible en pfSense en versiones 2.x y superiores, siendo soporte nativo desde sus primeras ediciones basadas en FreeBSD. Los modelos de hardware compatibles incluyen tanto dispositivos físicos orientados a uso empresarial como instalaciones virtuales en plataformas compatibles con FreeBSD.

Es fundamental que todos los nodos del clúster usen versiones compatibles de pfSense para evitar problemas en la interoperabilidad CARP, ya que discrepancias en versiones pueden afectar el protocolo de anuncio y la autenticación de VHID.

Una limitación crucial en importantes escenarios es la necesidad de que el segmento WAN permita tráfico multicast/broadcast necesario para CARP, lo que puede restringir el uso en ciertas redes públicas o infraestructuras que bloqueen esos tipos de paquetes.

Escenarios de uso y recomendaciones

Este tipo de configuración es ideal para infraestructuras que requieren alta disponibilidad en el enlace externo, especialmente para servicios críticos que no pueden permitirse tiempos de inactividad prolongados, como plataformas de comercio electrónico, servidores VPN o portales corporativos.

Un riesgo común es la configuración incorrecta del VHID o de las contraseñas, que puede provocar conflictos o pérdida de sincronización entre nodos, ocasionando failovers erráticos. Asimismo, la frecuencia de anuncios debe ajustarse con cuidado: valores demasiado bajos pueden generar retardo en la conmutación, mientras que muy altos pueden saturar la red.

El uso de CARP en redes con un segmento WAN compartido físicamente entre diferentes entidades requiere protección adicional, ya que la seguridad del password CARP es crucial para evitar que dispositivos no autorizados se posicionen como maestros y secuestren el servicio.

Comandos de CLI útiles para diagnóstico

Para gestionar y depurar configuraciones CARP en pfSense se pueden usar varios comandos desde la consola FreeBSD, accesible vía SSH o directamente:

  • ifconfig: muestra las interfaces y sus IPs virtuales CARP. Es útil para verificar estados (MASTER, BACKUP) y la IP virtual asignada. Ejemplo: ifconfig -v para detalles.
  • netstat -rn: permite ver la tabla de rutas y comprobar que la IP virtual está correctamente enrutable.
  • tcpdump -ni vlan and ether proto 0x112: captura tráfico CARP específico para análisis de anuncios y eventos en tiempo real.
  • grep carp /var/log/system.log: revisión de logs para detectar errores o eventos relacionados con CARP.
  • pfctl -sr: mostrar reglas del firewall para validar que no bloquean los paquetes CARP.

Buenas prácticas de configuración

  • Asegurar un password CARP fuerte y complejo para impedir interferencias o ataques de spoofing.
  • Confirmar que el segmento físico WAN permite tráfico multicast/broadcast necesario para anuncios CARP.
  • Sincronizar correctamente la configuración y versión de pfSense entre todos los nodos participantes.
  • Configurar adecuadamente la frecuencia de anuncios y prioridad para un failover rápido y estable.
  • Documentar claramente el uso de cada IP virtual y la topología del clúster en la administración interna.
  • Probar los failovers simulando caídas para validar la correcta conmutación sin impacto para usuarios finales.
  • Monitorear constantemente el estado con herramientas de red o mediante el registro de eventos que surjan en el sistema.