Идеи могут быть обезврежены только идеями (О. Бальзак).

Как настроить подключение канала Ethernet в Linux для балансировки нагрузки

01.05.2025
Как настроить подключение канала Ethernet в Linux для балансировки нагрузки

Если у вас есть две или более сетевых карт (NIC) и вы хотите узнать, можно ли использовать их вместе, чтобы увеличить скорость или сделать сетевое подключение более надёжным, то вы попали по адресу.

В этой статье объясняется, что такое объединение каналов Ethernet (также называемое объединением сетевых карт или объединением интерфейсов), как его настроить, как оно работает и как оно может помочь вам сбалансировать трафик или предотвратить простои сети.

 

Что такое подключение к каналу Ethernet?

Проще говоря, объединение каналов Ethernet позволяет объединить несколько физических сетевых карт в один виртуальный сетевой адаптер (bond0), который обрабатывает сетевой трафик и взаимодействует с физическими интерфейсами (такими как eth1 и eth2) за кулисами.

Вот что вы получите от этого:

  • Резервирование: если один сетевой адаптер выходит из строя (отключается или выходит из строя), ваш сервер продолжает работать, используя другой.
  • Балансировка нагрузки: трафик распределяется между обоими сетевыми адаптерами, что в некоторых случаях может повысить производительность.
  • Один IP-адрес: даже если у вас два сетевых адаптера, вам нужен только один IP-адрес для объединённого интерфейса.

 

Такая настройка часто используется на серверах, производственных системах или сетевых устройствах, где критически важны бесперебойная работа и производительность.

 

Обзор режимов объединения

В Linux есть около 6 режимов объединения, но сейчас мы рассмотрим только два наиболее распространённых и практичных:

Режим 0 – Балансировка нагрузки (циклический перебор)

  • Отправляет пакеты по порядку через все доступные интерфейсы (eth1eth2 и т.д.).
  • Обеспечивает как избыточность, так и повышение производительности.
  • Отлично подходит для сбалансированного исходящего трафика.
  • Примечание: ваш коммутатор должен поддерживать эту функцию (например, LACP или статическую агрегацию каналов).

 

Режим 1 – Активный-Резервное копирование

  • Одновременно активен только один сетевой адаптер.
  • Если активная сетевая карта выходит из строя, ее заменяет другая.
  • Обеспечивает высокую доступность (избыточность), а не скорость.
  • Никакой специальной настройки коммутатора не требуется.
Читать  Как я могу проверить скорость моей сетевой карты Linux

 

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

Прежде чем мы начнем, убедитесь, что:

  • Вы используете систему на базе Red Hat (например, RHELAlma LinuxRocky Linux).
  • У вас есть root-доступ или привилегии sudo.
  • У вас есть две сетевые карты: eth1 и eth2.
  • Ваша система использует сетевые скрипты или NetworkManager.

 

