пятница, 18 октября 2013 г.

Агрегирование каналов (802.3ad) в Debian

Для объединения (агрегирования) каналов, в Linux используется драйвер bonding.  О том как заставить работать это дело в Debian, я  попытаюсь кратко описать здесь.

 

 Debian 5 (Lenny)

Для начала установим пакет ifenslave. Он нам понадобится для объединения интерфейсов.
aptitude install ifenslave
Добавляем в файл/etc/modprobe.d/aliases.conf следующие строки:
alias bond0 bonding
options bonding mode=2 miimon=100
Здесь мы устанавливаем режим работы виртуального интерфейса и период опроса объединяемых интерфейсов на предмет наличия соединения.

Параметр mode может принимать следующие значения:
    • 0 (balance-rr) - Последовательно кидает пакеты, с первого по последний интерфейс.
    • 1 (active-backup) - Один из интерфейсов активен. Если активный интерфейс выходит из строя, другой интерфейс заменяет активный. Данный режим не требует дополнительной настройки коммутатора.
    • 2 (balance-xor) - Передачи пакетов распределяются между интерфейсами на основе формулы ((MAC-адрес источника) XOR (MAC-адрес получателя)) % число интерфейсов. Один и тот же интерфейс работает с определённым получателем. Этот режим даёт балансировку нагрузки и отказоустойчивость.
    • 3 (broadcast) - Все пакеты  на все интерфейсы.
    • 4 (802.3ad) - Link Agregation - IEEE 802.ad. Требуется дополнительная настройка коммутатора.
    • 5 (balance-tlb) - Входящие пакеты принимаются только активным сетевым интерфейсом, исходящий распределяется в зависимости от текущей загрузки каждого интерфейса. Данный режим не требует дополнительной настройки коммутатора.
    • 6 (balance-alb) - Тоже самое что и 5, но в данном режиме так же и входящий трафик распределяется между интерфейсами. Данный режим не требует дополнительной настройки коммутатора, но интерфейсы должны уметь изменять MAC.
Параметр miimon указывается в миллисекундах. Если указать 0, то интерфейсы опрашиваться не будут. Рекомендуется указывать значение равное 100 и далее корректировать его в зависимости от своих потребностей.

Теперь редактируем файл настроек сетевых интерфейсов /etc/network/interfaces, добавляем в него следующие строки
auto bond0
iface bond0 inet static
        address 192.168.255.253
        netmask 255.255.255.255
        up /sbin/ifenslave bond0 eth0 eth1
        down /sbin/ifenslave -d bond0 eth0 eth1
Здесь меняем значения адреса и маски на угодную вам, так же не забываем изменить имена интерфейсов ethX на те, которые будете использовать.

Debian 7 (Wheezy)

Для этой версии Debian, процедура bonding'а немного другая. Здесь нет необходимости прописывать алиасы в modprobe.d. Достаточно установить пакет ifenslave и внести изменения в /etc/network/interfaces
auto bond0
iface bond0 inet static
        address 192.168.255.253
        netmask 255.255.255.255
        bond_mode balance-xor
        bond_miimon 100

Ссылки

Комментариев нет:

Отправить комментарий