Типы агрегации (объединения) интерфейсов в Linux
mode=0 (balance-rr)
Этот режим используется по-умолчанию,
если в настройках не указано другое. balance-rr обеспечивает
балансировку нагрузки и отказоустойчивость. В данном режиме пакеты
отправляются "по кругу" от первого интерфейса к последнему и сначала.
Если выходит из строя один из интерфейсов, пакеты отправляются на
остальные оставшиеся.При подключении портов к разным коммутаторам,
требует их настройки.
mode=1 (active-backup)
При active-backup один интерфейс работает
в активном режиме, остальные в ожидающем. Если активный падает,
управление передается одному из ожидающих. Не требует поддержки данной
функциональности от коммутатора.
mode=2 (balance-xor)
Передача пакетов распределяется между
объединенными интерфейсами по формуле ((MAC-адрес источника) XOR
(MAC-адрес получателя)) % число интерфейсов. Один и тот же интерфейс
работает с определённым получателем. Режим даёт балансировку нагрузки и
отказоустойчивость.
mode=3 (broadcast)
Происходит передача во все объединенные интерфейсы, обеспечивая отказоустойчивость.
mode=4 (802.3ad)
Это динамическое объединение портов. В
данном режиме можно получить значительное увеличение пропускной
способности как входящего так и исходящего трафика, используя все
объединенные интерфейсы. Требует поддержки режима от коммутатора, а так
же (иногда) дополнительную настройку коммутатора.
mode=5 (balance-tlb)
Адаптивная балансировка нагрузки.
При balance-tlb входящий трафик получается только активным интерфейсом,
исходящий - распределяется в зависимости от текущей загрузки каждого
интерфейса. Обеспечивается отказоустойчивость и распределение нагрузки
исходящего трафика. Не требует специальной поддержки коммутатора.
mode=6 (balance-alb)
Адаптивная балансировка нагрузки (более
совершенная). Обеспечивает балансировку нагрузки как исходящего (TLB,
transmit load balancing), так и входящего трафика (для IPv4 через ARP).
Не требует специальной поддержки коммутатором, но требует возможности
изменять MAC-адрес устройства.
Настройка bonding в Debian 6
Для корректной работы объединения интерфейсов необходимо установить пакет ifenslave-2.6 и проверить наличие модуля bonding:
root@bond-srv:~# apt-cache search ifenslave
ifenslave-2.6 - Attach and detach slave interfaces to a bonding device
root@bond-srv:~# modprobe -l | grep bondi
kernel/drivers/net/bonding/bonding.ko
Для настройки объединения интерфейсов необходимо отредактировать файл конфигурации сети до следующего вида:
root@bond-srv:~# cat /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto bond0 eth0 eth1
# настроим параметры бонд-интерфейса
iface bond0 inet static
# адрес, маска, шлюз. (можно еще что-нибудь по вкусу)
address 10.0.0.11
netmask 255.255.255.0
gateway 10.0.0.254
# определяем подчиненные (объединяемые) интерфейсы
bond-slaves eth0 eth1
# задаем тип бондинга
bond-mode balance-alb
# интервал проверки линии в миллисекундах
bond-miimon 100
# Задержка перед установкой соединения в миллисекундах
bond-downdelay 200
# Задержка перед обрывом соединения в миллисекундах
bond-updelay 200
Далее перезапускаем сеть и видим как все работает:
root@bond-srv:~# /etc/init.d/networking stop && /etc/init.d/networking start
Deconfiguring network interfaces...
done.
Configuring network interfaces...
done.
root@bond-srv:~# ifconfig
bond0 Link encap:Ethernet HWaddr 00:02:b3:b0:27:98
inet addr:10.0.0.11 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:289786 errors:0 dropped:0 overruns:0 frame:0
TX packets:144029 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:88731609 (84.6 MiB) TX bytes:8668925 (8.2 MiB)
eth0 Link encap:Ethernet HWaddr 00:02:b3:b0:27:98
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:144766 errors:0 dropped:0 overruns:0 frame:0
TX packets:72000 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:44351263 (42.2 MiB) TX bytes:4345219 (4.1 MiB)
eth1 Link encap:Ethernet HWaddr 00:02:b3:b0:27:24
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:145020 errors:0 dropped:0 overruns:0 frame:0
TX packets:72029 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:44380346 (42.3 MiB) TX bytes:4323706 (4.1 MiB)
Диагностика bonding
Для проверки работы объединения интерфейсов необходимо просмотреть
содержимое каталога /proc/net/bonding/ на наличие каждого из
бонд-интерфейсов:
root@bond-srv:~# ls -la /proc/net/bonding/
итого 0
dr-xr-xr-x 2 root root 0 Июл 28 22:07 .
dr-xr-xr-x 5 root root 0 Июл 28 22:07 ..
-r--r--r-- 1 root root 0 Июл 28 22:07 bond0
root@bond-srv:~# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)
Bonding Mode: adaptive load balancing
Primary Slave: eth0
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:02:b3:b0:27:98
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:02:b3:b0:27:24
На сегодня это все. такая маленькая заметочка, как говориться "чтобы было".
Что еще почитать
Для более подробного ознакомления с объединением сетевых интерфейсов, советую почитать:
1. http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding
2. http://www.kernel.org/doc/Documentation/networking/bonding.txt
3. http://www.opennet.ru/man.shtml?topic=etcnet-options&category=5&russian=0
Источник: http://www.k-max.name/linux/teaming-bonding-na-debian-linux/ |