Агрегирование каналов c помощью LACP в Debian
Объединение портов в 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 | iface bond0 inet static |
1 | up /sbin/ifenslave bond0 eth0 eth1 |
Редактируем /etc/modprobe.d/arch/i386
:
1 | alias bond0 bonding |
Указываем режим настройки сети:
1 | # update-modules |
Либо, как второй вариант, в interfaces
добавим:
1 | bond_mode balance-tlb |
И обновим:
1 | update-modules |
Проверяем: cat /proc/net/bonding/bond0