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

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

Общий порядок настройки сетей см. в статье Настройка сетевых подключений в Astra Linux.

Порядок настройки виртуальных сетей см. в статье Виртуальные сети VLAN и VXLAN в Astra Linux.


Информация
titleДанная статья применима к:

Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
Astra Linux Special Edition РУСБ.10015-17
Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
Astra Linux Special Edition РУСБ.10015-16 исп. 1
Astra Linux Special Edition РУСБ.10015-16 исп. 2
Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
Astra Linux Common Edition 2.12


Введение

Под агрегацией (агрегированием) сетевых каналов понимают объединение нескольких

параллельных

каналов передачи данных в сетях Ethernet в один логический канал

, позволяющее

. Агрегация позволяет увеличить пропускную способность

и

или повысить надёжность. Поведение

такого

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

НазваниеКодОписаниеОтказоустойчивостьБалансировка
нагрузки
balance-rr0Отправка сетевых пакетов поочередно через все агрегированные интерфейсы (политика round-robin)ДаДа
active-backup1Отправка сетевых пакетов через активный интерфейс.
При отказе активного интерфейса (link down и т.д.) автоматически переключается на резервный интерфейс;
Да

Нет

balance-xor2Передача сетевых пакетов распределяются между интерфейсами на основе формулы (могут использоваться MAC-адрес, IP-адреса или номера IP-портов).
Один и тот же интерфейс работает с определенным получателем.
ДаДа
broadcast3Отправка всех сетевых пакетов через все агрегированные интерфейсы (широковещательная отправка).ДаНет
802.3ad4Link Agregation Control Protocol, LACP — IEEE 802.3ad.ДаНет
balance-tlb5Входящие сетевые пакеты принимаются только активным сетевым интерфейсом, исходящие распределяется в зависимости от текущей загрузки каждого интерфейса.ДаДа
balance-alb6Исходящие сетевые пакеты распределяется между интерфейсами, входящие сетевые пакеты принимаются всеми интерфейсами.ДаДа


Примечание

Для использования режимов balance-rr, balance-xor и broadcast на коммутаторе сети должен быть настроено статическое объединение портов (static port trunking).
Для использования режима 802.3ad данный режим должен поддерживаться сетевым коммутатором.
Для использования режима balance-alb требуются сетевые карты, поддерживающие смену MAC-адреса.

Далее к рассмотрению представлены следующие режимы:

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

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

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

управление

:

  • Управление агрегированными сетевыми интерфейсами осуществляется с помощью службы networking. Если на компьютере установлена служба NetworkManager, то проверить список подключений и удалить и очистить подключения, использующие агрегируемые сетевые интерфейсы, например;

    Command
    sudo nmcli con show
    sudo nmcli con del "Проводное соединение 1"
    sudo nmcli con del "Проводное соединение 2"
    sudo ip address flush dev eth1
    sudo ip address flush dev eth2

    Подробнее про варианты управления сетевыми интерфейсами см. Настройка сетевых подключений в

ОС Astra Linux
  • Astra Linux;

  • На каждом компьютере для агрегирования используются две сетевые карты с именами eth1 и eth2;
  • Агрегирующий интерфейс создается с именем bond0.

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

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

    Command
    sudo apt install ifenslave iperf

    Пакет ifenslave необходим для настройки агрегации и обеспечения работы агрегирующих интерфейсов, пакет iperf необязателен, но далее в примерах используется для тестирования.

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

    Блок кода
    auto eth1 eth2 bond0
    iface eth1 inet manual
    iface eth2 inet manual

    Параметр auto включает автоматический запуск интерфейсов при загрузке компьютере (при перезапуске службы networking), параметр manual указывает, что настройка интерфейса не должна осуществляться через службу DHCP. Параметры настройки интерфейсов будут заданы далее в примерах. Далее нужно указать в файле /etc/network/interfaces параметры агрегирующего интерфейса.

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

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

два компьютера подключены

каждый компьютер подключен к сети

передачи данных

двумя соединениями

каждый, и для подключения используются сетевые карты компьютеров eth3 и eth4 (рисунок 1)

.

