Linux поддерживает объединение нескольких сетевых интерфейсов Ethernet для дополнительной надежности или балансировки нагрузки.
Драйвер связывания раньше настраивался с помощью команды ifenslave
, которая устарела (заменена ip
команда из iproute2 инструментария), поэтому ifenslave
был удален из исходных кодов ядра.
Одна особенность устаревшей команды, которую я не могу найти современным эквивалентом для является изменение активного подчиненного устройства интерфейса соединения (при условии, что интерфейс соединения работает в режиме active-backup
).
Например, следующие команды устанавливают eth0
сетевая карта как acti ve подчиненное устройство интерфейса bond0
:
ifenslave -c bond0 eth0
ifenslave --change-active bond0 eth0
Есть ли способ изменить активное подчиненное устройство интерфейса связывания Linux с помощью команды ip
из набора инструментов iproute2 или, альтернативно , через sysfs?
Создать процедуру связывания интерфейса:
# create the bonding interface with active-backup mode
ip link add name bond0 type bond mode active-backup
# add the under laying interfaces
# the interface, that has been added first, will be active
ip link set master bond0 dev eth1
ip link set master bond0 dev eth0
# enable the bonding interface
ip link set up dev bond0
ip address add 192.168.100.1/24 dev bond0
# check the results: detailed info and statistics of bond0
ip -s -s -d link ls dev bond0
# check the state of ALL under laying interfaces
# with statistics and details
ip -s -s -d link ls master bond0
# check the kernel logs
journalctl -kn 20
Для изменения активного звена для связующего устройства необходимо использовать эту команду:
ip link set dev bond0 type bond active_slave eth0
Если вы получили ошибку типа RTNETLINK answers: недопустимый аргумент
, проверьте выходы dmesg
или journalctl -k
.
Для получения краткой справки по параметрам можно использовать команду ip link add type bond help
. Это относится к любому типу ссылок.
Все значения текущих опций интерфейса bond0
можно получить с помощью команды ip -d l ls dev bond0
.