pfSense Failover : Cluster haute disponibilité avec CARP et pfsync
pfSense Failover : Cluster haute disponibilité avec CARP et pfsync

La haute disponibilité (High Availability – HA) est un mécanisme essentiel en sécurité informatique, permettant d’assurer la continuité de service d’un pare-feu, même en cas de panne matérielle ou logicielle.
Dans un contexte où le pare-feu constitue le point central de contrôle des flux réseau, son indisponibilité peut entraîner une interruption totale des services, voire une exposition accrue aux menaces.
- Présentation
- Protocoles utilisés
- Prérequis
- Configuration de la synchro pfsync
- Configuration CARP avec une VIP
1. Présentation
Avec pfSense, la mise en place d’un cluster HA repose sur un mécanisme de failover actif/passif, permettant de synchroniser plusieurs équipements et de garantir une reprise immédiate du trafic. Cela fonctionant avec la version CE ou « Community Edition » de pfSense.
Le principe est simple :
👉 plusieurs instances de pfSense sont regroupées derrière une adresse IP virtuelle unique (VIP).
👉 cette IP virtuelle est portée par le nœud principal (MASTER).
👉 en cas de défaillance, un nœud secondaire (BACKUP) prend automatiquement le relais.
Ce basculement est transparent pour les utilisateurs et les applications, car l’adresse IP exposée reste identique. Aucune reconfiguration côté client n’est nécessaire.
Ce fonctionnement s’appuie sur des mécanismes similaires à ceux utilisés dans des environnements réseau avancés, tels que :
- VRRP (Virtual Router Redundancy Protocol),
- HSRP (Cisco),
- ou encore GLBP.
Dans pfSense, cette haute disponibilité est implémentée grâce au protocole CARP (Common Address Redundancy Protocol), associé à des mécanismes de synchronisation d’état (pfsync) et de configuration.
🎯 Objectifs de la haute disponibilité avec pfSense
Au travers de cet article « pfSense Failover : Cluster haute disponibilité avec CARP et pfsync« , nous allons mettre en place un cluster pfSense afin de répondre à plusieurs enjeux critiques :
- Assurer la continuité de service en cas de panne d’un pare-feu
- Éviter les interruptions réseau (downtime)
- Maintenir les connexions actives lors d’un basculement
- Renforcer la résilience globale de l’infrastructure
- Sécuriser les accès critiques (WAN, LAN, VPN, services exposés)
🔐 Enjeu sécurité
Au-delà de la disponibilité, la haute disponibilité participe directement à la sécurisation de l’infrastructure :
- un pare-feu indisponible = perte de filtrage → surface d’attaque augmentée
- un failover mal configuré = risque de coupure ou de désynchronisation
- une absence de redondance = point de défaillance unique (SPOF)
Mettre en place un cluster pfSense permet donc de supprimer ce SPOF et d’assurer une continuité de la politique de sécurité, même en situation de crise.
2. Protocoles utilisés
La mise en place d’un cluster haute disponibilité avec pfSense repose sur plusieurs protocoles complémentaires.
Chacun a un rôle bien précis : gérer le failover, maintenir les connexions actives et garantir une configuration identique entre les nœuds.
Les trois éléments clés sont :
- CARP
- pfsync
- XML-RPC
🔁 CARP (Common Address Redundancy Protocol)
Le protocole CARP permet de créer une adresse IP virtuelle (VIP) partagée entre plusieurs pare-feux.
Un des nœuds est en MASTER et porte cette IP. Les autres sont en BACKUP et prêts à prendre le relais.
En cas de panne du MASTER, le basculement est :
- automatique
- rapide
- transparent pour les utilisateurs
Dans ton architecture, des VIP seront configurées côté :
- WAN
- LAN
👉 Cela garantit une redondance complète des flux réseau.
🔄 pfsync (State Synchronization)
Le protocole pfsync permet de synchroniser les connexions actives entre les deux pfSense.
Sans lui, un failover coupe toutes les sessions en cours. Avec lui, les connexions restent actives (web, VPN, SSH…).
Les états synchronisés incluent :
- connexions TCP/UDP
- NAT
- états firewall
La synchronisation passe par une interface dédiée, comme ton réseau 10.180.0.0/24.
👉 C’est un point critique pour garantir une bascule sans impact utilisateur.
⚙️ XML-RPC (Synchronisation de configuration)
Le protocole XML-RPC permet de synchroniser automatiquement la configuration entre les pare-feux.
Dès qu’une modification est faite sur le MASTER, elle est envoyée au BACKUP.
Cela concerne notamment :
- règles firewall
- NAT
- VPN
- utilisateurs
La communication est sécurisée et passe idéalement par le réseau dédié.
⚠️ Attention : Certaines configurations ne sont pas synchronisées (interfaces, paramètres système). Elles doivent être configurées manuellement sur chaque nœud.
En gros :
- CARP → assure le basculement
- pfsync → maintient les connexions
- XML-RPC → synchronise la configuration
3. Prérequis
Avant de mettre en place un cluster haute disponibilité avec pfSense, il est nécessaire de préparer correctement l’infrastructure :

