Подробный гайд: Настройка бондинга в Ubuntu 16.04: как сделать Primary Slave None

Подробный гайд по настройке сетевого бондинга в Ubuntu 16.04. Создаем интерфейс bond0 и оставляем Primary Slave в значении None для корректной работы.

2026.07.04                  


Подробный гайд: Настройка бондинга в Ubuntu 16.04: как сделать Primary Slave NoneПодробный гайд: Настройка бондинга в Ubuntu 16.04: как сделать Primary Slave None Настройка сетевого бондинга (агрегации каналов) в Ubuntu 16.04 отличается от более новых версий, так как в этой ОС используется классический сетевой стек ifupdown (файл /etc/network/interfaces), а не Netplan.

Состояние Primary Slave: None означает, что в бондинге не задан жёсткий приоритет для конкретного физического интерфейса. Система будет выбирать активный интерфейс на основе порядка их инициализации или состояния линка (что является поведением по умолчанию, если параметр bond-primary не указан).

Ниже представлен подробный пошаговый гайд.


Шаг 1. Установка необходимых пакетов

Для работы бондинга в Ubuntu 16.04 требуется пакет ifenslave.

Откройте терминал и выполните:

sudo apt-get update
sudo apt-get install ifenslave

Шаг 2. Загрузка модуля ядра bonding

Загрузим модуль bonding в ядро, чтобы убедиться, что он работает:

sudo modprobe bonding

Чтобы модуль загружался автоматически при каждой загрузке системы, добавьте его в файл /etc/modules:

echo "bonding" | sudo tee -a /etc/modules

Шаг 3. Настройка сетевых интерфейсов

Перед редактированием обязательно сделайте резервную копию текущего файла настроек сети:

sudo cp /etc/network/interfaces /etc/network/interfaces.backup

Теперь откройте файл для редактирования:

sudo nano /etc/network/interfaces

Вам нужно настроить виртуальный интерфейс bond0 и подчинить ему ваши физические интерфейсы (в примере используем eth0 и eth1 — замените их на названия ваших реальных интерфейсов, которые можно посмотреть через ip a).


Пример конфигурации:

# Настройка физического интерфейса 1
auto eth0
iface eth0 inet manual
    bond-master bond0
    bond-primary none

# Настройка физического интерфейса 2
auto eth1
iface eth1 inet manual
    bond-master bond0
    bond-primary none

# Настройка виртуального интерфейса бондинга
auto bond0
iface bond0 inet static
    address 192.168.1.100       # Ваш IP-адрес
    netmask 255.255.255.0       # Ваша маска сети
    gateway 192.168.1.1         # Ваш шлюз
    dns-nameservers 8.8.8.8 1.1.1.1

    # Указываем физические интерфейсы
    bond-slaves eth0 eth1

    # Выбираем режим бондинга (примеры ниже)
    bond-mode 802.3ad           # Режим LACP (требует поддержки коммутатора)
    # bond-mode active-backup   # Режим активного резервирования (не требует настроек свитча)

    bond-miimon 100             # Проверка состояния линка каждые 100 мс
    bond-downdelay 200
    bond-updelay 200

    # Параметры для режима 802.3ad (LACP)
    bond-lacp-rate fast
    bond-xmit-hash-policy layer2+3

    # ВАЖНО: Чтобы Primary Slave был None, СТРОКУ bond-primary МЫ НЕ УКАЗЫВАЕМ!

Как гарантировать "Primary Slave: None":

В режиме active-backup (mode 1) бондинг использует параметр bond-primary. Если вы не пишете строку bond-primary eth0 (или bond-primary none), система по умолчанию оставляет Primary Slave равным None. Первый интерфейс из bond-slaves, который поднимется, станет активным.


Шаг 4. Применение настроек

В Ubuntu 16.04 safest way (самый безопасный способ) применить изменения сети — это перезагрузка.

Но если вы подключены по SSH и не хотите перезагружать сервер, можно попробовать перезапустить сетевую службу:

sudo systemctl restart networking

Примечание:

Если после этого вы потеряли связь, просто перезагрузите сервер физически или через панель управления хостингом — настройки применятся при старте.


Если сервер доступен локально или через IPMI/iLO, лучше выполнить:

sudo reboot

Шаг 5. Проверка результата

После загрузки системы проверьте статус бондинга.

Выполните команду:

cat /proc/net/bonding/bond0

В выводе вы должны увидеть примерно следующее (обратите внимание на строку Primary Slave):

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (1)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200

802.3ad info
lacp rate: fast
...

Slave Interface: eth0
MII Status: up
...
Slave Interface: eth1
MII Status: up
...

Чтобы убедиться, что Primary Slave именно None, выполните специфичную проверку через grep (особенно полезно для режима active-backup):

cat /proc/net/bonding/bond0 | grep "Primary Slave"

Ожидаемый вывод:

Primary Slave: None

Также проверьте, что IP-адрес назначен именно на bond0, а не на физические интерфейсы:

ip addr show bond0

Справка по режимам бондинга (bond-mode)

  • balance-rr (0) — Round-robin. Пакеты идут по очереди. Требует настройки свитча.
  • active-backup (1) — Активный/резервный. Работает только один интерфейс, второй спит. Именно в этом режиме параметр Primary Slave имеет значение. Не требует настройки свитча.
  • balance-xor (2) — Распределение по MAC-адресам. Требует настройки свитча.
  • 802.3ad (4) — LACP. Динамическая агрегация. Требует включения LACP на портах коммутатора. Самый популярный и эффективный режим.
  • balance-tlb (5) — Адаптивная передача на основе загрузки. Не требует настройки свитча.
  • balance-alb (6) — Адаптивный баланс. Включает tlb + балансировку входящего трафика. Не требует настройки свитча.

Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Денис Аверко @Nymexis г. Омск

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта