Подробный гайд по настройке сетевого bonding (объединения интерфейсов) в Astra Linux

Гайд по настройке bonding в Astra Linux: режимы LACP/active-backup, конфиги ifupdown и systemd, тесты отказоустойчивости и диагностика проблем.

2026.04.26                  


Подробный гайд по настройке сетевого bonding (объединения интерфейсов) в Astra LinuxПодробный гайд по настройке сетевого bonding (объединения интерфейсов) в Astra Linux Ниже приведён подробный гайд по настройке сетевого bonding (объединения интерфейсов) в Astra Linux без декоративных элементов. Руководство универсально для версий 1.6, 1.7 и 1.8 (как Common, так и Special Edition) и основано на штатных механизмах ядра Linux.


1. Подготовка

1. Определите имена физических интерфейсов:
   ip link show | grep -E "^[0-9]+:" | awk '{print $2}' | tr -d ':'

Обычно это enp3s0, ens160, eth0 и т.д. Запомните их.

2. Убедитесь, что модуль bonding доступен:
   lsmod | grep bonding
Если пусто, загрузите его:
   sudo modprobe bonding
   echo "bonding" | sudo tee -a /etc/modules
3. Создайте резервные копии текущих конфигов:
   sudo cp -r /etc/network /etc/network.bak
   sudo cp /etc/netplan/*.yaml /etc/netplan/ 2>/dev/null || true

Важно:

  • Если вы настраиваете сервер удалённо (по SSH), не перезапускайте сеть вслепую. Имейте физический доступ или консоль (iLO/iDRAC/VMware), иначе при ошибке потеряете доступ.

2. Выбор режима bonding

Режим Название Назначение Требования к коммутатору
active-backup (1) Отказоустойчивость Один интерфейс активен, второй резервирует Не требуется
balance-rr (0) Round-Robin Поочерёдная отправка пакетов Требуется статический LAG (без LACP)
802.3ad (4) LACP Динамическое агрегирование с балансировкой Обязательно поддержка LACP на свитче
balance-alb (6) Adaptive Load Balancing Балансировка исходящего/входящего трафика Не требуется

Рекомендация:

  • Для большинства серверных задач используйте active-backup (просто и надёжно) или 802.3ad (если свитч поддерживает LACP).

3. Настройка (два штатных метода)

Метод A: Через /etc/network/interfaces (рекомендуется для Astra SE/CE серверных редакций)

1. Отредактируйте конфигурацию:
   sudo nano /etc/network/interfaces
2. Добавьте блок для bond-интерфейса (пример для active-backup со статическим IP):
   auto bond0
   iface bond0 inet static
       address 192.168.1.10/24
       gateway 192.168.1.1
       dns-nameservers 8.8.8.8 8.8.4.4
       bond-mode active-backup
       bond-miimon 100
       bond-primary enp3s0
       bond-slaves enp3s0 ens160
Пояснения параметров:
  • bond-miimon 100 — проверка линка каждые 100 мс
  • bond-primary — предпочтительный интерфейс (опционально)
  • bond-slaves — физические порты (указывайте реальные имена!)
  • Если интерфейсы ранее имели IP/DHCP, удалите или закомментируйте их старые блоки в этом файле.
3. Убедитесь, что установлен пакет ifenslave:
   sudo apt update && sudo apt install ifenslave
4. Примените конфигурацию:
   sudo systemctl restart networking
   # или (если не используется systemd-networkd):
   sudo ifdown -a && sudo ifup -a

Метод B: Через systemd-networkd (современный, подходит для Astra 1.7+)

1. Включите и запустите systemd-networkd (если ещё не активен):
   sudo systemctl enable systemd-networkd
   sudo systemctl start systemd-networkd
   sudo systemctl disable networking 2>/dev/null  # отключите ifupdown, если конфликтуют
2. Создайте описание bond-устройства:
   sudo nano /etc/systemd/network/10-bond0.netdev
   [NetDev]
   Name=bond0
   Kind=bond

   [Bond]
   Mode=active-backup
   MIIMonitorSec=100ms
   Primary=enp3s0
3. Настройте IP-адресацию для bond0:
   sudo nano /etc/systemd/network/20-bond0.network
   [Match]
   Name=bond0

   [Network]
   Address=192.168.1.10/24
   Gateway=192.168.1.1
   DNS=8.8.8.8
4. Назначьте физические интерфейсы как слейвы:
   sudo nano /etc/systemd/network/20-bond-slaves.network
   [Match]
   Name=enp3s0 ens160

   [Network]
   Bond=bond0
5. Примените:
   sudo systemctl restart systemd-networkd

4. Проверка и тестирование

1. Состояние bond:
   cat /proc/net/bonding/bond0

Ищите строки Bonding Mode, Currently Active Slave, Link Failure Count.

2. Сетевые параметры:
   ip addr show bond0
   ip route show
3. Тест отказоустойчивости (active-backup):
   sudo ip link set enp3s0 down
   sleep 5
   cat /proc/net/bonding/bond0 | grep "Currently Active Slave"
   sudo ip link set enp3s0 up

Активный слейв должен автоматически переключиться и вернуться.


5. Особенности Astra Linux Special Edition

  • Мандатный контроль (Parsec/МАК): Не блокирует настройку bonding, но требует запуска команд от root или пользователя с привилегией net_admin.
  • Аудит: В SE включён auditd. Настройка сети логируется в /var/log/audit/audit.log.
  • Графическая среда (Fly): Если используется десктоп, настройка через nmcli или GUI Network Manager может перезаписать конфиги. Для серверов рекомендуется отключить NetworkManager: sudo systemctl disable NetworkManager.
  • LACP (режим 4): Обязательно согласуйте настройки с сетевым администратором. На коммутаторе должен быть создан агрегированный порт (LAG) с включённым LACP (обычно mode active или passive).

6. Устранение неполадок

Симптом Решение
bond0 не поднимается Проверьте journalctl -u networking -f или journalctl -u systemd-networkd -f
Currently Active Slave = none Проверьте физический линк, ethtool <iface>, кабели, порт свитча
ifup: interface bond0 already configured Удалите дублирующие конфиги в /etc/network/interfaces.d/ или systemd-networkd
Модуль bonding не загружается sudo modprobe bonding && echo "bonding" >> /etc/modules
Пинги рвутся при переключении Добавьте bond-fail_over_mac 1 (active-backup) или bond-arp-interval 1000 bond-arp-ip-target 192.168.1.1

Итоговые рекомендации

  1. Всегда тестируйте конфигурацию в консоли или через KVM.
  2. Для active-backup добавьте bond-miimon 100 и опционально bond-arp-interval 1000 bond-arp-ip-target <IP_шлюза> для более быстрой реакции на потерю связности.
  3. В продакшене используйте режим 802.3ad только при наличии LACP на коммутаторе.
  4. Фиксируйте изменения в документации и делайте бэкапы /etc/network/ или /etc/systemd/network/.