Источник: selfhosting.sh


Краткое заключение

Для большинства домашних серверов объединение NIC не требуется. Одна гигабитная связь справляется с типичными нагрузками самообслуживания. Если вам требуется больше пропускной способности, обновите до 2.5 GbE или 10 GbE вместо объединения двух портов 1 GbE. Объединение имеет смысл, когда вам нужна резервная система (избыточность) или когда вы обслуживаете множество одновременно подключенных клиентов и хотите агрегированную пропускную способность.
Получите конфигурации Docker Compose, выбор аппаратного обеспечения и ярлыки настройки, которые мы не публикуем в статьях. Раз в неделю. Без спама.
Подписаться

Что такое объединение NIC?

Объединение NIC (также называемое объединением NIC или агрегацией каналов) комбинирует два или более физических сетевых интерфейсов в один логический интерфейс. В результате может увеличиться агрегированная пропускная способность, обеспечиваться защита от сбоев или то и другое — в зависимости от выбранного режима объединения.
Распространенное заблуждение: Объединение двух NIC на 1 Гбит/с не дает вам 2 Гбит/с для одного клиента. Одно TCP-соединение между двумя устройствами ограничивается скоростью одного физического канала (1 Гбит/с). Объединение увеличивает пропускную способность для нескольких одновременно открытых соединений — воспринимайте это как добавление полос движения на автостраде, а не как увеличение предела скорости.

Режимы объединения

Linux поддерживает семь режимов объединения. Эти четыре имеют отношение к домашним серверам:

Режим 1: Активный-Резервный (Резервирование)

Один NIC обрабатывает весь трафик. Второй NIC остается неактивным в режиме ожидания. Если активный NIC или его кабель выходят из строя, трафик автоматически переключается на резервный.
* Поддержка коммутатора требуется: Нет
* Увеличение пропускной способности: Нет
* Сценарий использования: Избыточность для служб, которые должны оставаться в сети

Режим 2: Балансировка-XOR

Распределяет трафик между NIC на основе хеширования MAC или IP-адресов источника/назначения. Разные клиенты подключаются к разным NIC, распределяя нагрузку.
* Поддержка коммутатора требуется: Нет
* Увеличение пропускной способности: Да (агрегированная, не на одно соединение)
* Сценарий использования: Серверы с большим количеством одновременно подключенных клиентов

Режим 4: LACP (802.3ad)

Отраслевой стандарт для агрегации каналов. Оба конца (сервер и коммутатор) согласовывают Группу агрегации каналов (LAG). Трафик распределяется по всем связующим каналам. Если один канал выходит из строя, трафик перераспределяется к оставшимся каналам.
* Поддержка коммутатора требуется: Да (управляемый коммутатор с поддержкой 802.3ad)
* Увеличение пропускной способности: Да (агрегированная, не на одно соединение)
* Сценарий использования: Лучший вариант — пропускная способность + резервирование

Режим 6: Адаптивная балансировка нагрузки

Распределяет исходящий трафик между NIC на основе нагрузки. Не требует поддержки коммутатора. Входящий трафик поступает только на один NIC.
* Поддержка коммутатора требуется: Нет
* Увеличение пропускной способности: Только для исходящих
* Сценарий использования: Ассиметричные нагрузки (обслуживание файлов для множества клиентов)

Когда использовать объединение

Сценарий Рекомендация
Один пользователь получает доступ к NAS Пропустите объединение — одного канала 1 GbE достаточно
3+ пользователей одновременно ведут потоковое воспроизведение Объединение помогает распределить нагрузку
Доступность сервера критична Активный-резервный для резервирования
У вас есть управляемый коммутатор с LACP Используйте LACP для агрегированной пропускной способности + резервирования
Вы хотите более быстрые передачи для одного клиента Обновите до 2.5/10 GbE вместо этого

Настройка: Linux (Объединение двух NIC с LACP)

Предварительные требования

  • Два Ethernet NIC на вашем сервере (встроенный + PCIe-карта или двухпортовый NIC)
  • Управляемый коммутатор, поддерживающий 802.3ad LACP
  • Два Ethernet-кабеля

Шаг 1: Установка инструментов объединения

sudo apt install ifenslave    # Debian/Ubuntu
sudo modprobe bonding

Шаг 2: Настройка объединения

Отредактируйте файл /etc/network/interfaces:

# Отключите возможность индивидуальным NIC получать IP-адреса
auto eth0
iface eth0 inet manual
    bond-master bond0

auto eth1
iface eth1 inet manual
    bond-master bond0

# Создайте интерфейс объединения
auto bond0
iface bond0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 192.168.1.1
    bond-mode 802.3ad
    bond-miimon 100
    bond-lacp-rate fast
    bond-xmit-hash-policy layer3+4
    bond-slaves eth0 eth1

Объяснение конфигурации:
* bond-mode 802.3ad — режим LACP
* bond-miimon 100 — проверка состояния канала каждые 100 мс
* bond-lacp-rate fast — обмен LACP-пакетами каждую секунду (вместо каждых 30 секунд)
* bond-xmit-hash-policy layer3+4 — распределение трафика на основе IP + порта (лучшее распределение для типичных нагрузок)

Шаг 3: Настройка коммутатора

