CARP

Common Address Reduncancy Protocol (CARP) on Michael Shalayeffin ja Ryan McBriden luoma vastine IETF:n reitittimien kahdennusprotokolla VRRP:lle. CARP ilmestyi ensimmäistä kertaa OpenBSD 3.5:een. CARP:sta on portattu versiot mm. FreeBSD:lle, NetBSD:lle sekä GNU/Linux:lle.

Konfiguroidessa CARP:a luodaan virtuaaliverkkoliitäntä, jonka IP-osoite on klustereiden jakama IP, ja johon vastaa master-laite. Muut laitteet ovat backup-koneita ja ne omivat IP-osoitteen vasta, kun master-laite on lakannut lähettämästä CARP-sanomia. Täten yksi kone vastaa koko ajan carpattavaan IP-osoitteeseen, sekä jokainen klusterin kone myös omaan fyysiseen osoitteeseensa.

Virtuaalisen IP-osoitteen lisäksi CARP-klusterilla on virtuaalinen MAC-osoite. Tämä on muotoa 00-00-5e-00-00-01-vhid, jossa vhid on CARP-verkkoliitännän id. Vhid-arvo määräytyy väliltä 1-255, joten yhdessä verkkosegmentissä voi olla korkeintaan 255 CARP-osoitetta.

CARP:n konfigurointi:
ifconfig carp0 create
ifconfig carp0 192.168.0.1 netmask 255.255.255.0 vhid 1 pass asdfasdf advskew 100,

jossa virtuaaliverkkoliitäntä on carp0, 192.168.0.1 carp-osoite, vhid viittaa CARP-id:hen joka on maksimissaan 255, pass SHA-1 HMAC-salauksen avaimeen sekä advskew-arvo CARP-sanomien lähetystiheyteen. Pienemmällä lähetystiheydellä lähettävä on oletusarvoisesti master-laite. Jos PF:ssä on käytössä binat-sääntöjä jotka viittaavat CARP-osoitteeseen, on syytä tehdä aliaksista myös CARP-verkkoliitäntöjä. Näitä voi liittää useampia yhteen virtuaaliverkkoliitäntään.

Jotta CARP-klusteri on tilatietoinen, eli yhteydet eivät katkea master-tilan vaihtuessa, on syytä implementoida pfsync lähettämään tilatiedot koneiden kesken.

Verkkoprotokollat