Общий порядок настройки сетей см. в статье Настройка сетевых подключений в Astra Linux.
Порядок настройки виртуальных сетей см. в статье Виртуальные сети VLAN и VXLAN в Astra Linux.
Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10 |
Под агрегацией (агрегированием) сетевых каналов понимают объединение нескольких каналов передачи данных в сетях Ethernet в один логический канал. Агрегация позволяет увеличить пропускную способность или повысить надёжность. Поведение агрегированного сетевого канала зависит от выбранного режима работы. В общем случае, объединенные сетевые интерфейсы могут работать в режиме горячего резерва (отказоустойчивости) или в режиме балансировки нагрузки. Режим (политика) работы определяется параметрами (опциями) модуля ядра bonding. Полный список параметров:
| Название | Код | Описание | Отказоустойчивость | Балансировка нагрузки |
|---|---|---|---|---|
| balance-rr | 0 | Отправка сетевых пакетов поочередно через все агрегированные интерфейсы (политика round-robin) | Да | Да |
| active-backup | 1 | Отправка сетевых пакетов через активный интерфейс. При отказе активного интерфейса (link down и т.д.) автоматически переключается на резервный интерфейс; | Да | Нет |
| balance-xor | 2 | Передача сетевых пакетов распределяются между интерфейсами на основе формулы (могут использоваться MAC-адрес, IP-адреса или номера IP-портов). Один и тот же интерфейс работает с определенным получателем. | Да | Да |
| broadcast | 3 | Отправка всех сетевых пакетов через все агрегированные интерфейсы (широковещательная отправка). | Да | Нет |
| 802.3ad | 4 | Link Agregation Control Protocol, LACP — IEEE 802.3ad. | Да | Нет |
| balance-tlb | 5 | Входящие сетевые пакеты принимаются только активным сетевым интерфейсом, исходящие распределяется в зависимости от текущей загрузки каждого интерфейса. | Да | Да |
| balance-alb | 6 | Исходящие сетевые пакеты распределяется между интерфейсами, входящие сетевые пакеты принимаются всеми интерфейсами. | Да | Да |
Для использования режимов balance-rr, balance-xor и broadcast на коммутаторе сети должен быть настроено статическое объединение портов (static port trunking). |
Далее к рассмотрению представлены следующие режимы:
В примерах предполагается, что:
Управление агрегированными сетевыми интерфейсами осуществляется с помощью службы networking. Если на компьютере установлена служба NetworkManager, то проверить список подключений и удалить и очистить подключения, использующие агрегируемые сетевые интерфейсы, например;
| 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;
Установить пакеты ifenslave и iperf командой:
| sudo apt install ifenslave iperf |
Пакет ifenslave необходим для настройки агрегации и обеспечения работы агрегирующих интерфейсов, пакет iperf необязателен, но далее в примерах используется для тестирования.
Внести в конфигурационный файл /etc/network/interfaces следующие параметры:
auto eth1 eth2 bond0 iface eth1 inet manual iface eth2 inet manual |
Параметр auto включает автоматический запуск интерфейсов при загрузке компьютере (при перезапуске службы networking), параметр manual указывает, что настройка интерфейса не должна осуществляться через службу DHCP. Параметры настройки интерфейсов будут заданы далее в примерах. Далее нужно указать в файле /etc/network/interfaces параметры агрегирующего интерфейса.
Настройка агрегации каналов в режиме active-backup рассмотрена на примере инфраструктуры, где каждый компьютер подключен к сети двумя соединениями.
При настройке агрегации одному компьютеру будит присвоен адрес 10.1.1.2, другому - 10.1.1.3.
Для настройки и запуска агрегации в режиме active-backup в Astra Linux:
На обоих компьютерах внести в конфигурационный файл /etc/network/interfaces параметры агрегирующего интерфейса:
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 bond-mode active-backup bond-primary eth1 bond-miimon 100 bond-downdelay 200 bond-updelay 150 bond-slaves eth1 eth2 |
| Значение параметра bond-downdelay должно быть кратно значению параметра bond-miimon. |
Где вместо параметра <собственный_IP-адрес> указать на одном компьютере IP-адрес 10.1.1.2, на другом - 10.1.1.3, а вместо параметра <IP-адрес_другого_компьютера> - наоборот, на одном компьютере 10.1.1.3, на другом - 10.1.1.2;
Активировать агрегирующий интерфейс командой:
| sudo ifup bond0 |
На одном компьютере выполнить команду 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 - продолжительность выполнения теста;
Для настройки и запуска агрегации каналов по стандарту IEEE 802.3ad в Astra Linux:
Внести в конфигурационный файл /etc/network/interfaces параметры агрегирующего интерфейса:
iface bond0 inet static address 192.168.0.1 netmask 255.255.255.0 bond-mode 802.3ad bond-miimon 100 bond-downdelay 200 bond-updelay 200 bond-xmit-hash-policy 1 bond-slaves eth1 eth2 |
| Значение параметра bond-downdelay должно быть кратно значению параметра bond-miimon. |
Активировать агрегирующий интерфейс командой:
| sudo ifup bond0 |
Для проверки статуса работы сетевого интерфейса выполнить команду:
| 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 рассмотрена на примере инфраструктуры, где каждый из двух компьютеров подключен к сети передачи данных двумя соединениями.
| При подготовке статьи для стенда на виртуальных машинах QEMU/KVM для того, чтобы при подключении/отключении сетавых адаптеров корректно отрабатывались изменения их состояния (UP/DOWN), тип виртуальных сетевых устройств понадобилось выбрать "Hipervisor default", после чего использовались устройства rtl8139. Для других аппаратных платформ может понадобиться другая настройка типов виртуальных адаптеров. |
Для настройки и запуска агрегации в режиме balance-alb в Astra Linux:
Внести в конфигурационный файл /etc/network/interfaces параметры агрегирующего интерфейса:
iface bond0 inet static address <собственный_IP-адрес> netmask 255.255.255.0 pre-up modprobe bonding mode=balance-alb post-down rmmod bonding bond-mode 6 bond-miimon 100 bond-downdelay 150 bond-updelay 150 bond-slaves eth1 eth2 |
Где вместо параметра <собственный_IP-адрес> указать на одном компьютере IP-адрес 10.1.1.2, на другом - 10.1.1.3;
Активировать агрегирующий интерфейс командой:
| sudo ifup bond0 |
Для проверки работоспособности агрегирования интерфейсов в режиме balance-alb:
Проверить список сетевых устройств:
... |
В выводе команды видно, что активны (UP) устройства eth1 и eth2, и одному из устройств (устройству eth1) назначен MAC-адрес устройства bond0 (для наглядности важные параметры отмечены шрифтом bold);
Повторно проверить список сетевых устройств:
... |
В выводе команды видно, что устройство eth1 неактивно, а MAC-адрес устройства bond0 теперь назначен устройству eth2.
| При возврате подключения первого устройства обратное переключение устройств не выполняется до момента отказа второго устройства. |