На вашем управляемом коммутаторе создайте LAG (группу агрегации каналов) с двумя портами, подключенными к вашему серверу. Включите 802.3ad/LACP на этих портах. Точные шаги зависят от производителя коммутатора:
* Ubiquiti UniFi: Настройки → Управление портами → выберите оба порта → Создать агрегацию канала
* Netgear: Коммутируемость → LAG → Добавить LAG → Выберите порты → Установите на LACP
* TP-Link: L2-функции → Агрегация каналов → Создать группу → Включить LACP

Шаг 4: Активировать и проверить

sudo systemctl restart networking

Проверьте статус объединения:

cat /proc/net/bonding/bond0

Вы должны увидеть оба интерфейса в активном состоянии с «MII Status: up».

Настройка: Активный-Резервный (Без настройки коммутатора)

Если у вас нет управляемого коммутатора или просто хотите резервирование:

auto bond0
iface bond0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    bond-mode active-backup
    bond-miimon 100
    bond-primary eth0
    bond-slaves eth0 eth1

bond-primary eth0 делает eth0 стандартным активным NIC. eth1 подключается только в том случае, если eth0 отключается.

Настройка: Proxmox

Proxmox поддерживает объединение через веб-интерфейс или /etc/network/interfaces:

auto eth0
iface eth0 inet manual

auto eth1
iface eth1 inet manual

auto bond0
iface bond0 inet manual
    bond-slaves eth0 eth1
    bond-mode 802.3ad
    bond-miimon 100
    bond-xmit-hash-policy layer3+4

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    bridge-ports bond0
    bridge-stp off
    bridge-fd 0

Мост (vmbr0) находится выше объединения, и ВМ используют мост как обычно.

Настройка: Unraid

Unraid поддерживает объединение через Настройки → Сетевые настройки:
1. Установите «Члены объединения» на ваши два NIC
2. Выберите режим объединения (balance-alb для настройки без коммутатора, 802.3ad если ваш коммутатор его поддерживает)
3. Примените и перезагрузите

Альтернатива: Несколько подсетей (без объединения)

Вместо объединения назначьте каждому NIC отдельную задачу:
NIC| Сеть| Назначение
---|---|---
eth0| 192.168.1.0/24| LAN-сервисы (Nextcloud, Jellyfin)
eth1| 10.0.0.0/24| Сеть хранения (NAS, резервные копии)
Это дает вам выделенную пропускную способность для трафика хранения без сложности объединения. Обычно используется в настройках Proxmox, где трафик ВМ и трафик хранения разделены.

Аппаратное обеспечение: добавление второго NIC

Карты PCIe NIC

Карта Скорость Порты Цена
Intel I350-T2 1 GbE 2 $15–25 (б/у)
Intel I350-T4 1 GbE 4 $25–40 (б/у)
Intel X550-T2 10 GbE 2 $60–90 (б/у)
Mellanox ConnectX-3 10 GbE 2 $25–40 (б/у)
Для объединения 1 GbE стандартная рекомендация — Intel I350-T2 — двухпортовый, корпоративного класса и очень дешевый на eBay.
### USB адаптеры Ethernet
Если у вашего сервера нет слота PCIe (мини ПК, тонкие клиенты), USB 3.0 Ethernet адаптеры работают для объединения:
* Адаптеры на основе Realtek RTL8153: ~$15, 1 GbE
* USB 3.0 на 2.5 GbE адаптеры: ~$20

USB-адаптеры вводят некоторую нагрузку на процессор и задержку, но они функциональны для активного-резервного сценария.

Ожидания по производительности

Конфигурация Максимум для одного клиента Агрегат для нескольких клиентов
1x 1 GbE ~940 Мбит/с ~940 Мбит/с
2x 1 GbE объединены (LACP) ~940 Мбит/с ~1,880 Мбит/с
1x 2.5 GbE ~2,350 Мбит/с ~2,350 Мбит/с
2x 2.5 GbE объединены ~2,350 Мбит/с ~4,700 Мбит/с
1x 10 GbE ~9,400 Мбит/с ~9,400 Мбит/с
Один NIC на 2.5 GbE дает больше пропускной способности для одного клиента, чем два объединенных NIC на 1 GbE. Если ваше "узкое место" — скорость для одного клиента (один человек копирует файлы), обновите скорость NIC. Если ваше "узкое место" — множество клиентов одновременно (семейное потоковое воспроизведение, несколько заданий резервного копирования), объединение поможет.

FAQ

Нужно ли мне связывание для домашнего NAS?

Вероятно, нет. Один порт 1 GbE насыщается на уровне ~110 МБ/с, что быстрее, чем записывают большинство потребительских HDD. Для более быстрых передач с одним клиентом, обновите до 2.5 GbE (20–30 долларов за NIC), а не связывайте.

Могу ли я связать NIC разной скорости?

Технически да, но связывание работает на скорости самого медленного участника в большинстве режимов. Связывание 1 GbE и 2.5 GbE NIC расходует пропускную способность 2.5 GbE NIC. Используйте совпадающие NIC.

Требуется ли для связывания управляемый коммутатор?

Только для LACP (Режим 4). Активно-пассивное (Режим 1) и адаптивное балансирование нагрузки (Режим 6) работают с любым неуправляемым коммутатором.

Что произойдет, если один NIC выйдет из строя?

Во всех режимах связывания связь продолжает работу с оставшимися NIC. Трафик автоматически перенаправляется — без необходимости ручного вмешательства.

Related