Конфигурация LACP

По умолчанию мы подключаем все наши выделенные серверы с использованием LAG (Link Aggregation Group).

Что такое LAG? LAG — это сетевая технология, которая объединяет несколько физических сетевых каналов в один логический канал. Этот агрегированный канал увеличивает пропускную способность, обеспечивает избыточность и повышает надежность. Это потребует соответствующей настройки в ОС сервера. Большинство современных операционных систем поддерживают LACP (Link Aggregation Control Protocol) из коробки и потребуют небольшой настройки.

Рассмотрим наиболее распространенные примеры:

Ubuntu / Debian 12.x+

root@server:~# cat /etc/netplan/00-installer-config.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:   #Первый физический интерфейс
      dhcp4: no   #DHCP отключен
    eno2:   #Второй физический интерфейс
      dhcp4: no   #DHCP отключен
    eno3:
      dhcp4: no
      optional: true
    eno4:
      dhcp4: no
      optional: true

  bonds:   #Новая группа объединения
    bond0:   #Новый интерфейс объединения
      interfaces: [eno1, eno2]   #Список подчиненных интерфейсов
      addresses: [111.222.111.222/24]   #Присвоение IP новому интерфейсу bond0
      nameservers:
        addresses: [1.1.1.1]
      routes:
        - to: default
          via: 111.222.111.1   #Шлюз по умолчанию
      parameters:
        mode: 802.3ad   #Крайне важно, протокол объединения
        transmit-hash-policy: layer3+4
        mii-monitor-interval: 100

Как применить новую конфигурацию:

netplan try   #Проверит конфигурацию на ошибки
netplan apply   #Применит новую конфигурацию на лету, без перезагрузки сервера

Debian <12 (10, 11 и т.д.)

Для настройки LACP в этом случае вам потребуется установить пакет ifenslave. Но поскольку у вас еще нет работающего подключения к Интернету, вам следует использовать некоторые из перечисленных ниже обходных путей. 1. Онлайн-установка. Мы можем дезагрегировать интерфейсы с нашей стороны, чтобы вы могли настроить соединение через один из ваших физических портов.

  1. Офлайн-установка. Подготовьте файл ISO, содержащий пакет .deb инструмента ifenslave.

Онлайн-установка

  1. Свяжитесь с нашей службой поддержки, чтобы дезагрегировать ваше текущее соединение.

  2. После того, как все будет готово, настройте сеть на вашем физическом порту:

    root@server:~# sudo nano /etc/network/interfaces
    

    Измените конфигурацию следующим образом:

    auto eth1
    iface eth1 inet static
        address 111.222.111.222
        netmask 255.255.255.0
        gateway 111.222.111.1
        dns-nameservers 1.1.1.1.1 1.0.0.1
    

    Сохраните новую конфигурацию:

    sudo ifdown eth1 && sudo ifup eth1
    

    Или перезагрузитесь, используя sudo reboot

Офлайн-установка

  • Загрузите пакет ifenslave

На машине Debian/Ubuntu с доступом в Интернет:

mkdir -p ~/offline-ifenslave
cd ~/offline-ifenslave
apt download ifenslave

Это загрузит файл .deb, например, ifenslave_2.12_all.deb. 2. Создайте ISO-образ из файла .deb

Установите инструмент для создания ISO (при необходимости):

sudo apt install genisoimage

Затем создайте ISO:

mkisofs -o ifenslave.iso -V "IFENSLAVE" -J -r .

Это сгенерирует ISO-образ, содержащий пакет.

  1. Подключите ISO через iDRAC

    1. Откройте веб-интерфейс iDRAC.

    2. Запустите виртуальную консоль.

    3. В консоли перейдите к: Virtual Media > Map CD/DVD.4. Выберите и подключите ifenslave.iso. Теперь он должен появиться как привод CD/DVD на сервере (например, /dev/sr0).

  2. Смонтируйте ISO на целевом сервере Debian.

    Из консоли или сессии SSH:

    sudo mkdir -p /mnt/ifenslave
    sudo mount /dev/sr0 /mnt/ifenslave
    

    Проверьте содержимое:

    ls /mnt/ifenslave
    
  3. Установите пакет

    Выполните:

    sudo dpkg -i /mnt/ifenslave/ifenslave_*.deb
    

    Если отсутствуют зависимости:

    sudo apt --fix-broken install
    

    (Примечание: –fix-broken работает только если зависимости доступны позже.)

  4. Дополнительная очистка

    После установки:

    sudo umount /mnt/ifenslave
    

Наконец, после установки ifenslave мы можем настроить LACP. Не забудьте попросить службу поддержки вернуть LAG для вашего сервера, если вы решили использовать онлайн-установку.

root@server:~# sudo nano /etc/network/interfaces

