Назад | Перейти на главную страницу

Режим связи Linux 802.3ad не активирован

на сервере работает Debian Stretch Я настроил облигация0 с 802.3ad режим следующим образом:

auto bond0
iface bond0 inet manual
        slaves eth0 eth2
        bond_miimon 100
        bond_mode 802.3ad

В облигация0 интерфейс запущен и работает, но он работает с балансировка нагрузки (циклический перебор) Режим:

root@servir01:~# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: e4:1f:13:65:f0:c4
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: e4:1f:13:36:a3:ac
Slave queue ID: 0

На коммутаторе LAG правильно создана с включенным LACP, и у него есть оба порта, работающие:

[

На той же машине есть другой интерфейс связи (bond1 на интерфейсах eth1 и eth3) настроен таким же образом, подключен к тем же коммутаторам, и LACP работает нормально:

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: e4:1f:13:65:f0:c6
Active Aggregator Info:
    Aggregator ID: 1
    Number of ports: 2
    Actor Key: 9
    Partner Key: 1010

Почему интерфейс bond0 не хочет включать LACP? Где я не прав?

Старый вопрос, но поскольку он возникает довольно рано при поиске, и у меня была аналогичная установка с той же проблемой. Вот как я заработал (используя ifenslave на Debian stretch) ...

/ и т.д. / сеть / интерфейсы ...

    # The loopback network interface
    auto lo
    iface lo inet loopback

    # bond0 is the bonded NIC and can be used like any other normal NIC.
    # bond0 is configured using static addressing.
    auto bond0
    iface bond0 inet static
    address <your static address>
    gateway <your gateway>
    # bond0 uses standard IEEE 802.3ad LACP bonding protocol
    bond-mode 4
    bond-miimon 100
    bond-lacp-rate 0 (This is on a small NAS, so no rush)
    bond-slaves none

    # eth0 is manually configured, and enslaved to the "bond0" pseudo NIC
    allow_hotplug eth0
    auto eth0
    iface eth0 inet manual
    bond-master bond0

    # eth1 ditto, thus creating a 2-link bond.
    allow_hotplug eth1
    auto eth1
    iface eth1 inet manual
    bond-master bond0

В чем была причина?

Что ж, сетевые адаптеры подойдут, драйвер связывания захватит их, затем сетевые карты опустятся, чтобы перенастроить их в рабов, и драйвер связывания запаникует, потому что у него нет рабов, и будет бегать, как цыпленок без головы (круговой алгоритм ).

Теперь появляется драйвер связывания, видит, что у него нет подчиненных, поэтому он сидит и ждет ... Сетевые адаптеры видят, что у них есть главный, поэтому они идут и отчитываются, получают свои адреса от bond0 и уходят на работу они все идут.

протестировано на debian 10 (после прочтения этой ветки и документации по связыванию debian)

config ниже (никакие другие файлы не редактируются - модули или что-то в этом роде)

auto enp4s0f2
allow-hotplug enp4s0f2
iface enp4s0f2 inet manual
        bond-master bond1
        bond-mode 4

auto enp4s0f3
allow-hotplug enp4s0f3
iface enp4s0f3 inet manual
        bond-master bond1
        bond-mode 4

auto bond1
iface bond1 inet static
        address 1.2.3.4
        netmask 255.255.255.0
        bond-mode 4
        bond-slaves none
        bond-miimon 100
        bond-lacp-rate 1
        bond-updelay 800
        bond-downdelay 400
        bond_xmit_hash_policy layer2+3    # optional, sets the bonding algorithm

что нового:

  • интерфейсы подняты ДО соединения
  • режим связи указывается также на уровне интерфейса
  • У облигации нет рабов

Я решил эту проблему, добавив в конфигурацию связи в /etc/network/interfaces:

bond_xmit_hash_policy layer2+3

После добавления этой конфигурации и перезапуска сети все работает нормально.