Présentation de CARP
Adrien Kunysz
Qu'est-ce que CARP ?
- Common Address Redundancy Protocol
- partage d'une même adresse MAC entre plusieurs machines
- créé par les gens d'OpenBSD comme alternative à VRRP
quelques mots sur ARP
- Address Resolution Protocol
- lie une adresse IP à une adresse MAC
fonctionnement de CARP
- chaque groupe CARP est associé à une adresse MAC virtuelle et comprend un
maître et un ou plusieurs esclaves
- le maître possède l'adresse MAC du groupe et multicast un message annonçant qu'il est actif
- lorsque l'esclave constate que le maître n'envoit plus rien il devient maître
- possibilité de régler le délais entre les annonces pour chaque hôte
- les annonces CARP sont signés avec un HMAC SHA1 (secret partagé)
répartition de charge
- on crée autant de groupes CARP qu'il y a d'hôtes participants
- on choisi des délais d'annonces de telle manière qu'il y ait un
maître préférentiel différent pour chaque groupe
- l'adresse MAC qui est à l'origine de la requète détermine le groupe CARP concerné et donc l'hôte qui répondra
- fonctionne uniquement si le client est sur le même segment réseau
applications
- serveurs
- routeurs et firewalls
réplication
- comme chaque requète peut aller à un serveur/routeur différent, il faut
que les données sur les serveurs/routeurs restent synchronisées
- DNS: c'est fait "naturellement"
- Samba WINS: wrepld (expérimental?)
- routeurs/firewall:
- OpenBSD: pfsync
- Linux: High Availability Linux Firewall (ct_sync)
implémentation actuelles
- OpenBSD (kernel) par Michael Shalayeff et Ryan McBride
- UCARP (userland pour Unix) par Frank Denis (basé sur l'implémentation OBSD)
- FreeBSD (kernel) par Max Laier (basé sur l'implémentation OBSD)
alternatives
- Hot Standby Router Protocol et Virtual Router Redundancy Protocol
- créés et brevetés par Cisco
- pas de support d'IPv6
- pas sécurisé
- uniquement pour les routeurs
- standardisé dans les RFC 2281 et 3768
- Gateway Load Balancing Protocol
- créé par Cisco
- protocoles propriétaires
- uniquement pour les routeurs