Измените конфигурацию на следующую:

auto bond0
iface bond0 inet static
    address 111.222.111.222
    netmask 255.255.255.0
    gateway 111.222.111.1
    dns-nameservers 1.1.1.1 1.0.0.1
    bond-slaves eth0 eth1
    bond-mode 802.3ad
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200
    bond-lacp-rate fast
    bond-xmit-hash-policy layer3+4

# Physical interfaces
auto eth0
iface eth0 inet manual
    bond-master bond0

auto eth1
iface eth1 inet manual
    bond-master bond0

Дистрибутивы на базе RHEL, использующие nmtui (AlmaLinux, CentOS, Rocky Linux, Fedora и т.д.)

Дистрибутивы на базе RHEL поставляются с предустановленным инструментом под названием nmtui, который является псевдоинтерфейсной утилитой для настройки сети.

_images/nmtui.png

Логика остается той же: вы должны отключить DHCP на физическом интерфейсе, создать новый интерфейс объединения, добавить физические интерфейсы в качестве подчиненных и назначить IP-адрес интерфейсу объединения. Обратите внимание, что имена физических интерфейсов могут отличаться на вашем сервере.

  1. Отключите DHCP на физическом интерфейсе eth0/eth1:

    Edit a connection -> eth0 -> IPv4 Configuration -> Disabled

    _images/nmtui_disable_dhcp.png
  2. Создайте интерфейс объединения:

    Edit a connection -> Add -> Bond

    Ports -> Add -> Ethernet -> Device: eth0

    Ports -> Add -> Ethernet -> Device: eth1

    Mode -> 802.3ad

    IPv4 Configuration -> Manual -> Show: input your networking config

    _images/nmtui_create_bond.png
  3. Убедитесь, что соединение объединения активно:

    Activate a connection -> bond0: должно быть отмечено звездочкой [*]

Использование nmcli

# 1. Создайте интерфейс объединения в режиме LACP
nmcli con add type bond con-name bond0 ifname bond0 mode 802.3ad

# 2. Установите параметры объединения (необязательно, но рекомендуется)
nmcli con modify bond0 bond.options "mode=802.3ad,miimon=100,xmit_hash_policy=layer2+3"

# 3. Добавьте подчиненный интерфейс eth1 к bond0
nmcli con add type ethernet con-name slave1 ifname eth1 master bond0

# 4. Добавьте подчиненный интерфейс eth2 к bond0
nmcli con add type ethernet con-name slave2 ifname eth2 master bond0

# 5. Назначьте IP-адрес и шлюз для bond0
nmcli con modify bond0 ipv4.addresses 111.222.111.222/24
nmcli con modify bond0 ipv4.gateway 111.222.111.1
nmcli con modify bond0 ipv4.method manual
nmcli con modify bond0 ipv6.method ignore

# 6. Поднимите соединения bond и slave
nmcli con up bond0
nmcli con up slave1
nmcli con up slave2

Mikrotik / RouterOS

Через CLI:

/interface bonding
add comment=bonding1 mode=802.3ad name=etherX-Y_bonding slaves=etherX,etherY

/ip address
add address=111.222.111.222/24 interface=etherX-Y_bonding

Введите свои физические интерфейсы в переменную slaves вот так: slaves=ether0,ether1.

Использование WinBox

  1. Войдите в Winbox

    • Откройте Winbox и подключитесь к вашему устройству MikroTik.

  2. Перейдите в Интерфейсы

    • Нажмите на Interfaces в левом меню.

  3. Добавьте интерфейс объединения

    • Нажмите кнопку “+” и выберите Bonding.
      _images/mikrotik-add-and-configure-bonding.png
    • Установите:

      • Name: bonding1 (или по желанию)

      • Mode: 802.3ad

      • Slaves: Выберите ether1, ether2 (или другие, которые вы хотите объединить)

      • LACP Rate: 30secs (по умолчанию) или установите 1sec для более быстрой сходимости

      • Transmit Hash Policy: layer3+4

  4. Применить и ОК

    • Нажмите Apply, затем OK.

  5. Назначьте IP-адрес (необязательно)

    • Перейдите в IP > Addresses.

    • Нажмите “+”, установите:

      • Address: например, 111.222.111.222/24

      • Interface: bonding1

    _images/mikrotik-assign-ip.png
  6. Установите шлюз по умолчанию (необязательно)

    • Перейдите в IP > Routes

    • Добавьте новый маршрут:

      • Gateway: например, 111.222.111.1

      • Оставьте пункт назначения как 0.0.0.0/0

