Подключить и настроить Агрегирование каналов

Последние изменения: 05.10.2023

Агрегирование каналов (bonding) — технологии объединения нескольких параллельных каналов передачи данных в сетях Ethernet. Опция поможет сбалансировать нагрузку на выделенном сервере и повысить отказоустойчивость.

Мы настраиваем агрегирование каналов по стандартному протоколу LACP. Услуга платная, актуальную стоимость можно уточнить в отделе продаж по почте sales@edgecenter.ru.

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

Предварительные условия

Настройка на сервере


Предварительные условия

Перед настройкой агрегирования каналов:

  • убедитесь, что знаете IP-адрес вашего сервера, IP-адрес шлюза, а также маску подсети — эта информация будет нужна для настройки сетевых интерфейсов.

    IP-адрес вашего сервера и данные сети, к которой он принадлежит, можно найти в Панели управления. Для этого в разделе Товары/Услуги → Выделенные серверы выберите нужный сервер и нажмите IP-адреса.



    Найдите активный IP-адрес сервера и запомните данные из колонок «IP-адрес», «Маска» и «Шлюз».

  • закажите и оплатите услугу Агрегирование каналов.

    В разделе Товары/Услуги → Агрегирование каналов нажмите Заказать и оплатите услугу.
     

Настройка на сервере

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

Пример настройки для Ubuntu 20.04

1. Обновите все пакеты Ubuntu.

Sudo apt-get update

2. Установите пакет ifenslave.

Sudo apt-get install ifenslave​ 

3. С помощью команды modprobe загрузите модуль bonding.

Sudo modprobe bonding

После этого вы можете выполнить команду lsmod | grep bonding. Если модуль загружен, то вы получите примерный ответ, который показан ниже.

bonding 147456 0

4. Просмотрите информацию о доступных интерфейсах.

ip addr show

Пример ответа представлен ниже.

1: lo: <LOOPBACK,UP,LOWER_UP> ...
...
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
... 
3: eno2: <BROADCAST,MULTICAST> ...
...

В данном случае физические интерфейсы имеют названия eno1 и eno2. Запомните эти названия — их нужно будет указать в файле /etc/network/interfaces.

5. Отредактируйте настройки сетевых интерфейсов. Для этого откройте файл /etc/network/interfaces с помощью редактора nano.

nano /etc/network/interfaces

Замените содержимое файла на указанное ниже и сохраните изменения.

auto eno1
iface eno1 inet manual
    bond-master bond0
    bond-primary eno1
    bond-mode 4

auto eno2
iface eno2 inet manual
    bond-master bond0
    bond-mode 4

auto bond0
iface bond0 inet static
    address x.x.x.x
    netmask y.y.y.y
    network x.x.x.0
    gateway z.z.z.z
    bond-slaves eno1 eno2
    bond-mode 4
    bond-miimon 100
    bond-downdelay 200
    bond-lacp-rate 1
    dns-nameservers 8.8.8.8
    dns-search com

При этом:

  • вместо eno1 и eno2 вставьте названия интерфейсов на вашем сервере;

  • вместо x.x.x.x вставьте IP-адрес вашего сервера;

  • вместо y.y.y.y вставьте маску подсети;

  • в x.x.x.0 вместо x.x.x вставьте три первых числа из IP-адреса сервера;

  • вместо z.z.z.z вставьте IP-адрес шлюза;

  • значения параметров bond-primarybond-miimon, bond-downdelay, bond-lacp-rate, dns-nameservers и dns-search указаны для примера — вы можете задать свои значения.

6. Перезагрузите сеть, чтобы изменения вступили в силу.

/etc/init.d/networking restart

Если  после выполненных действий интерфейсы не были объединены, перезагрузите ОС.

reboot

Статус объединённых интерфейсов можно проверить, как показано ниже.

cat /proc/net/bonding/bond0

Пример ответа указан ниже.

Ethernet Channel Bonding Driver: v3.1.1 (September 26, 2006)

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): 0

802.3ad info
LACP rate: 1
Active Aggregator Info:
Aggregator ID: 1
<span class="code-object">Number</span> of ports: 2
Actor Key: 17
Partner Key: 1
Partner Mac Address: 00:77:54:71:a8:6f

