Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 2 Следующий »

Данная статья применима к:


Введение

Под агрегацией (агрегированием) сетевых каналов понимают объединение нескольких параллельных каналов передачи данных в сетях Ethernet в один логический канал, позволяющее увеличить пропускную способность и повысить надёжность. Поведение такого сетевого канала зависит от выбранного режима работы. В общем случае, объединенные сетевые интерфейсы могут работать в режиме горячего резерва (отказоустойчивости) или в режиме балансировки нагрузки. Режим (политика) работы определяется параметрами (опциями) модуля ядра bonding. Далее к рассмотрению представлены следующие режимы:

  • Политика «активный-резервный» (active-backup): активен только один сетевой интерфейс из объединённых. Другой интерфейс может стать активным только в том случае, когда неработоспособен текущий активный интерфейс. Эта политика применяется для повышения отказоустойчивости;
  • Политика агрегирования каналов по открытому стандартному протоколу LACP: создаются агрегированные группы сетевых карт с одинаковой скоростью и дуплексом. При таком объединении передача данных задействует все каналы в активной агрегации, согласно стандарту IEEE 802.3ad. Выбор интерфейса для отправки пакета определяется политикой, по умолчанию «XOR» политика;
  • Политика адаптивной балансировки нагрузки (balance-alb). Включает в себя режим адаптивной балансировки нагрузки передачи, а также осуществляет балансировку входящего трафика. Не требует дополнительной настройки на коммутаторе. Балансировка входящего трафика достигается путём ARP переговоров. Драйвер bonding перехватывает ARP ответы, отправляемые с локальных сетевых карт наружу, и переписывает MAC адрес источника на один из уникальных MAC адресов сетевой карты, участвующей в объединении. Таким образом различные пиры используют различные MAC адреса сервера. Балансировка входящего трафика распределяется последовательно (round-robin) между интерфейсами.

Примеры настройки агрегирования

В примерах предполагается, что:

  • Управление сетевыми интерфейсами осуществляется с помощью службы networking. Подробнее про варианты управления сетевыми интерфейсами см. Настройка сетевых подключений в ОС Astra Linux;
  • На каждом компьютере имеется две сетевые карты с именами eth0 и eth1;
  • Агрегирующий интерфейс создается с именем bind0.

Общие настройки для всех примеров для всех компьютеров

  1. Установить пакеты ifenslave и iperf командой:

    sudo apt install ifenslave iperf

    Пакет ifenslave нужен для настройки агрегации, пакет iperf используется для тестирования.

  2. Внести в конфигурационный файл /etc/network/interfaces следующие параметры:

    auto eth0 eth1 bond0
    iface eth0 inet manual
    iface eth1 inet manual

    Параметр auto

Настройка агрегации в режиме active-backup

Настройка агрегации каналов в режиме active-backup рассмотрена на примере инфраструктуры, где два компьютера соединены друг с другом напрямую двумя соединениями.

При настройке агрегации одному компьютеру будит присвоен адрес 10.1.1.2, другому - 10.1.1.3.

Для настройки и запуска агрегации в режиме active-backup в Astra Linux:

Остановить службу работы сети командой:

sudo systemctl stop networking



На обоих компьютерах внести в конфигурационный файл /etc/network/interfaces параметры агрегирующего интерфейса:

iface bond0 inet static
    pre-up modprobe
    bonding mode=active-backup arp_interval=100 arp_ip_target=10.1.1.2 post-down rmmod bonding
    address 10.1.1.1


Где вместо параметра <IP-адрес_другого_компьютера> указать на одном компьютере IP-адрес 10.1.1.3, на другому - 10.1.1.2, а вместо параметра <собственный_IP-адрес> - наоброт,  10.1.1.2, на другому - 10.1.1.3.



Запустить службу работы сети командой:

sudo systemctl start networking.



Для проверки работоспособности агрегирования интерфейсов в режиме active-backup:

На одном компьютере выполнить команду iperf:


sudo iperf -s -i 1

где:
-s - запуск в режиме сервера;
-i - интервал между отчетами (в секундах);

На другом компьютере выполнить команду iperf:



sudo iperf -c <IP-адрес_другого_компьютера> -p 5001 -i 1 -n 100M -t 60



где

-c - ip-адрес сервера;

-p - порт на котором работает сервер;

-i - интервал между отчетами (в секундах);

-n - количество байт для передачи;

-t - продолжительность выполнения теста;

Во время выполнения теста iperf  (тест длится 60 секунд, время можно увеличить);

Отключить сетевой кабель из физического интерфейса которому соответствует имя eth3  (т.к. данный интерфейс является первичным согласно настройкам) и проверить отчеты теста, где можно увидеть наличие провалов скорости, - это свидетельствует о том, что произошло переключении с одного физического интерфейса (eth3) на второй физический интерфейс (eth4).

Подключить сетевой кабель обратно в физический интерфейс с именем eth3, после чего в журнале теста можно наблюдать наличие провала скорости, свидетельствующего о том, что произошло обратное переключение на активный интерфейс eth3 (согласно сетевым настройкам).

