
La configuración de sincronización de estados en pfSense es fundamental para asegurar alta disponibilidad (HA) en entornos donde se requieren firewalls redundantes. Esta funcionalidad permite que dos o más dispositivos pfSense compartan información en tiempo real sobre las conexiones activas, garantizando que el firewall secundario pueda tomar el control sin interrupciones si el principal falla. A través del protocolo PFSYNC, se replican las inserciones, actualizaciones y eliminaciones de estados entre firewalls, lo que resulta esencial para mantener sesiones y tráfico continuo en servicios críticos.
Campos principales
- Synchronize states: Activa o desactiva la sincronización de estados mediante PFSYNC. Cuando está habilitada, cada firewall envía mensajes multicast con la información del estado hacia los demás miembros del grupo de failover.
- Synchronize Interface: Interfaz seleccionada para el envío y recepción de mensajes de sincronización PFSYNC. Se recomienda usar una interfaz dedicada distinta a LAN para optimizar el tráfico y la seguridad, asignando direcciones IP a cada nodo participante en esta interfaz.
- pfsync Synchronize Peer IP: Dirección IP del par con el que se desea sincronizar la tabla de estados. Por defecto, el protocolo utiliza multicast dirigido, pero esta opción permite forzar la sincronización con un IP específico, ideal para entornos donde multicast no está habilitado o controlado.
Compatibilidad de versiones y modelos
Esta configuración de sincronización de estados (PFSYNC) ha sido soportada en pfSense desde versiones bastante tempranas, siendo plenamente funcional en las series 2.x y 2.4.x y superior, extendiéndose a las más recientes 2.6 y 2.7. Es compatible con prácticamente todas las ediciones del software pfSense, incluyendo Community Edition y versiones comerciales basadas en FreeBSD.
En cuanto al hardware, puede implementarse en plataformas físicas y virtuales donde pfSense esté instalado, desde appliances dedicados de Netgate hasta instalaciones en servidores genéricos o entornos virtualizados con adecuada asignación de interfaces de red. Sin embargo, es crucial que el hardware soporte suficiente rendimiento para manejar la replicación de estados sin afectar el throughput del firewall.
Limitaciones relevantes incluyen la dependencia del protocolo multicast y la necesidad de interfaz separada para la sincronización. En redes donde el multicast es restringido o donde no se asignan correctamente IPs en la interfaz pfsync, la sincronización puede fallar, impactando la conmutación por error.
Escenarios de uso y recomendaciones
La sincronización de estados en pfSense se utiliza principalmente en configuraciones de alta disponibilidad tipo CARP, donde dos firewalls actúan en modo primario y secundario para ofrecer continuidad del servicio. En estos escenarios, el mantenimiento de la tabla de conexiones es clave para evitar la interrupción de sesiones como VPNs, conexiones HTTP activas y otros protocolos dependientes del estado.
Sin embargo, activar esta función sin una adecuada planificación puede implicar riesgos. Por ejemplo, si la interfaz de sincronización está saturada o mal configurada, puede generar retrasos en la replicación o incluso pérdida de estados, ocasionando fallos en la conmutación. También es importante considerar la seguridad, reservando la interfaz pfsync solo para tráfico interno y confiable, aislado de redes públicas para evitar ataques.
Comandos de CLI útiles para diagnóstico
pfctl -s state: Muestra la tabla de estados actual, facilitando la comprobación de estados sincronizados.tcpdump -i pfsync0: Captura los paquetes que circulan por la interfaz pfsync para verificar el tráfico de sincronización.ifconfig pfsync0: Permite ver el estado y configuración de la interfaz virtual pfsync.clog /var/log/system.log | grep pfsync: Revisa los logs relacionados a pfsync para identificar errores o problemas en la sincronización.carp status: Obtiene el estado de las interfaces CARP, muy útil cuando se integra con la sincronización de estados.
Buenas prácticas de configuración
- Utilizar una interfaz física o VLAN dedicada exclusivamente para la sincronización pfsync, separada de tráfico LAN o WAN.
- Asignar IPs estáticas acordes a la subred exclusiva de sincronización en cada nodo pfSense.
- Verificar que el tráfico multicast de PFSYNC (IP Protocol 240) sea permitido y confiable entre los dispositivos.
- Probar la sincronización en entornos controlados antes de poner en producción para validar que los estados se replican correctamente.
- Monitorear continuamente la interfaz pfsync y los logs del sistema para detectar posibles anomalías o errores en la replicación.
- Actualizar pfSense a versiones estables recientes para beneficiarse de mejoras en el protocolo pfsync y la estabilidad general.
- Considerar la sincronización XMLRPC además de pfsync para mantener sincronizados otros parámetros de configuración del firewall.