Windows Server

  1. В меню Пуск найдите Server Manager. Перейдите в меню Local server, выберите NIC Teaming:

    _images/windows_nic_teaming.png
  2. Во всплывающем окне введите имя команды и проверьте адаптеры-участники:

    _images/windows_select_adapters.png
  3. Затем щелкните правой кнопкой мыши по вновь созданной команде и выберите Properties.

    В нижней части экрана нажмите Additional properties и измените режим объединения на LACP, как показано ниже:

    _images/windows_teaming_mode.png
  4. Назначьте IP-адрес интерфейсу объединения:

    • Перейдите в Панель управления

    • Просмотр состояния сети и задач

    • Изменение параметров адаптера

    • Щелкните правой кнопкой мыши по новому интерфейсу объединения -> Свойства

    • Дважды щелкните по “Протокол Интернета версии 4 (TCP/IPv4)”

      _images/windows-configure-ip-teaming.png
  5. (Необязательно) Настройка сетевого доступа для ОС управления:

    Включите его, если:

    • Команда или сетевая карта является единственным подключением между вашим хостом Hyper-V и сетью.

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

    Отключите его, если:

    • Вы изолируете эту сетевую карту исключительно для трафика ВМ.

    • У вас есть другая сетевая карта или команда, предназначенная для управления хостом.

    1. Откройте диспетчер Hyper-V

    2. Выберите свой хост, затем нажмите Диспетчер виртуальных коммутаторов (правая панель)

    3. Нажмите Новый виртуальный сетевой коммутатор > Внешний > Создать

    4. Выберите физическую сетевую карту из выпадающего списка

    5. Отметьте: Разрешить операционной системе управления использовать этот сетевой адаптер

    6. Нажмите ОК, чтобы применить

Использование PowerShell

# Шаг 1: Вывести список доступных сетевых адаптеров
Get-NetAdapter

# Шаг 2: Создать команду сетевых карт в режиме LACP с динамической балансировкой нагрузки
New-NetLbfoTeam -Name "TeamLACP"
                -TeamMembers "Ethernet1","Ethernet2"
                -TeamingMode LACP
                -LoadBalancingAlgorithm Dynamic

# Шаг 3: Подтвердить создание команды
Get-NetLbfoTeam -Name "TeamLACP"
Get-NetLbfoTeamMember -Team "TeamLACP"

# Шаг 4: Проверить новый интерфейс команды
Get-NetAdapter -Name "TeamLACP"

# Шаг 5: Назначить статический IP-адрес интерфейсу команды
New-NetIPAddress -InterfaceAlias "TeamLACP"
                 -IPAddress 111.222.111.222
                 -PrefixLength 24
                 -DefaultGateway 111.222.111.1

# Шаг 6: Установить адреса DNS-серверов
Set-DnsClientServerAddress -InterfaceAlias "TeamLACP"
                           -ServerAddresses 1.1.1.1, 8.

# Шаг 7: Показать подробную информацию о команде
Get-NetLbfoTeam | Format-List *


# Шаг 8: Проверить окончательную конфигурацию
Get-NetAdapter -Name "TeamNIC"

Proxmox

Для Proxmox просто отредактируйте файл /etc/network/interfaces:

auto lo
iface lo inet loopback

iface eno1 inet manual
iface eno2 inet manual

auto bond0
iface bond0 inet manual
   bond-slaves eno1 eno2
   bond-miimon 100
   bond-mode 802.3ad
   bond-xmit-hash-policy layer2+3
   bond-min-links 1
   bond-lacp-rate fast

auto vmbr0
iface vmbr0 inet static
   address 111.222.111.222/24
   gateway 111.222.111.1
   bridge-ports bond0
   bridge-stp off
   bridge-fd 0

Не забудьте переименовать свои интерфейсы на реальные, а также заменить IP-адреса для интерфейса vmbr0.

Чтобы применить изменения, выполните ifreload -a.

ESXi

Настройка active-active соединения на ESXi без vSphere с помощью CLI

  • Этот случай потребует некоторых корректировок с нашей стороны. Пожалуйста, свяжитесь с нашей службой поддержки и сообщите, что вы хотите настроить активно-активное соединение на своем сервере.

esxcli network vswitch standard add --vswitch-name=vSwitch1

# Добавьте аплинки
esxcli network vswitch standard uplink add --uplink-name=vmnic0 --vswitch-name=vSwitch1
esxcli network vswitch standard uplink add --uplink-name=vmnic1 --vswitch-name=vSwitch1

# Установите балансировку нагрузки и активно-активное объединение
esxcli network vswitch standard policy failover set \
  --vswitch-name=vSwitch1 \
  --load-balancing=iphash \
  --active-uplinks=vmnic0,vmnic1 \
  --standby-uplinks=""

# Создайте группу портов
esxcli network vswitch standard portgroup add --portgroup-name=VM_Network --vswitch-name=vSwitch1