Настройка агрегации по стандарту IEEE 802.3ad (LACP)


Для настройки и запуска агрегации каналов по стандарту IEEE 802.3ad в Astra Linux:

Загрузить модуль для ядра командой:


sudo modprobe bonding



Остановить службу работы сети командой:


sudo systemctl stop networking



Внести в конфигурационный файл /etc/network/interfaces следующие параметры:

auto eth0
iface eth0 inet manual
auto eth1
iface eth1 inet manual
auto bond0
iface bond0 inet static
address 192.168.0.1
netmask 255.255.255.0
bond-mode 4
bond-miimon 100
bond-downdelay 200
bond-updelay 200
bond-xmit-hash-policy 1
slaves eth0 eth1

Запустить службу работы сети командой:


sudo systemctl start networking



Для проверки статуса работы сетевого интерфейса выполнить команду:


cat /proc/net/bonding/bond0

где bond0 - имя интерфейса агрегированных каналов. Пример вывода команды:
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 200
802.3ad info
LACP rate: slow
Active Aggregator Info:
Aggregator ID: 2
Number of ports: 2
Actor Key: 17
Partner Key: 13
Partner Mac Address: 00:14:a8:82:87:80
Slave Interface: eth0
MII Status: up
Link Failure Count: 1
Permanent HW addr: 00:30:48:59:e9:c6
Aggregator ID: 2
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:30:48:59:e9:c7
Aggregator ID: 2

Проверка считается успешной, если в выводе команды cat /proc/net/bonding/bond0 отображается строчка «Bonding Mode: IEEE 802.3ad Dynamic link aggregation» и все перечисленные сетевые интерфейсы, например, «Slave Interface: eth0», находятся в статусе «MII Status: up».

Настройка режима адаптивной балансировки нагрузки balance-alb

Настройка агрегации каналов в режиме balance-alb рассмотрена на примере инфраструктуры, где каждый из двух компьютеров подключен двумя соединениями к неуправляемому коммутатору (рисунок 2).

Рисунок 2 - Агрегация в режиме balance-alb

Для настройки и запуска агрегации в режиме balance-alb в Astra Linux:

Останавить службу работы сети командой:
sudo systemctl stop networking
Настроить конфигурационный файл /etc/network/interfaces командой в соответствии с примером:

Настройки /etc/network/interfaces на ПК1:

auto eth3

iface eth3 inet manual

auto eth4

iface eth4 inet manual



# режим balance-alb

auto bond0

iface bond0 inet static

pre-up modprobe bonding mode=balance-alb

post-down rmmod bonding

address 10.1.1.1

netmask 255.255.255.0

bond-mode 6

bond-miimon 100

bond-downdelay 150

bond-updelay 150

bond-slaves eth3 eth4




Пример

Настройки /etc/network/interfaces на ПК2:

auto eth3

iface eth3 inet manual

auto eth4

iface eth4 inet manual



# режим balance-alb

auto bond0

iface bond0 inet static

pre-up modprobe bonding mode=balance-alb

post-down rmmod bonding

address 10.1.1.2

netmask 255.255.255.0

bond-mode 6

bond-miimon 100

bond-downdelay 150

bond-updelay 150

bond-slaves eth3 eth4



4) Убедиться, что сетевые интерфейсы, которые будут использоваться для агрегации каналов, больше нигде не используются и не настроены в других сетевых приложениях;

5) Запустить службу работы сети командой:

sudo systemctl start networking.

Для проверки работоспособности агрегирования интерфейсов в режиме balance-alb на ПК2 запустить команду iperf в качестве сервера с параметрами:

sudo iperf -s -i 1

где

-s - запуск в режиме сервера;

-i - интервал между отчетами (в секундах).

Для проверки работоспособности агрегирования интерфейсов в режиме balance-alb на ПК1 запустить команду iperf в качестве клиента с параметрами:

sudo iperf -c 10.1.1.2 -p 5001 -i 1 -n 100M -t 60

где

-c - ip-адрес сервера;

-p - порт на котором работает сервер;

-i - интервал между отчетами (в секундах);

-n - количество байт для передачи;

-t - время выполнения теста.

Все сетевые интерфейсы — 1 Гбит/с.

Во время выполнения теста iperf (тест длится 60 секунд, время можно увеличить) необходимо поочерёдно вытаскивать сетевой кабель из физического интерфейса на обоих ПК, выждать 5 секунд (время можно увеличить) и воткнуть сетевой кабель обратно.

После запуска выполнения теста в соседнем терминале выполнить команду:

ip -a

и посмотреть МАС-адреса на физических интерфейсах.

Вытащить один из сетевых кабелей и одном ПК, выполнить команду:

ip -a

в соседнем терминале, сравнить МАК-адреса интерфейсов с предыдущим выводом команды ip -a.

Повторить тест на обоих ПК поочерёдно.

Результатом работы режима адаптивной балансировки нагрузки будет переписывание MAC-адреса сетевой карты (eth3, eth4) на адрес, присвоенный интерфейсу bond0 (взятый с одного из интерфейсов eth3 или eth4) в данный момент.



  • Нет меток