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

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

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

Версия 1 Следующий »

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


Введение

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

  1. Политика «активный-резервный» (active-backup): активен только один сетевой интерфейс из объединённых. Другой интерфейс может стать активным только в том случае, когда неработоспособен текущий активный интерфейс. Эта политика применяется для повышения отказоустойчивости;

  2. Политика агрегирования каналов по открытому стандартному протоколу LACP: создаются агрегированные группы сетевых карт с одинаковой скоростью и дуплексом. При таком объединении передача данных задействует все каналы в активной агрегации, согласно стандарту IEEE 802.3ad. Выбор интерфейса для отправки пакета определяется политикой, по умолчанию «XOR» политика;

  3. Политика адаптивной балансировки нагрузки (balance-alb). Включает в себя режим адаптивной балансировки нагрузки передачи, а также осуществляет балансировку входящего трафика. Не требует дополнительной настройки на коммутаторе. Балансировка входящего трафика достигается путём ARP переговоров. Драйвер bonding перехватывает ARP ответы, отправляемые с локальных сетевых карт наружу, и переписывает MAC адрес источника на один из уникальных MAC адресов сетевой карты, участвующей в объединении. Таким образом различные пиры используют различные MAC адреса сервера. Балансировка входящего трафика распределяется последовательно (round-robin) между интерфейсами.

Далее предполагается, что управление сетевыми интерфейсами осуществляется с помощью службы networking. Подробнее про варианты управления сетевыми интерфейсами см. Настройка сетевых подключений в ОС Astra Linux


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

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

Рисунок 1 - Агрегация в режиме active-backup

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

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

  1. На каждом компьютере установить пакеты ifenslave и iperf командой:

    sudo apt install ifenslave iperf


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

    sudo systemctl stop networking

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

  1. Параметры сетевых карт:
    auto eth3 iface eth3 inet manual auto eth4 iface eth4 inet manua




        1.  
  1. Параметры агрегирующего интерфейса:

    auto bond0
    iface bond0 inet static
    pre-up modprobe bonding mode=active-backup arp_interval=100 arp_ip_target=<IP-адрес_другого_компьютера>
    post-down rmmod bonding
    address <собственный_IP-адрес>
    netmask 255.255.255.0
    bond-mode active-backup
    bond-primary eth3
    bond-miimon 100
    bond-downdelay 150
    bond-updelay 150
    bond-slaves eth3 eth4 

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

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

        sudo systemctl start networking.


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

sudo iperf -s -i 1

где

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

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

Для проверки работоспособности агрегирования интерфейсов в режиме active-backup на ПК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 секунд, время можно увеличить) вытащить сетевой кабель из физического интерфейса которому соответствует имя eth3 (т.к. данный интерфейс является первичным согласно настройкам) и посмотреть на выдаваемый лог утилиты iperf, где можно увидеть наличие провалов скорости, - это свидетельствует о том, что произошло переключении с одного физического интерфейса (eth3) на второй физический интерфейс (eth4).

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


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

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

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

sudo apt install ifenslave

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

sudo modprobe bonding

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

sudo systemctl stop networking

Настроить конфигурационный файл interfaces командой:

sudo nano /etc/network/interfaces

В качестве примера приводится настройка агрегации каналов по стандарту IEEE 802.3ad для интерфейса bond0:

Пример

auto lo

iface lo inet loopback


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 это интерфейс агрегированных каналов.

Пример вывода команды cat /proc/net/bonding/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 в ОС СН требуется:

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

sudo apt install ifenslave iperf

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

sudo systemctl stop networking

3) Настроить конфигурационный файл /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) в данный момент.



  • Нет меток