Bond0 — не удается установить правильный алгоритм LB на 802.3ad

#ubuntu-16.04 #systemd #lacp

#ubuntu-16.04 #systemd #lacp

Вопрос:

Ubuntu 16.04.4

Я пытаюсь настроить 4 интерфейса bond0. Я настраиваю следующее:

10-bond0.netdev

 [NetDev]
Name=bond0
Kind=bond

[Bond]
Mode=802.3ad
TransmitHashPolicy=layer3 4
MIIMonitorSec=1s
LACPTransmitRate=fast
  

10-bond0.network

 [Match]
Name=bond0

[Network]
Address=10.38.63.1/24
  

20-enx00145ee890e0.network

 [Match]
Name=enx00145ee890e0

[Network]
Bond=bond0
  

20-enx00145ee890e1.network

 [Match]
Name=enx00145ee890e1

[Network]
Bond=bond0
  

20-enx00145ee890e2.network

 [Match]
Name=enx00145ee890e2

[Network]
Bond=bond0
  

20-enx00145ee890e3.network

 [Match]
Name=enx00145ee890e3

[Network]
Bond=bond0
  

После запуска

 root@server#cat /sys/class/net/bond0/bonding/mode
balance-rr 0
  

Если я переопределю bond0 на bond1 (я перемещаю файлы bond0 в файлы bond1, а затем корректирую информацию внутри них), то

 root@server#cat /sys/class/net/bond1/bonding/mode
802.3ad 4
  

Также при введении bond1 я все еще получаю bond0 среди интерфейсов, отображаемых «ip link show», поэтому bond0 должен быть где-то определен, но я не знаю где.

Я должен сказать, что у меня смешанная система, основанная на сети и systemd-службе networkd.

/ etc / network / interface не имеет ссылки на bond0

Я действительно хочу избавиться от сетей if в пользу systemd-networks, но поскольку у меня нет доступа к серверу, я должен подготовить все тщательно и точно.

Я не знаю, откуда система может получить этот «баланс-rr» и не соблюдать 802.3ad в файлах, связанных с bond0.

Где я могу проверить дальше?

TIA

Ответ №1:

Я думаю, что нашел проблему

root@brunas:/etc/systemd/network $ systemctl -версия systemd 229

Я сталкиваюсь с этой ошибкой

https://github.com/systemd/systemd/issues/7025
https://github.com/systemd/systemd/issues/5971

обходной путь, как указано во второй ссылке, заключается в создании

/etc/modprobe.d/bonding.conf и установить

параметры привязки max_bonds=0