
Недавно я настроил систему Ubuntu 16.04 с конфигурацией связанного Ethernet. Раньше, похоже, для того, чтобы это работало, нужно было включить модуль связывания в /etc/modules
или /etc/modules.d
. Это задокументировано здесь:
https://help.ubuntu.com/community/UbuntuBonding
Однако в системе Ubuntu 16.04, которую я только что настроил, я ничего не делал для принудительной загрузки модуля ядра связывания (например, не записывал в /etc/modules
), и тем не менее модуль ядра связывания загружен, а связанный порт работает так, как заявлено.
Я пытался выяснить, что запускает загрузку этого модуля, но не смог. Насколько я могу судить, Canonical не собрались, чтобы перейти на systemd-networkd для релиза 16.04, так что, насколько я могу судить, в работе нет никакой магии systemd. Также не udev
определены никакие правила.
Теперь все это меня действительно беспокоит (особенно потому, что явное отсутствие загрузки модуля в 14.04 не сработало бы), поэтому спрошу на StackExchange.
решение1
NetworkManager недавно получил поддержку объединения. Сомневаюсь, что он ожидает, что вы загрузите модуль вручную.
Есть небольшое количество руководств, в которых не говорится о необходимости загрузки модуля, поэтому я задаюсь вопросом о скрипте ifenslave... ха-ха.
Из пакета Debian 8, файл ifenslave.pre-up:
add_master()
{
# Return if $BOND_MASTER is already a bonding interface.
[ -f "/sys/class/net/$BOND_MASTER/bonding/slaves" ] && return
# If the bonding module is not yet loaded, load it.
if [ ! -r /sys/class/net/bonding_masters ]; then
modprobe -q bonding
fi