# Назначьте VLAN
esxcli network vswitch standard portgroup set --portgroup-name=VM_Network --vlan-id=10

# Добавьте интерфейс VMkernel
esxcli network ip interface add --interface-name=vmk1 --portgroup-name=VM_Network


# Установите политику группы портов, чтобы наследовать все, кроме порядка отказа
esxcli network vswitch standard portgroup policy failover set \
  --portgroup-name=VM_Network \
  --override-failover-order=true \
  --active-uplinks=vmnic0,vmnic1 \
  --standby-uplinks=""

# Назначьте статический IP-адрес VMkernel
esxcli network ip interface ipv4 set \
  --interface-name=vmk1 \
  --type=static \
  --ipv4=111.222.111.222 \
  --netmask=255.255.255.0 \
  --gateway=111.222.111.1

# Показать результат
esxcli network vswitch standard list
esxcli network vswitch standard uplist list
esxcli network ip interface list

Настройка active-active соединения на ESXi без vSphere с помощью веб-интерфейса

  1. Войдите в веб-интерфейс хоста ESXi

    • URL: https://<IP-адрес-ESXi-или-имя-хоста>/

    • Используйте учетные данные root.

  2. Перейдите в Сеть:

    • В левой панели перейдите в Networking.

  3. Выберите виртуальный коммутатор (vSwitch):

    • Нажмите “Virtual switches”.

    • Выберите vSwitch, который вы хотите настроить (например, vSwitch0).

  4. Отредактируйте vSwitch:

    • Нажмите “Edit settings”.

    • Перейдите в раздел “NIC teaming”.

    _images/esxi-config-1.png _images/esxi-config-2.png

Конфигурация LACP с VMware ESXi – (конфигурация vCenter)

Требования

Для успешного установления LACP между хостом ESXi и сетевым коммутатором необходимо выполнить несколько требований. Ниже приведены наиболее важные требования, которые следует учитывать. Многие из этих требований действительны для всех типов конфигураций LACP.

  • ESXi с LACP может быть установлен только между хостом и одним коммутатором или “стековым” коммутатором.

  • Конфигурация на коммутаторе должна быть установлена в статический режим ON, а vSwitch VMware должен быть настроен с методом балансировки нагрузки Route based on IP hash.

  • НЕ используйте зондирование маяков с балансировкой нагрузки по IP-хешу.

  • ESXi 5.1, 5.5, 6.0 и 6.5 поддерживают LACP только на распределенном виртуальном коммутаторе.

Настройка LACP на стороне vSphere

Поскольку настройка LACP между хостом ESXi и сетевым коммутатором требует настроек с обеих сторон, мы объясним настройку в хронологическом порядке, который сработал для наших сценариев. Следовательно, хотя шаги могут быть выполнены в другом порядке, мы наиболее уверены в нашем методе.

Снимки экрана, которые мы сделали, выполнены в VMware vCenter Server 6.7.

Прежде всего, начните с подключения к пользовательскому интерфейсу VMware vCenter.

  1. Создание распределенного коммутатора:

    • Щелкните правой кнопкой мыши объект центра обработки данных и выберите Distributed Switch > New Distributed Switch…

      Создайте новый распределенный виртуальный коммутатор
    • Дайте новому распределенному коммутатору подходящее имя.

      Назовите свой новый виртуальный коммутатор
    • Выберите версию для вашего распределенного коммутатора.

      Note

      Имейте в виду, что если вы используете более старую версию vCenter, LACP был введен с версии 5.1. Выбор более старых версий dVS может не позволить вам создать LACP.

      Выберите версию распределенного коммутатора
    • Настройте свой новый dVS со следующими параметрами:

      • Количество аплинков

      • Контроль сетевого ввода-вывода

      • Создание группы портов по умолчанию (необязательно)

      • Имя группы портов по умолчанию

      Изменить настройки коммутатора
    • Проверьте настройки dVS перед отправкой.

      Завершение мастера создания распределенного коммутатора
  2. Далее мы создадим группу LACP в dVS:

    • Щелкните левой кнопкой мыши по новому dVS > Configure > LACP > + New

      Создание группы LACP на dVS Настройки группы LACP
  3. Далее мы добавим отдельную ссылку в vDS в LAG:

    • Добавление хоста ESXi в vDS

      Добавление хоста ESXi в vDS
    • Выбрать Добавить хосты

      Выберите Добавить хосты
    • Нажмите + для добавления хостов

      Нажмите + для добавления хостов
    • Выберите соответствующие хосты для добавления в dVS

      Выберите соответствующие хосты для добавления в dVS
    • На шаге 3 выберите сетевую карту, которая присоединится к LAG

      Выберите сетевую карту, которая присоединится к LAG
    • Назначьте сетевую карту LAG

      Назначьте сетевую карту LAG