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

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

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

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

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


Введение

Под агрегацией (агрегированием) сетевых каналов понимают объединение нескольких параллельных каналов передачи данных в сетях 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 включает автоматический запуск интерфейсов при загрузке компьютере (при перезапуске службы networking), параметр manual указывает, что настройка интерфейса не должна осуществляться через службу DHCP. Параметры настройки интерфейсов будут заданы далее в примерах.

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

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

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

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

  1. На обоих компьютерах внести в конфигурационный файл /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 eth3
        bond-miimon 100
        bond-downdelay 150
        bond-updelay 150
        bond-slaves eth0 eth1

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

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

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

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

    sudo iperf -c <IP-адрес_другого_компьютера> -p 5001 -i 1 -n 100M -t 60
    где:
    -c - ip-адрес сервера;
    -p - порт на котором работает сервер;
    -i - интервал между отчетами (в секундах);
    -n - количество байт для передачи;
    -t - продолжительность выполнения теста;

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

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

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

  1. Загрузить модуль для ядра командой:
    sudo modprobe bonding
  2. Внести в конфигурационный файл /etc/network/interfaces параметры агрегирующего интерфейса:

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

    sudo systemctl start networking

  4. Для проверки статуса работы сетевого интерфейса выполнить команду:
    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 рассмотрена на примере инфраструктуры, где каждый из двух компьютеров подключен к сети передачи данных двумя соединениями.

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

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

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

    sudo systemctl start networking

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

  1. На одном компьютере запустить команду iperf:

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

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

    sudo iperf -c 10.1.1.2 -p 5001 -i 1 -n 100M -t 60
    где:
    -c - ip-адрес сервера;
    -p - порт на котором работает сервер;
    -i - интервал между отчетами (в секундах);
    -n - количество байт для передачи;
    -t - время выполнения теста.

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

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

    3. Вытащить один из сетевых кабелей и одном компьютере и выполнив команду:

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

  4. Повторить тест на обоих компьютерах поочерёдно. Успешным результатом работы режима адаптивной балансировки нагрузки будет замена MAC-адреса сетевой карты (eth0, eth1) на адрес, присвоенный интерфейсу bond0 (взятый с одного из интерфейсов eth0 или eth1) в данный момент.
  • Нет меток