Vous êtes sur la page 1sur 3

KATEMBO KIBASUBWAMO Gratien

SAR/CARS

Présentation de CARP

CARP veut dire “Common Address Redundancy Protocol”. L'objectif premier de ce protocole
est de permettre à un groupe d'hôtes sur un même segment réseau de partager une adresse IP.
CARP est une alternative sécurisée et libre aux protocoles Virtual Router Redundancy
Protocol (VRRP) et Hot Standby Router Protocol (HSRP).

On appelle un groupe d'hôtes utilisant CARP un “groupe de redondance”. Le groupe de


redondance se voit attribuer une adresse IP partagée entre les membres du groupe. Au sein de
ce groupe, un hôte est désigné comme “maître”. Les autres membres sont appelés “esclaves”.
L'hôte maître est celui qui “prend” l'adresse IP partagée. Il répond à tout trafic ou requête
ARP à l'attention de cette adresse. Chaque hôte peut appartenir à plusieurs groupes de
redondance.

Une utilisation commune de CARP est la création d'un groupe de pare-feux redondants.
L'adresse IP virtuelle attribuée au groupe de redondance est désignée comme l'adresse du
routeur par défaut sur les machines clientes. Dans le cas où le pare-feu maître rencontre une
panne ou est déconnecté du réseau, l'adresse IP virtuelle sera prise par un des pare-feux
esclaves et le service continuera à être rendu sans interruption.

Fonctionnement de CARP

L'hôte maître du groupe envoie des annonces régulières sur le réseau local afin que les hôtes
esclaves puissent savoir qu'il est toujours disponible. Si les hôtes esclaves ne reçoivent plus
d'annonce de la part du maître durant une période de temps configurable, alors l'un d'eux
devient le nouveau maître.

Il est possible de faire co-exister plusieurs groupes CARP sur un même segment réseau. Les
annonces de CARP contiennent un identifiant appelé “Virtual Host ID” qui permet à des
membres d'un même groupe d'identifier le groupe de redondance.
Afin d'empêcher un utilisateur malicieux sur le segment réseau d'usurper les annonces CARP,
chaque groupe peut être doté d'un mot de passe. Ainsi chaque paquet CARP envoyé au groupe
est protégé par SHA1 MAC.

Etant donné que CARP est un protocole à part entière, il doit être explicitement autorisé au
niveau des règles de filtrage : pass out on $carp_dev proto carp keep state

$carp_dev est l'interface physique que CARP utilise pour la communication.

Voici un exemple de configuration CARP :

#sysctl -w net.inet.carp.allow=1
#ifconfig carp1 create
#ifconfig carp1 vhid 1 pass mekmitasdigoat carpdev em0 \
advskew 100 10.0.0.1 255.255.255.0
Fonctionnement de pfsync

Par défaut, pfsync(4) n'envoit pas et ne reçoit pas les mises à jour de la table d'état à travers le
réseau. Cependant, les mises à jour peuvent être toujours surveillées en utilisant tcpdump(8)
ou d'autres outils similaires en local sur la machine.
Lorsque pfsync(4) est configuré pour envoyer et recevoir des mises à jour à travers le réseau,
le comportement par défaut consiste à utiliser le multicast sur le réseau local. Toutes les mises
à jour sont envoyées sans authentification. Il faudrait donc utiliser une des deux méthodes
suivantes pour sécuriser les échanges :

1. Connectez les deux pare-feux qui devront échanger les mises à jour à l'aide d'un câble
croisé. Les interfaces physiques ainsi connectées seront utilisées comme syncdev (voir plus
bas).
2. Utilisez l'option syncpeer de la commande ifconfig(8) (voir plus bas) de telle façon à
utiliser des échanges unicast pour envoyer les mises à jour au pair, puis configurez ipsec(4)
entre les deux hôtes pour sécuriser le trafic pfsync(4).
Lorsque les mises à jour sont envoyées et reçues à travers le réseau, les paquets pfsync
doivent être autorisés par les règles de filtrage : pass on $sync_if proto pfsync

$sync_if est l'interface physique utilisée pour la communication pfsync(4).


Voici un scénario typique avec deux pare-feux : fw1 et fw2.

Les interfaces em1 des pare-feux sont connectées à l'aide d'un câble croisé. Les interfaces
em0 sont connectées au LAN et les interfaces em2 sont connectées à un réseau WAN ou à
Internet. Les adresses IP utilisées sont les suivantes :

* fw1 em0 : 172.16.0.1


* fw1 em1 : 10.10.10.1
* fw1 em2 : 192.0.2.1
* fw2 em0 : 172.16.0.2
* fw2 em1 : 10.10.10.2
* fw2 em2 : 192.0.2.2
* IP partagée sur le LAN : 172.16.0.100
* IP partagée sur WAN/Internet : 192.0.2.100

La politique réseau veut que le pare-feu fw1 soit maître.

Configurons d'abord fw1 :


! activation de la préemption et le basculement de toutes les interfaces
# sysctl -w net.inet.carp.preempt=1

! configuration de pfsync
# ifconfig em1 10.10.10.1 netmask 255.255.255.0
# ifconfig pfsync0 syncdev em1
# ifconfig pfsync0 up
! configuration de CARP côté LAN
# ifconfig carp1 create
# ifconfig carp1 vhid 1 carpdev em0 pass lanpasswd \
172.16.0.100 255.255.255.0

! configuration de CARP côté WAN/Internet


# ifconfig carp2 create
# ifconfig carp2 vhid 2 carpdev em2 pass netpasswd \
192.0.2.100 255.255.255.0

Configurons maintenant fw2 :


! activation de la préemption et le basculement de toutes les interfaces
# sysctl -w net.inet.carp.preempt=1

! configuration de pfsync
# ifconfig em1 10.10.10.2 netmask 255.255.255.0
# ifconfig pfsync0 syncdev em1
# ifconfig pfsync0 up

! configuration de CARP côté LAN


# ifconfig carp1 create
# ifconfig carp1 vhid 1 carpdev em0 pass lanpasswd \
advskew 128 172.16.0.100 255.255.255.0

! configuration de CARP côté WAN/Internet


# ifconfig carp2 create
# ifconfig carp2 vhid 2 carpdev em2 pass netpasswd \
advskew 128 192.0.2.100 255.255.255.0

Problèmes opérationnels
Voici quelques problèmes opérationnels communément rencontrés avec CARP/pfsync.
- configuration de CARP
- pfsync au démarrage

Etant donné que carp(4) et pfsync(4) sont des interfaces réseau, elles peuvent être configurées
au démarrage en créant des fichiers hostname.if(5). Le script de démarrage netstart prendra
soin de la création et de la configuration des interfaces.

Vous aimerez peut-être aussi