(Если вы используете Ubuntu/Debian, объединение выполняется через Netplan.

 

Шаг 1: Загрузите модуль Bonding Kernel

Прежде чем Linux сможет объединить две или более сетевых карт (NIC), ему необходимо загрузить специальное программное обеспечение под названием модуль ядра bonding.

По умолчанию в большинстве систем Linux доступен этот модуль объединения, но он не загружается автоматически, если вы не укажете, что его нужно загрузить.

sudo modprobe bonding

 

Чтобы функция объединения была доступна при каждом запуске системы, вам нужно зарегистрировать её для автоматической загрузки.

echo "bonding" | sudo tee /etc/modules-load.d/bonding.conf

 

Чтобы проверить, успешно ли загружен модуль, используйте:

lsmod | grep bonding

 

Шаг 2: Настройте eth1 и eth2 для соединения

На этом этапе мы подготавливаем каждый физический сетевой интерфейс (eth1 и eth2) для присоединения к группе объединения. Представьте, что bond0 — это лидер группы, а эти два интерфейса — члены его группы (подчиненные). Они больше не будут работать независимо — они будут взаимодействовать только через bond0.

Мы делаем это путем создания или редактирования конфигурационных файлов для каждого интерфейса.

  • /etc/sysconfig/сетевые скрипты/ifcfg-eth1
  • /etc/sysconfig/сетевые скрипты/ifcfg-eth2

 

Теперь откройте и отредактируйте файл ifcfg-eth1 со следующей конфигурацией.

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

 

Сделайте то же самое для ifcfg-eth2.

DEVICE=eth2
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

 

Без этой настройки ядро не будет знать, что eth1 и eth2 должны работать вместе. Кроме того, не назначайте IP-адреса eth1 или eth2. IP-адрес должен быть только у bond0. В противном случае операционная система запутается при попытке маршрутизировать трафик.

Читать  Как использовать bridge-utils в Ubuntu

 

Шаг 3: Создайте интерфейс связи (bond0)

Хорошо, до сих пор вы говорили Linux, что eth1 и eth2 должны работать как подчинённые, но подчинённым нужен хозяин, верно? Этот хозяин — то, что мы здесь создаём: объединённый интерфейс с именем bond0.

Для балансировки нагрузки (mode 0) – Создайте конфигурационный файл ifcfg-bond0.

vi /etc/sysconfig/network-scripts/ifcfg-bond0

 

Добавьте следующую конфигурацию.

DEVICE=bond0
TYPE=Bond
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
BONDING_OPTS="mode=0 miimon=100"

 

Для активного резервного копирования (mode 1) — Просто измените параметр привязки:

BONDING_OPTS="mode=1 miimon=100"

 

В зависимости от вашей системы:

sudo systemctl restart NetworkManager

 

Или, если вы используете более старую сетевую службу:

sudo systemctl restart network

 

Шаг 4: Проверьте состояние склеивания

После настройки объединения и перезапуска сетевого сервиса необходимо убедиться, что объединение работает правильно.

watch -n 1 cat /proc/net/bonding/bond0

 

Пример вывода для режима 0 (циклический перебор):

Bonding Mode: load balancing (round-robin)
Slave Interface: eth1
Slave Interface: eth2
MII Status: up

 

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

Bonding Mode: fault-tolerance (active-backup)
Currently Active Slave: eth1
Slave Interface: eth2

 

Это показывает, какая сетевая карта активна и подключены ли обе ссылки.

 

Дополнительно: Тестовый переход на другой ресурс (режим активного резервного копирования)

Хотите проверить, что происходит при выходе из строя одной сетевой карты?

sudo ifconfig eth1 down
# eth2 должен автоматически стать активным
watch -n 1 cat /proc/net/bonding/bond0

 

Верни это обратно:

sudo ifconfig eth1 up

 

Вы увидите, что Linux автоматически переключает интерфейсы без простоев — в этом прелесть объединения!

 

Советы по устранению неполадок

  • Если bond0 не отображается, проверьте ещё раз файлы конфигурации и убедитесь, что все интерфейсы включены.
  • Убедитесь, что связующий модуль загружен (lsmod | grep bonding).
  • Например, для mode 0 некоторых коммутаторов требуются настройки агрегирования каналов на их конце.
  • Используйте ip addr вместо ifconfig в более новых системах.
Читать  SFP Модуль: Компактный гигант в мире сетей

 

Как удалить привязку канала Ethernet

Иногда вам может понадобиться отключить объединение и вернуться к использованию сетевых карт по отдельности, например, для тестирования, устранения неполадок или перенастройки сервера.

sudo systemctl stop NetworkManager
sudo ip link set bond0 down
sudo modprobe -r bonding

 

Теперь перейдите к удалению файлов конфигурации, которые настраивают соединение:

sudo rm /etc/sysconfig/network-scripts/ifcfg-bond0

 

Кроме того, отредактируйте файлы конфигурации для eth1 и eth2, чтобы удалить строки MASTER и SLAVE и вернуть их в качестве отдельных интерфейсов.

Вот как должен выглядеть отдельный ifcfg-eth1 файл:

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp

 

Или со статическим IP-адресом:

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.101
NETMASK=255.255.255.0

 

Сделайте то же самое для eth2.

Как только всё будет готово, перезапустите NetworkManager, чтобы снова включить интерфейсы.

sudo systemctl start NetworkManager

 

Вы можете подтвердить это с помощью:

ip addr

 

Теперь вы должны увидеть, что eth1 и eth2 снова работают, а bond0 исчезло.

 

Заключение

Объединение каналов Ethernet — это полезный и простой инструмент для повышения производительности и надёжности сети в системах Linux. Объединение каналов позволяет максимально эффективно использовать оборудование, независимо от того, нужно ли вам сбалансировать трафик между несколькими сетевыми интерфейсами или обеспечить резервирование на случай сбоя сетевого адаптера.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Если статья понравилась, то поделитесь ей в социальных сетях:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

**ссылки nofollow

Это может быть вам интересно


Загрузка...

Спасибо!

Теперь редакторы в курсе.

Scroll to Top