Image Removed

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

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

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

требуется

:

  1. На

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

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

    Command
    sudo systemctl stop networking
На обеих
  1. обоих компьютерах внести в конфигурационный файл /etc/network/interfaces

следующие
  1. параметры

:
  1. Параметры сетевых карт:
    auto eth3 iface eth3 inet manual auto eth4 iface eth4 inet manua
    Блок кодаПараметры
  1. агрегирующего интерфейса:

    Блок кода
  2. auto bond0
  3. iface bond0 inet static
     address <собственный_IP-адрес>
     netmask 255.255.255.0
     pre-up modprobe bonding mode=active-backup arp_interval=100 arp_ip_target=<IP-адрес_другого_компьютера>
     post-down rmmod bonding
  4. address <собственный_IP-адрес>
  5. 
    
  6. netmask
  7.  
  8. 255.255.255.0
  9. bond-mode active-backup
     bond-primary 
  10. eth3
  11. eth1
     bond-miimon 100
     bond-downdelay 
  12. 150
  13. 200
     bond-updelay 150
     bond-slaves 
  14. eth3 eth4
  15. eth1 eth2


    Информация
    Значение параметра bond-downdelay должно быть кратно значению параметра bond-miimon.

    Где вместо параметра

  16. <IP-адрес_другого_компьютера>
  17. <собственный_IP-адрес> указать на одном компьютере IP-адрес 10.1.1.

  18. 3
  19. 2, на

  20. другому
  21. другом - 10.1.1.

  22. 2
  23. 3, а вместо параметра

  24. <собственный_IP-адрес> - наоброт,  10
  25. <IP-адрес_другого_компьютера> - наоборот,  на одном компьютере 10.1.1.

  26. 2
  27. 3, на

  28. другому
  29. другом - 10.1.1.

  30. 3.
    Запустить службу работы сети
  31. 2;

  32. Активировать агрегирующий интерфейс командой:

    Command
    sudo
  33. systemctl start networking.
  34. ifup bond0


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

в качестве сервера с параметрами
  1. :

    Command
    sudo iperf -s -i 1

    где:
    -s - запуск в режиме

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

.

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

sudo iperf -c 10.1.1.2
  1. ;

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

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

    где:
    -c - ip-адрес сервера;
    -p - порт на котором работает сервер;
    -i - интервал между отчетами (в секундах);
    -n - количество байт для передачи;
    -t -

время
  1. продолжительность выполнения теста

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

  2. Во время выполнения теста iperf  (тест длится 60 секунд, время можно увеличить)
вытащить
  1. :
    1. Отключить сетевой кабель из физического интерфейса которому соответствует имя
eth3
    1. eth1  (т.к. данный интерфейс является первичным согласно настройкам) и
посмотреть на выдаваемый лог утилиты iperf
    1. проверить отчеты теста, где можно увидеть наличие
провалов
    1. провала скорости, - это свидетельствует о том, что произошло переключении с одного физического интерфейса (
eth3
    1. eth1) на второй физический интерфейс (
eth4
    1. eth2)
.
    1. ;
После воткнуть
    1. Подключить сетевой кабель обратно в физический интерфейс с именем
eth3 и посмотреть на лог утилиты iperf, где так же можно
    1. eth1, после чего в журнале теста можно опять наблюдать наличие провала скорости,
это свидетельствует
    1. свидетельствующего о том, что произошло обратное переключение на активный интерфейс
eth3
    1. eth1 (согласно сетевым настройкам).

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

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

ОС СН требуется:
  1. Установить пакет ifenslave командой:

sudo apt install ifenslave

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

sudo modprobe bonding

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

sudo systemctl stop networking

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

sudonano

Astra Linux:

  1. Внести в конфигурационный файл /etc/network/interfaces

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

    Блок кода
    iface bond0 inet static
     address 

В качестве примера приводится настройка агрегации каналов по стандарту 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
  1. 192.168.0.1
  1. 
     netmask 255.255.255.0
  1. 
     bond-mode