Cluster haute disponibilité pfSense avec CARP pfsync et XML-RPC
En parcourant le schéma, vous avez les prérequis nécessaire à la mise en place d’un cluster pfSense. Pour cela, vous devez avoir :
- Deux pare-feux pfSense car la mise en place d’un cluster nécessite au minimum deux instances pfSense. Ces deux équipements doivent :
- être configurés de manière identique (interfaces, versions)
- disposer de ressources similaires (CPU, RAM)
- être installés sur des environnements fiables
- Trois réseaux distincts pour garantir un fonctionnement optimal
- WAN → accès extérieur
- LAN → réseau interne
- Réseau de synchronisation → communication entre les pfSense.
- Adresses IP propre à chaque interface dont
- une IP physique par pfSense
- une IP virtuelle (VIP) pour le cluster
Dans mon cas, les plages réseaux utilisés sont :
- WAN → 10.0.0.0/24
- LAN → 172.180.0.0/24
- Sync → 10.180.0.0/24
4. Configuration de la synchro pfsync
Avant de commencer la configuration, il est essentiel d’avoir une vision claire de l’architecture cible avec le réseau dédié à la synchronisation :

Architecture pfSense haute disponibilité avec CARP, pfsync et réseau de synchronisation dédié
Pour commencer, nous allons devoir ajouter et configurer une carte réseaux supplémentaire sur chaque pfSense.
Une fois la carte ajoutée, connectez vous à votre 1er pfSense.

Rendez vous dans Interfaces puis Assignments.

Une carte réseau est disponible. Cliquez sur +Add.

Celle-ci deviendra la carte OPT1. N’oubliez pas de cliquez sur Save pour enregistrer la configuration.
Nous allons maintenant configurer cette carte réseau en cliquant sur le menu Interfaces puis OPT1.

Dans la section General Configuration, cochez la case Enable pour activer l’interface. Ensuite, dans la liste déroulante IPv4 Configuration Type, sélectionnez Static IPv4.
Dans la section Static IPv4 Configuration, renseignez l’adresse l’IP que vous avez défini. Chaque pfsense aura sa propre adresse IP comme présenté sur le schéma.

La modification apportée, cliquez sur Save pour la sauvegarder. Un message en haut de la page s’affiche en vous demandant d’appliquer les changements. Cliquez sur Apply Changes.
A cette étape, vous pouvez reproduire les configurations sur votre second pfsense.
Nous allons maintenant attaquer la configuration de la haute disponibilité. Les modifications seront faites sur pfsense01 et pfsense02.
Rendez vous dans menu System puis High Availability Sync :

Commençons par configurer la section State Synchronization Settings (pfsync).

Nous allons maintenant configurer le protocole XML-RPC qui se synchronisera avec le second pfsense sur la nouvelle interface OPT1.
Cochez la case Synchronize states, sélectionnez l’interface OPT1 et ajouter l’adresse IP de cette interface.
Dans la section Configuration Synchronization Settings (XML-RPC Sync), ajoutez y l’adresse IP du second pfsense :

Dans mon cas, l’adresse OPT1 du second pfsense est 10.1890.0.200. Indiquez bien la votre.

Il faut ensuite renseigner les informations d’identification du second pfsense.

Et enfin, sélectionnez l’ensemble des options à synchroniser et cliquez sur Save.
N’oubliez pas de cliquez sur Apply Changes.
Pour la configuration du second parefeu, nous allons nous rendre dans le menu System puis High Availability. Cette fois ci, nous ne compléterons que la section State Synchronization Settings (pfsync).

Cochez la case Synchronize states, sélectionnez l’interface OPT1 et ajouter l’adresse IP de cette interface.
C’est tout pour le second parefeu.
Retournez sur le premier pfsense, vous avez une alerte XML-RPC :

Ceci est normal, nous allons devoir ouvrir un flux sur la carte OPT1 afin de permettre la communication des 2 pfsenses. Par défaut, toutes les communications sont bloquées.
Rendez-vous dans Firewall puis Rules :

Sélectionnez la carte OPT1 puis Add :

Laissez tous les champs par défaut, et cliquez sur Save.

N’oubliez pas de cliquez sur Apply Changes.
Attention : Il est impératif de réaliser la même configuration sur le second pfsense avant de continuer.
Afin de pouvoir valider que la synchronisation fonctionne correctement, rendez vous dans le menu Status puis Filter reload :

Cliquez sur Force Config Sync :

Patienez….

Et dans le résultat, un message vous indique que la synchronisation a été effectué avec succès.
5. Configuration CARP avec une VIP
Le protocole CARP permettra de configurer une adresse VIP (Virtual IP). Elle permettra de contacter les 2 pfsense au travers de la même adresses, quelque soit l’état de l’un des 2. Nous seront toujours dirigés vers le pfsense Master.
Commençons par reprendre le schéma pour avoir une vision claire de l’architecture cible avec la création de la VIP :

Architecture pfSense haute disponibilité avec CARP, pfsync et réseau de synchronisation dédié
Nous allons ajouter la Virtual IP sur le premier pfsense.

Rendez-vous dans Firewall puis Virtual IPs.

Cliquez sur +Add.

Commencez par indiquer le type de carte en cochant CARP.
L’accès à cette carte se fera uniquement via le réseau LAN. Il faut donc sélectionnez ce réseau dans le menu déroulant Interface. Indiquez ensuite sont adresse IP + masque de sous réseau et un mot de passe spécifique à cette VIP.

Cliquez sur Save puis Apply Changes.
La réplication étant active, cette adresse IP sera automatiquement configurer sur votre second pfsense.
Veuillez noter que le premier pfsense sera toujours master, et le second Backup.

Rendez vous dans Status puis CARP (failover) avoir d’avoir le status de chacun de vos pfsense.
Sur mon 1er pfsense :

Sur mon 2e pfsense :

Le 2e pfsense passera en statu Master uniquement en cas de panne du 1er.
Et au retour à la normal du 1er, le 2e repassera en statu Backup.


Commentaires récents