Источник: 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. Трафик автоматически перенаправляется — без необходимости ручного вмешательства.