Агрегирование каналов c помощью LACP в Debian

Агрегирование каналов c помощью LACP в Debian

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Объединение портов в Linux Debian для увеличения пропускной способности канала.

Управление агрегированием осуществляется с помощью утилиты ifenslave, установим её.

1
apt-get install ifenslave

Модуль “бондинга” входит в состав ядра уже давно. Загрузим его:

1
modprobe bonding

Если не последовало никакого вывода - значит все хорошо. На всякий случай можно проверить командой lsmod | grep bond

Бондинг может работать в нескольких режимах:

0 - balance-rr - (round-robin) - режим циклического выбора активного интерфейса для исходящего трафика (рекомендован для включения по умолчанию, не требует применения специальных коммутаторов);

1 - active-backup - активен только один интерфейс, остальные в режиме горячей замены (самый простой режим, работает с любым оборудованием, не требует применения специальных коммутаторов);

2 - balance-xor - режим, в котором каждый получатель закрепляется за одним из физических интерфейсов, который выбирается по специальной формуле (не требует применения специальных коммутаторов);

3 - broadcast - трафик идет через все интерфейсы одновременно (примитивный и потенциально конфликтный режим);

4 - 802.3ad - (dynamic link aggregation) - в группу объединяются одинаковые по скорости и режиму интерфейсы. Все физические интерфейсы используются одновременно в соответствии со спецификацией IEEE 802.3ad. Для реализации этого режима необходима поддержка на уровне драйверов сетевых карт и коммутатор, поддерживающий стандарт IEEE 802.3ad (коммутатор требует отдельной настройки);

5 - balance-tlb - (adaptive transmit load balancing) - исходящий трафик распределяется в соответствии с текущей нагрузкой (с учетом скорости) на интерфейсах (для данного режима необходима его поддержка в драйверах сетевых карт);

6 - balance-alb - (adaptive load balancing) - включает в себя balance-tlb, плюс балансировку на приём (rlb) для IPv4 трафика и не требует применения специальных коммутаторов (балансировка на приём достигается на уровне протокола ARP, перехватом ARP ответов локальной системы и перезаписью физического адреса на адрес одного из сетевых интерфейсов, в зависимости от загрузки).

Настраиваем интерфейс и настраиваем параметры модуля /etc/network/interfaces:

1
2
3
4
5
iface bond0 inet static
address 10.10.2.36
netmask 255.255.255.0
network 10.10.2.0
gateway 10.10.2.254
1
2
up /sbin/ifenslave bond0 eth0 eth1
down /sbin/ifenslave -d bond0 eth0 eth1

Редактируем /etc/modprobe.d/arch/i386:

1
2
alias bond0 bonding
options bonding mode=5 miimon=100 downdelay=200 updelay=200

Указываем режим настройки сети:

1
2
3
4
# update-modules
# ifdown eth0 eth1
# ifup bond0
# /etc/init.d/networking restart

Либо, как второй вариант, в interfaces добавим:

1
2
3
4
5
bond_mode balance-tlb
bond_miimon 100
bond_downdelay 200
bond_updelay 200
slaves eth0 eth1

И обновим:

1
2
3
4
update-modules
# ifdown eth0 eth1
# ifup bond0
# /etc/init.d/networking restart

Проверяем: cat /proc/net/bonding/bond0

On this page