CARP (от англ. Common Address Redundancy Protocol — протокол дупликации общего адреса) — сетевой протокол, основной задачей которого является использование одного IP-адреса несколькими хостами в пределах сегмента сети.
С помощью CARP сервера объединяются в виртуальную группу (VHID), которой назначается виртуальный IP-адрес (Virtual IP), которому протокол CARP выделяет виртуальный mac-адрес. Виртуальный IP-адрес должен использоваться в качестве шлюза по умолчанию на клиентских хостах в локальной сети. В пределах группы один из серверов становится «главным» (MASTER), а остальные обозначаются как «резервные» (BACKUP). Каждый сервер одновременно может принадлежать к нескольким виртуальным группам. В случае отказа сервера, выполняющего роль мастера, среди резервных серверов будет выбран новый мастер, который примет виртуальный IP-адрес и продолжит обслуживание клиентов. Дизайн CARP требует, чтобы члены одной виртуальной группы физически находились в одной подсети.
Для активации CARP в локальной сети нужно в свойствах локальной сети в модуле «Провайдеры и сети» установить флаг «Использовать CARP».
Virtual IP - IP-адрес виртуальной группы. Адрес должен быть уникальным и входить в ту же сеть, что задана в настройках локальной сети.
VHID (Virtual Host ID) - идентификатор, используемый для объединения нескольких серверов в одну виртуальную группу (любое значение от 1 - 254). В пределах одного сервера на разных интерфейсах должны использоваться разные VHID, чтобы избежать конфликта виртуальных mac-адресов.
Виртуальный mac-адрес создается автоматически следующим образом: 00:00:5e:00:XX, где ХХ - VHID, записанный в шестнадцатеричной системе счисления (например, VHID=1, mac - 00:00:5e:00:01, VHID=254, mac - 00:00:5e:00:FE).
Пароль - используется для аутентификации сервера в виртуальной группе. На всех серверах в одной группе должен быть указан одинаковый пароль.
Advertisement base и Advertisement skew - параметры, используемые для определения, как часто сервер рассылает CARP-сообщения. Advertisement base измеряется в секундах и указывает основной интервал между анонсами CARP-сообщений. Advertisement skew измеряется в 1/256 секунды, это значение прибавляется к основному интервалу анонсов и используется, чтобы сделать рассылку CARP-сообщений чуть медленнее, чем на других серверах.
С помощью этих параметров можно указать, какой сервер будет мастером в виртуальной группе. Например: есть два сервера A (VHID 1) и B (VHID 1). Нам нужно, чтобы сервер A по умолчанию был мастером. Тогда выполняем следующие настройки:
сервер A: Advertisement base = 1 Advertisement skew = 100 сервер B: Advertisement base = 1 Advertisement skew = 200
Сервер A будет быстрее рассылать CARP-сообщения, поэтому первым станет мастером.