Объединение сетевых интерфейсов в Debian


Ethernet-объединение относится к агрегации множества ethernet-каналов вместе для формирования одного канала. Такое объединение используется прежде всего для избыточности в ethernet-путях или для балансировки нагрузки. Эта статья относится, в частности, к настройке ethernet-объединения в Linux и не ограничивает себя обсуждением 802.3ad, динамического объединения каналов.
Типы объединений

Модуль ядра Linux для объединения интерфейсов поддерживает несколько типов таких объединений:

mode=1 (active-backup)

Один из интерфейсов активен. Если активный интерфейс выходит из строя, другой интерфейс присваивает MAC-адрес и становится активным. Данный режим предоставляет только отказоустойчивость и не требует специальной поддержки со стороны коммутатора.

mode=2 (balance-xor)

Передачи распределяются между интерфейсами на основе формулы ((MAC-адрес источника) XOR (MAC-адрес получателя)) % число интерфейсов. Один и тот же интерфейс работает с определённым получателем. Режим даёт балансировку нагрузки и отказоустойчивость.

mode=3 (broadcast)

Передаёт все пакеты на все интерфейсы объединения, обеспечивая повышения отказоустойчивости.

mode=4 (802.3ad)

Это классический IEEE 802.3ad, динамическое объединение каналов. Требует поддержки 802.3ad от коммутатора и восстановления скорости и дуплекса от драйвера каждого из интерфейсов.

mode=5 (balance-tlb)

Адаптивная балансировка нагрузки передачи. Входящий трафик получается только активным интерфейсом, исходящий же распределяется в зависимости от текущей загрузки каждого интерфейса. Не требует специальной поддержки коммутатора.

mode=6 (balance-alb)

Адаптивная балансировка нагрузки – обеспечивает балансировку нагрузки как передачи (TLB, transmit load balancing), так и приёма для IPv4 через ARP. Не требует специальной поддержки коммутатором, но требует возможности изменять MAC-адрес устройства.
Настройка объединения в Debian

Чтобы использовать Ethernet-объединение в высокодоступных (отказоустойчивых) серверах на Debian Lenny Вам нужно:

Установить пакет ifenslave-2.6. Чтобы установить этот пакет используйте следующую команду:
# apt-get install ifenslave-2.6

Убедитесь, что ядерные модули реальных сетевых интерфейсов автоматически загружаются.

Отредактируйте /etc/network/interfaces чтобы получить следующий вид:
iface bond0
inet static
address 10.0.1.5
netmask 255.255.255.0
network 10.0.1.0
gateway 10.0.1.254
up /sbin/ifenslave bond0 eth0
up /sbin/ifenslave bond0 eth1

Комментируйте или заимствуйте строки относящиеся к Вашим реальным адаптерам в этом же файле.

Добавьте следующие строки в Ваш /etc/modprobe.d/arch/i386:
alias bond0 bonding
options bonding mode=5 miimon=100 downdelay=200 updelay=200

Убедитесь, что изменили свой режим!

Затем перезагрузите вашу сеть:
# /etc/init.d/networking restart

В результате имеем логический сетевой интерфейс bond0, который объединяет в себе два физических eth0 и eth1 в режиме адаптивной балансировки нагрузки передачи.

https://sites.google.com/site/debianschool/2-servers/obedinenie-kanalov

Обновлено: 13.03.2015