CARP

Материал из Xgu.ru

Перейти к: навигация, поиск


CARP (Common Address Redundacy Protocol) -- сетевой протокол, предназначенный для организации работы отказоустойчивых маршрутизаторов и брандмауэров, путём назначения группе хостов общего IP-адреса.

Содержание

[править] Описание протокола

CARP позволяет сделать так, чтобы у нескольких хостов в одной сети (широковещательном домене) был общий IP-адрес. Эта группа хостов называется группой избыточности (redundancy group). Группе назначается один IP-адрес, которые используется совместно (но не одновременно!) всеми членами этой группы. Внутри группы есть один основной хост (master) и остальные --- запасные (backups). IP-адрес в один момент времени есть только у основного хоста (master host), он отвечает на все ARP-запросы по этому адресу. Каждый хост в одно и то же время может входить в несколько различных групп.

Наиболее частое примение CARP -- группы избыточных брандмауэров. Такой группе назначается единый IP-адрес, который указывается на клиентских машинах как шлюз по умолчанию. В случае, когда основной брандмауэр выходит из строя (или становится недоступным), IP-адрес передаётся на запасной брандмауэр, и работа не останавливается.

CARP поддерживает IPv4 и IPv6.

Протокол CARP был разработан и предложен командой OpenBSD как свободная замена протокола VRRP, имеющего некоторые сложности с патентами, поскольку он основывается на проприетарном и запатентованном протоколе HSRP.

Он появился впервые в дереве OpenBSD в октябре 2004, а в мае 2005 уже был включен в релиз, OpenBSD 3.5.

Реализация CARP на уровне ядра есть в

  • OpenBSD (начиная с 3.5);
  • FreeBSD (начиная с 5.4);
  • NetBSD.

Существует реализация UCARP в виде программы, работающей в пространстве пользователя (userland).


Чаще всего CARP используется в сочетании с PF и pfsync для организации отказоустойчивых брандмауэров.

[править] Балансировка нагрузки

[править] ARP-балансировка

При получении ARP-запроса, CARP берет хэш-функцию от MAC-адреса отправителя в ARP-запросе для того чтобы определить какому carpnode принадлежит запрос. Если соответствующий carpnode в состоянии master, то ответ на ARP-запрос будет отправлен, в другом случае он будет проигнорирован.

[править] IP-балансировка

[править] Дополнительная информация

Подробнее об устройстве CARP:

Подробное описание процедуры настройки в OpenBSD:

Источник — «http://xgu.ru/wiki/CARP»