4
  1.  802.3ad
     bond-miimon 100
  1. 
     bond-downdelay 200
  1. 
     bond-updelay 200
  1. 
     bond-xmit-hash-policy 1
  1. 
     bond-slaves eth1 eth2


    Информация
    Значение параметра bond-downdelay должно быть кратно значению параметра bond-miimon.


  2. Активировать агрегирующий интерфейс командой:

    Command
    sudo ifup bond0
slaves eth0 eth1

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

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

sudo systemctl start networking.

  1. Для проверки статуса работы

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

    Command
    cat /proc/net/bonding/bond0
,
  1. где bond0

это интерфейс
  1. - имя интерфейса агрегированных каналов.

  1. Пример вывода команды

cat /proc/net/bonding/bond0
  1. :

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

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

перечисленные
  1. агрегированные сетевые интерфейсы, например, «Slave Interface: eth0», находятся в статусе «MII Status: up».

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

Настройка агрегации каналов в режиме balance-alb рассмотрена на примере инфраструктуры, где

ПК соединены двумя патч-кордами через неуправляемый коммутатор (рисунок 2).

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

Информация
При подготовке статьи для стенда на виртуальных машинах QEMU/KVM для того, чтобы при подключении/отключении сетавых адаптеров корректно отрабатывались изменения их состояния (UP/DOWN), тип виртуальных сетевых устройств понадобилось выбрать "Hipervisor default", после чего использовались устройства rtl8139. Для других аппаратных платформ может понадобиться другая настройка типов виртуальных адаптеров.

Image Removed

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

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

ОС СН требуется:

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

sudo apt install ifenslave iperf

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

sudo systemctl stop networking

3) Настроить

Astra Linux:

  1. Внести в конфигурационный файл /etc/network/interfaces

командой в соответствии с примером
  1. параметры агрегирующего интерфейса:

Пример

Настройки /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
  1. Блок кода
    iface bond0 inet static
     address <собственный_IP-адрес>
     netmask 255.255.255.0
     pre-up modprobe bonding mode=balance-alb
  1. 
     post-down rmmod
bonding

address 10.1.1.1

netmask 255.255.255.0

  1.  bonding
     bond-mode 6
  1. 
     bond-miimon 100
  1. 
     bond-downdelay 150
  1. 
     bond-updelay 150
  1. 
     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

  1.  eth1 eth2

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

address
  1. 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) Запустить службу работы сети командой:

  1. , на другом - 10.1.1.3;

  2. Активировать агрегирующий интерфейс командой:

    Command
    sudo ifup bond0
sudo systemctl start networking.

  1. Для проверки работоспособности агрегирования интерфейсов в режиме 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) в данный момент
  1. :

    1. Проверить список сетевых устройств:

      Command
      Titleip link show

      ...
      3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT group default qlen 1000
          link/ether 52:54:00:31:72:c7 brd ff:ff:ff:ff:ff:ff
      4: eth2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT group default qlen 1000
          link/ether 52:54:00:61:6b:17 brd ff:ff:ff:ff:ff:ff
      5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
          link/ether 52:54:00:31:72:c7 brd ff:ff:ff:ff:ff:ff

      В выводе команды видно, что активны (UP) устройства eth1 и eth2, и одному из устройств (устройству eth1) назначен MAC-адрес устройства bond0 (для наглядности важные параметры отмечены шрифтом bold);

    2. Отключить сетевой кабель из активного сетевого интерфейса;
    3. Повторно проверить список сетевых устройств:

      Command
      Titleip link show

      ...
      3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc pfifo_fast master bond0 state DOWN mode DEFAULT group default qlen 1000
          link/ether 52:54:00:61:6b:17 brd ff:ff:ff:ff:ff:ff
      4: eth2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT group default qlen 1000
          link/ether 52:54:00:31:72:c7 brd ff:ff:ff:ff:ff:ff
      5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
          link/ether 52:54:00:31:72:c7 brd ff:ff:ff:ff:ff:ff

      В выводе команды видно, что устройство eth1 неактивно, а MAC-адрес устройства bond0 теперь назначен устройству eth2.

      Информация
      При возврате подключения первого устройства обратное переключение устройств не выполняется до момента отказа второго устройства.