Подробный гайд по агрегации каналов (bonding) в Debian 13 - Часть 3
13. Настройка через NetworkManager
Если у вас настольная система или сервер управляется через NetworkManager, можно настроить bond через nmcli.
Проверьте статус:
systemctl status NetworkManager
Пример создания LACP bond через nmcli
Создаём bond:
nmcli connection add type bond \
con-name bond0 \
ifname bond0 \
bond.options "mode=802.3ad,miimon=100,lacp_rate=fast,xmit_hash_policy=layer3+4" \
ipv4.addresses 192.168.10.10/24 \
ipv4.gateway 192.168.10.1 \
ipv4.method manual \
connection.autoconnect yes
Создаём подчинённые интерфейсы:
nmcli connection add type bond-slave \
con-name bond0-slave1 \
ifname enp3s0 \
master bond0 \
connection.autoconnect yes
nmcli connection add type bond-slave \
con-name bond0-slave2 \
ifname enp4s0 \
master bond0 \
connection.autoconnect yes
Активируем:
nmcli connection up bond0-slave1
nmcli connection up bond0-slave2
nmcli connection up bond0
Проверка:
nmcli connection show
nmcli device status
cat /proc/net/bonding/bond0
14. Настройка через systemd-networkd
Альтернативный способ — systemd-networkd.
Используйте его только если он действительно является основным сетевым менеджером. Не рекомендуется одновременно использовать NetworkManager, ifupdown и systemd-networkd для одних и тех же интерфейсов.
14.1. Создайте файл устройства
nano /etc/systemd/network/10-bond0.netdev
Содержимое:
[NetDev]
Name=bond0
Kind=bond
[Bond]
Mode=802.3ad
MIIMonitorSec=100ms
LACPTransmitRate=fast
TransmitHashPolicy=layer3+4
MinLinks=1
14.2. Настройте физические интерфейсы
Файл для первого интерфейса:
nano /etc/systemd/network/10-enp3s0.network
Содержимое:
[Match]
Name=enp3s0
[Network]
Bond=bond0
Файл для второго интерфейса:
nano /etc/systemd/network/10-enp4s0.network
Содержимое:
[Match]
Name=enp4s0
[Network]
Bond=bond0
14.3. Настройте IP для bond0
nano /etc/systemd/network/20-bond0.network
Содержимое:
[Match]
Name=bond0
[Network]
Address=192.168.10.10/24
Gateway=192.168.10.1
14.4. Включите и перезапустите сервис
systemctl enable systemd-networkd
systemctl restart systemd-networkd
Проверка:
networkctl status bond0
cat /proc/net/bonding/bond0
15. Проверка состояния bonding
15.1. Основной файл состояния
cat /proc/net/bonding/bond0
Пример полезных строк:
Bonding Mode: active-backup fault tolerance
MII Status: up
Slave Interface: enp3s0
MII Status: up
Slave Interface: enp4s0
MII Status: up
Для LACP:
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
15.2. Посмотреть параметры через sysfs
cat /sys/class/net/bond0/bonding/mode
cat /sys/class/net/bond0/bonding/miimon
cat /sys/class/net/bond0/bonding/xmit_hash_policy
cat /sys/class/net/bond0/bonding/lacp_rate
15.3. Проверить сетевой интерфейс
ip -br addr show bond0
ip -s link show dev bond0
ip -d link show dev bond0
15.4. Посмотреть состояние физических интерфейсов
ethtool enp3s0
ethtool enp4s0
15.5. Посмотреть журналы
journalctl -u networking -b
или:
journalctl -b -p warning | grep -Ei 'bond|lacp|network|enp'
16. Проверка отказоустойчивости
16.1. Посмотреть активный интерфейс
Для active-backup:
cat /sys/class/net/bond0/bonding/active_slave
16.2. Временно переключить активный интерфейс
echo enp4s0 > /sys/class/net/bond0/bonding/active_slave
Проверка:
cat /sys/class/net/bond0/bonding/active_slave
16.3. Проверить поведение при падении линка
Можно программно выключить один интерфейс:
ip link set enp3s0 down
Затем проверить:
cat /proc/net/bonding/bond0
После теста поднять обратно:
ip link set enp3s0 up
Если используется ifupdown, корректнее возвращать интерфейс через:
ifup enp3s0
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.