Slave Interface: eno1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:99:97:60:9d:48
Aggregator ID: 1

Slave Interface: eno2
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:00:85:60:9d:49
Aggregator ID: 1​

Пример настройки для Debian 11

1. Обновите все пакеты Debian.

Apt-get update

2. Установите пакет ifenslave.

Apt-get install ifenslave​ 

3. С помощью команды modprobe загрузите модуль bonding.

Modprobe bonding

После этого вы можете выполнить команду lsmod | grep bonding. Если модуль загружен, то вы получите примерный ответ, который показан ниже.

bonding 147456 0

4. Просмотрите информацию о доступных интерфейсах.

ip addr show

Пример ответа представлен ниже.

1: lo: <LOOPBACK,UP,LOWER_UP> ...
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
... 
3: eth1: <BROADCAST,MULTICAST> ...
...

В данном случае физические интерфейсы имеют названия eth0 и eth1. Запомните эти названия — их нужно будет указать в файле /etc/network/interfaces.

5. Отредактируйте настройки сетевых интерфейсов. Для этого откройте файл /etc/network/interfaces с помощью редактора nano.

nano /etc/network/interfaces

Замените содержимое файла на указанное ниже и сохраните изменения.

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
    bond-master bond0
    bond-primary eth0
    bond-mode 4

auto eth1
iface eth1 inet manual
    bond-master bond0
    bond-mode 4

auto bond0
iface bond0 inet static
    address x.x.x.x
    netmask y.y.y.y
    network x.x.x.0
    gateway z.z.z.z
    bond-slaves eth0 eth1
    bond-mode 4
    bond-miimon 100
    bond-downdelay 200
    bond-lacp-rate 1
    dns-nameservers 8.8.8.8
    dns-search com

При этом:

  • вместо eth0 и eth1 вставьте названия интерфейсов на вашем сервере;

  • вместо x.x.x.x вставьте IP-адрес вашего сервера;

  • вместо y.y.y.y вставьте маску подсети;

  • в x.x.x.0 вместо x.x.x вставьте три первых числа из IP-адреса сервера;

  • вместо z.z.z.z вставьте IP-адрес шлюза;

  • значения параметров bond-primarybond-miimonbond-downdelaybond-lacp-ratedns-nameservers и dns-search указаны для примера — вы можете задать свои значения.

6. Перезагрузите сеть, чтобы изменения вступили в силу.

/etc/init.d/networking restart

Если  после выполненных действий интерфейсы не были объединены, перезагрузите ОС.

reboot

Статус объединённых интерфейсов можно проверить, как показано ниже.

cat /proc/net/bonding/bond0

Пример ответа указан ниже.

Ethernet Channel Bonding Driver: v3.1.1 (September 26, 2006)

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): 0

802.3ad info
LACP rate: 1
Active Aggregator Info:
Aggregator ID: 1
<span class="code-object">Number</span> of ports: 2
Actor Key: 17
Partner Key: 1
Partner Mac Address: 00:77:54:71:a8:6f

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:99:97:60:9d:48
Aggregator ID: 1

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:00:85:60:9d:49
Aggregator ID: 1​

Пример настройки для CentOS 7

1. Обновите все пакеты CentOS.

Sudo yum update

2. С помощью команды modprobe загрузите модуль bonding.

Sudo modprobe bonding

После этого вы можете выполнить команду lsmod | grep bonding. Если модуль загружен, то вы получите примерный ответ, который показан ниже.

bonding 147456 0

3. Просмотрите информацию о доступных интерфейсах.

ip addr show

Пример ответа представлен ниже.

1: lo: <LOOPBACK,UP,LOWER_UP> ...
...
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
... 
3: eno2: <BROADCAST,MULTICAST> ...
...

В данном случае физические интерфейсы имеют названия eno1 и eno2. Запомните эти названия — файлы с этими названиями нужно будет отредактировать.

5. Отредактируйте настройки сетевых интерфейсов. 

Cоздайте и откройте файл /etc/sysconfig/network-scripts/ifcfg-bond0.

