The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Введение в Common Address Redundancy Protocol (carp balance openbsd freebsd interface)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: carp, balance, openbsd, freebsd, interface,  (найти похожие документы)
From: Михаил Сгибнев <mixa(@).dreamcatcher.ru> Date: 2006-10-10 10:34:14 Subject: Введение в Common Address Redundancy Protocol
Original
Перевод: Сгибнев Михаил

Аббревиатура CARP расшифровывается как Common Address Redundancy Protocol. Основной целью этого протокола является использование одного IP адреса в пределах одного сегмента сети несколькими машинами. CARP является свободной, безопасной альтернативой протоколам Virtual Router Redundancy Protocol и Hot Standby Router Protocol.

CARP позволяет выделить группу хостов в сегменте сети и назначить ей один IP адрес. Такая группа называется "redundancy group" (группа избыточности). В пределах этой группы, один из хостов становится "главным", а остальные обозначаются как "резервные". В каждый момент времени мастер-хост отвечает на ARP-запросы к назначенному IP адресу и обрабатывает трафик, идущий к этому адресу. Каждый хост одновременно может принадлежать к нескольким группам.

Одним распространенным случаем использования CARP является создание избыточности на брандмауэрах. Виртуальный IP, который назначен на группу избыточности, указан на клиентских машинах в качестве шлюза по умолчанию. В случае отказа брандмауэра, выполняющего роль мастера, резервный брандмауэр возмет этот IP адрес и продолжит обслуживание клиентов.

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

Однако, есть ситуации, когда CARP не может помочь. Дизайн CARP требует, чтобы члены одной группы физически находились в одной подсети с одним статическим IP адресом, хотя с введением директивы carpdev необходимости назначать адрес на физический интерфейс нет. Сервисы, требующие постоянного соединения с сервером (такие как SSH и IRC) не могут быть прозрачно переброшены в случае отказа и потребуют переподключения. CARP не может синхронизировать данные между приложениями.

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

Принцип работы CARP

Мастер-хост группы регулярно рассылает объявления по сети, с целью оповестить остальные машины группы, что он все еще работоспособен. В случае, если резервной машиной объявление не будет получено в течение заданного интервала, то она перехватывает функции мастер-хоста (та из них, которая имеет меньшие значения advbase и advskew). Это сделано для работы нескольких CARP-групп в пределах одного сегмента. Объявления CARP содержат Virtual Host ID, который позволяет членам группы идентифицировать, предназначено ли объявление для данной группы.

Для предотвращения спуфинга объявлений CARP, каждая группа может быть сконфигурирована на использование пароля. В этом случае, каждый CARP пакет в группе шифруется по алгоритму SHA1 HMAC.

Конфигурирование CARP

Каждая отказоустойчивая группа представлена виртуальным сетевым интерфейсом carp(4). Как следствие, CARP конфигурируется с помощью ifconfig(8). Доступны следущие опции: Поведением CARP можно управлять с помощью sysctl(8).

Включение поддержки CARP

По умолчанию, поддержка CARP не включена. Для использования carp(4) необходимо в ядре включить опцию carp. Убедитесь, что в файле конфигурации ядра присутствует следущая строка: После того, как строка была добавлена, пересоберите и установите ядро. После перезагрузки в системе будет поддержка carp(4).

Пример CARP

Пример конфигурации CARP: Где мы выполнили: Воспользуемся командой ifconfig, чтобы проверить состояние интерфейса:

Расширенная конфигурация CARP

В следующем примере мы создадим кластер из двух отказоустойчивых, высоконадежных брандмауэров. Схема соединения представлена ниже: В данном случае, LAN подключена к em0 и WAN/Internet подключен к em1. Адреса назначены следующим образом: Адреса, назначенные группе избыточности: Считаем Firewall 1 (fw1) мастером. При этом его конфигурация будет выглядеть следующим образом: Конфигурация Firewall 2 (fw2) отличается установленным параметром advskew:

Принудительное понижение роли

Могут быть моменты, когда мастер-хост должен быть принудительно переведен в резерв. Это могут быть случаи планового обслуживания или ремонта. Наша задача заключается в том, чтобы данная операция прошла безболезненно для пользователей.

Для этого необходимо просто погасить интерфейс carp(4) на мастер-хосте. Это заставит мастер-хост обьявлять себя с бесконечным advbase и advskew, что приведет к перехвату роли резервным хостом:

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, eugene210682 (?), 18:15, 10/03/2010 [ответить]  
  • +/
    Альтернативный перевод соответствующего раздела хэндбука:
    http://redteapot.co.cc/articles/network-sw/19-carp_part1.html
    Перевод страницы руководства:
    http://redteapot.co.cc/articles/network-sw/20-carp_part2.html
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру