Документация по ОС FreeBSD Понедельник, 06.05.2024, 18:36
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Man pages

CARP Руководство по интерфейсам ядра FreeBSD

Имя

carp -- Common Address Redundancy Protocol

Применение

device carp

Описание

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

Интерфейс carp может быть создан командой ifconfig carpN create в процессе работы или с помощью соответствующей записи в /etc/rc.conf.

Для использования carp, системный администратор как минимум должен сконфигурировать идентификатор виртуального хоста и IP адрес виртуального хоста на каждой машине, входящей в виртуальную группу. Дополнительные параметры, которые могут быть установлены на каждом интерфейсе: advbase и advskew, которые используются для управления дискретностью посылок обьявлений главным хостом группы и pass, служащий для аутентификации обьявлений carp. В заключение, carpdev используется для определения интерфейса, создаваемого с помощью carp. Если интерфейс не определен, ядро пытается самостоятельно установить carpdev путём поиска интерфейса, находящегося в той же сети, что и IP адрес carp интерфейса. Такие конфигурации могут быть реализованы с помощью ifconfig(8) или SIOCSVH ioctl(2). Дополнительно, некоторые глобальные параметры могут быть установлены с помощью sysctl(8):
  • net.inet.carp.allow - принимать входящие пакеты carp. Установлено по умолчанию.
  • net.inet.carp.preempt - позволяет виртуальным хостам резервировать друг друга. Эта функция используется для обеспечения отказоустойчивости в группе. Когда эта опция установлена и один из физических интерфейсов на котором выполняется carp теряет связь, advskew устанавливает значение 240 на всех carp интерфейсах. Хост, у которого advskew меньше назначается главным в группе и на него направляются пакеты до отказа интерфейса. Смотри также первй пример. По умолчанию выключено.
  • net.inet.carp.log - значение 0 отключает ведение журнального файла. Значение 1 фиксирует некорректные пакеты carp и состояние интерфейса. Значение 2 включает журналирование смен состояния carp интерфейсов. По умолчанию 1.
  • net.inet.carp.arpbalance - балансировка локального трафика используя ARP. по умолчанию выключено.

Примеры

Для систем сетевой защиты и маршрутизаторов c большим количеством сетевых интерфейсов необходимо для обеспечения отказоустойчивости реализовать carp на всех интерфейсах. Обеспечиваем резервирование, устанавливая на маршрутизаторах A и B:
    
    sysctl net.inet.carp.preempt=1
    
Предположим, что маршрутизатор А является главным(master) и его сетевые интерфейсы сконфигурированы на сети 192.168.1.x/24 и 192.168.2.y/24 соответственно. В результате будем иметь настройки, обеспечивающие преимущество маршрутизатора А:
    
    ifconfig carp0 create
     ifconfig carp0 vhid 1 pass mekmitasdigoat 192.168.1.1 \
     255.255.255.0
     ifconfig carp1 create
     ifconfig carp1 vhid 2 pass mekmitasdigoat 192.168.2.1 \
     255.255.255.0
    
Настройки для маршрутизатора В аналогичны, за исключением более высокого advskew:
    
    ifconfig carp0 create
     ifconfig carp0 vhid 1 advskew 100 pass mekmitasdigoat \
     192.168.1.1 255.255.255.0
     ifconfig carp1 create
     ifconfig carp1 vhid 2 advskew 100 pass mekmitasdigoat \
     192.168.2.1 255.255.255.0
    
В результате того, что net.inet.carp.preempt = 1, когда один из сетевых интерфейсов дает сбой, advskew устанавливает значение 240 на всех carp интерфейсах. Это заставит включиться в работу маршрутизатор В.

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

Сперва настроим интерфейс carp на машине А. параметр advskew, установленный в 100 на втором хосте, будет указывать на увеличенный интервал отсылки обьявлений:
    
    ifconfig carp0 create
     ifconfig carp0 vhid 1 pass mekmitasdigoat 192.168.1.10 \
     255.255.255.0
     ifconfig carp1 create
     ifconfig carp1 vhid 2 advskew 100 pass mekmitasdigoat \
     192.168.1.10 255.255.255.0
    
Конфигурация хоста В идентична вышеприведенной, за исключением зеркальной смены advskew:
    
    ifconfig carp0 create
     ifconfig carp0 vhid 1 advskew 100 pass mekmitasdigoat \
     192.168.1.10 255.255.255.0
     ifconfig carp1 create
     ifconfig carp1 vhid 2 pass mekmitasdigoat 192.168.1.10 \
     255.255.255.0
    
В заключение, включаем балансировку ARP:
    
    sysctl net.inet.carp.arpbalance=1
    
Когда хосты принимают ARP запрос для 192.168.1.10 используется исходящий IP адрес для определения, какой из хостов будет отвечать. В этом случае, выбранный главным хостом для виртуальной группы ответит, а второй проигнорирует запрос.

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

Внимание:

Балансировка ARP работает только в локальном сегменте. Такая балансировка не возможна при использовании промежуточного маршрутизатора, так как маршрутизатор будет направлять данные на один и тот же хост.

Смотри также

inet(4), rc.conf(5), ifconfig(8), sysctl(8).

История

Устройство carp впервые появилось в OpenBSD 3.5. Впоследствии carp было импортировано в FreeBSD 5.4.
 
Перевод: Сгибнев Михаил
Категория: Man pages | Добавил: oleg (14.11.2007)
Просмотров: 991 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024