vi /etc/sysconfig/network-scripts/ifcfg-bond0

    Задайте содержимое файла, как показано ниже.

    DEVICE=bond0
    Type=Bond
    NAME=bond0
    BONDING_MASTER=yes
    BOOTPROTO=none
    ONBOOT=yes
    IPADDR=x.x.x.x
    PREFIX=y
    GATEWAY=z.z.z.z
    NM_CONTROLLED=no
    BONDING_OPTS="mode=4 miimon=100 lacp_rate=1"

    При этом:

    • вместо x.x.x.x вставьте IP-адрес вашего сервера;

    • вместо y вставьте сетевой префикс без символа /, который соответствует маске. Например, таблицу соответствия масок и префиксов можно посмотреть здесь;

    • вместо z.z.z.z вставьте IP-адрес шлюза;

    • значения параметров miimonlacp_rate указаны для примера — вы можете задать свои значения.

    Откройте файл с конфигурациями первого интерфейса. В данном примере это /etc/sysconfig/network-scripts/ifcfg-eno1.
    vi /etc/sysconfig/network-scripts/ifcfg-eno1

    Измените содержимое файла, как показано ниже.

    DEVICE=eno1
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
    NM_CONTROLLED=no
    IPV6INIT=no
    MASTER=bond0
    SLAVE=yes

    Откройте файл с конфигурациями второго интерфейса. В данном примере это /etc/sysconfig/network-scripts/ifcfg-eno2.

    vi /etc/sysconfig/network-scripts/ifcfg-eno2

    Измените содержимое файла, как показано ниже.

    DEVICE=eno2
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
    NM_CONTROLLED=no
    IPV6INIT=no
    MASTER=bond0
    SLAVE=yes

    6. Перезагрузите сеть, чтобы изменения вступили в силу.

    Sudo systemctl restart network
    

    Если  после выполненных действий интерфейсы не были объединены, перезагрузите ОС.

    reboot

    Статус объединённых интерфейсов можно проверить, как показано ниже.

    cat /proc/net/bonding/bond0
    

    Пример ответа указан ниже.

    Ethernet Channel Bonding Driver: v3.1.1 (September 26, 2006)
    
    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): 0
    
    802.3ad info
    LACP rate: 1
    Active Aggregator Info:
    Aggregator ID: 1
    <span class="code-object">Number</span> of ports: 2
    Actor Key: 17
    Partner Key: 1
    Partner Mac Address: 00:77:54:71:a8:6f
    
    Slave Interface: eno1
    MII Status: up
    Link Failure Count: 0
    Permanent HW addr: 00:99:97:60:9d:48
    Aggregator ID: 1
    
    Slave Interface: eno2
    MII Status: up
    Link Failure Count: 0
    Permanent HW addr: 00:00:85:60:9d:49
    Aggregator ID: 1​
    

    Пример настройки для Windows Server 2019

    1. Откройте Server Manager

    2. В меню Local Server перейдите в настройку NIC Teaming.

    3. В окне TEAMS откройте выпадающее меню TASKS и выберите New Team.

    4. В появившемся окне:

    • в поле «Team name» задайте имя группы, которая будет включать объединённые физические интерфейсы;

    • в поле «Member adapters» отметьте интерфейсы, который нужно объединить;

    • для настройки Teaming mode задайте значение LACP;

    • (опционально) с помощью настройки Load balancing mode задайте режим балансировки нагрузки на интерфейсы:

      • Dynamic (по умолчанию) — нагрузка на интерфейсы будет распределяться динамически;

      • Address hash — для каждого из интерфейсов вычисляется специальный хэш (на основании MAC или IP-адресов отправителя и получателя) и привязывается к определенному интерфейсу. Весь трафик от выбранного отправителя будет идти через этот интерфейс;

      • Hyper-V port — физический интерфейс или группа объединённых интерфейсов будет привязана к конкретному порту на виртуальном коммутаторе Hyper-V.

    После настройки нажмите OK.

    В результате в меню Network connections панели управления должен появиться новый интерфейс, который станет активен после настройки со стороны EdgeЦентр.

    Настройка на стороне EdgeЦентр

    После того, как вы настроили интерфейсы на сервере, напишите нам в поддержку — мы выполним все настройки с нашей стороны.

    Помогла ли вам статья?