Miran — База знанийMiran — База знаний

Как настроить MC-LAG

Для корректной работы MC-LAG необходимо произвести настройки на стороне сервера

Настройка MC-LAG на CentOS (lacp)

1. Подключаемся к серверу через IPMI.

2. Проверяем что модуль Bonding загружен:

~]$ modinfo bonding

filename:       
/lib/modules/3.10.0-1160.21.1.el7.x86_64/kernel/drivers/net/bonding/bonding.ko.xz
author:          Thomas Davis, tadavis@lbl.gov and many others
description:     Ethernet Channel Bonding Driver, v3.7.1
version:         3.7.1
license:         GPL
alias:           rtnl-link-bond
retpoline:       Yrhelversion:    7.9
srcversion:      3B2F8F8533AEAE2EB01F706
depends:
intree:          Y
vermagic:        3.10.0-1160.21.1.el7.x86_64 SMP mod_unload modversions
signer:          CentOS Linux kernel signing key

3. Создаем бонд интерфейс ( ifcfg-bond0 ), в каталоге “ /etc/sysconfig/network-scripts/ ”:

~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
DEFROUTE=yes
BONDING_OPTS="mode=802.3ad xmit_hash_policy=layer2+3 lacp_rate=1 miimon=100 min_links=1"
IPADDR=91.142.85.44
PREFIX=24
GATEWAY=91.142.85.1
DNS1=91.142.80.1
DNS2=91.142.82.1

Через строку BONDING_OPTS можно задавать параметры для данного интерфейса, со списком параметров можно ознакомится через modinfo bonding .NM_CONTROLLED="no" - запрещает NetworkManager перезаписывать данный файл, при использовании CentOS 8 строку NM_CONTROLLED="no" необходимо удалить.

4. Изменим настройки физических интерфейсов, для этого выясним их названия:

~]# ip a

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 
scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 
scope host valid_lft forever preferred_lft forever 
2: enp1s0f0: mtu 1500 qdisc mq master bond0 state UP group default qlen 1000 
link/ether 52:82:e4:5d:d5:82 brd ff:ff:ff:ff:ff:ff 
3: enp1s0f1: mtu 1500 qdisc mq master bond0 state UP group default qlen 1000 
link/ether 52:82:e4:5d:d5:82 brd ff:ff:ff:ff:ff:ff 

В данном примере имена интерфейсов enp1s0f1 и enp1s0f1 , однако они могут отличаться.

Далее вносим изменения в настройки сетевых интерфейсов:
~]# cat /etc/sysconfig/network-scripts/ifcfg-enp1s0f0

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

~]# cat /etc/sysconfig/network-scripts/ifcfg-enp1s0f1

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

При использовании CentOS 8 строку NM_CONTROLLED="no" необходимо удалить

5. Перезапускаем network сервис и проверяем что интерфейс bond0 работает:

~]$ ifdown enp1s0f0 && ifup enp1s0f0~]$ ifdown enp1s0f1 && ifup enp1s0f1~]$ cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (2)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: fast
Min links: 1
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: 3c:ec:ef:20:3d:1a
Active Aggregator Info:
       Aggregator ID: 1
       Number of ports: 2
       Actor Key: 9
       Partner Key: 3
       Partner Mac Address: c0:bf:a7:ae:b0:f7

Slave Interface: enp1s0f0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 3c:ec:ef:20:3d:1a
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
   system priority: 65535
   system mac address: 3c:ec:ef:20:3d:1a
   port key: 9
   port priority: 255
   port number: 1
   port state: 63
details partner lacp pdu:
   system priority: 127
   system mac address: c0:bf:a7:ae:b0:f7
   oper key: 3
   port priority: 127
   port number: 8
   port state: 63

Slave Interface: enp1s0f1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 3c:ec:ef:20:3d:1b
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
   system priority: 65535
   system mac address: 3c:ec:ef:20:3d:1a
   port key: 9
   port priority: 255
   port number: 2
   port state: 63
details partner lacp pdu:
   system priority: 127
   system mac address: c0:bf:a7:ae:b0:f7
   oper key: 3
   port priority: 127
   port number: 7
   port state: 63

Настройка MC-LAG на Debian 9 и 10 (lacp)

1. Подключаемся к серверу через IPMI.

2. Устанавливаем пакет для включения бондинга:

~]# apt-get install ifenslave

3. Выключаем сетевые интерфейсы:

~]# ifdown eth0 (Выполните для всех интерфейсов, которые планируете включить в агрегацию)

~]# /etc/init.d/networking stop

4. Вносим изменения в файл “ /etc/network/interfaces ”:

~]# cat /etc/network/interfaces

auto bond0 

iface bond0 inet static 
    address 91.142.85.44
    netmask 255.255.255.0
    network 91.142.95.0
    gateway 91.142.85.1
    dns-nameservers 91.142.80.1 91.142.82.1
    slaves eth0 eth1
    bond-mode 802.3ad
    bond_lacp_rate fast
    bond-miimon 100
    bond-downdelay 100
    bond-updelay 100
    bond-xmit-hash-policy layer2+3

5. Поднимаем интерфейс bond0 и проверяем:

# ifup bond0 
# /etc/init.d/networking start 
# 
# cat /proc/net/bonding/bond0 

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) 

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0) 
MII Status: up 
MII Polling Interval (ms): 100 
Up Delay (ms): 200 
Down Delay (ms): 200 

802.3ad info 
LACP rate: slow 
Min links: 0 
Aggregator selection policy (ad_select): stable 
System priority: 65535 
System MAC address: 3c:ec:ef:20:3d:1a 
Active Aggregator Info: 
           Aggregator ID: 6 
           Number of ports: 2 
           Actor Key: 9 
           Partner Key: 3 
           Partner Mac Address: c0:bf:a7:ae:b0:f7

Slave Interface: eth0 
MII Status: up 
Speed: 1000 Mbps 
Duplex: full 
Link Failure Count: 0 
Permanent HW addr: 3c:ec:ef:20:3d:1a 
Slave queue ID: 0 
Aggregator ID: 5 
Actor Churn State: monitoring 
Partner Churn State: monitoring 
Actor Churned Count: 0 
Partner Churned Count: 0 
details actor lacp pdu: 
    system priority: 65535 
    system mac address: 3c:ec:ef:20:3d:1a 
    port key: 9 
    port priority: 255 
    port number: 1 
    port state: 69 
details partner lacp pdu: 
    system priority: 65535 
    system mac address: 00:00:00:00:00:00 
    oper key: 1 
    port priority: 255 
    port number: 1 
    port state: 1 

Slave Interface: eth1 
MII Status: up 
Speed: 1000 Mbps 
Duplex: full 
Link Failure Count: 0 
Permanent HW addr: 3c:ec:ef:20:3d:1b 
Slave queue ID: 0 
Aggregator ID: 6 
Actor Churn State: monitoring 
Partner Churn State: monitoring 
Actor Churned Count: 0 
Partner Churned Count: 0 
details actor lacp pdu: 
    system priority: 65535 
    system mac address: 3c:ec:ef:20:3d:1a 
    port key: 9 
    port priority: 255 
    port number: 2 
    port state: 61 
details partner lacp pdu: 
    system priority: 127 
    system mac address: c0:bf:a7:ae:b0:f7 
    oper key: 3 
    port priority: 127 
    port number: 7 
    port state: 63

Настройка MC-LAG на Ubuntu 18.04 и 20.04 (lacp)

1. Подключаемся к серверу через IPMI.

2. Для настройки нам понадобятся имена сетевых интерфейсов, посмотреть их можно командой:

:~# ip a

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
2: enp1s0f0: mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
   link/ether 52:82:e4:5d:d5:82 brd ff:ff:ff:ff:ff:ff
3: enp1s0f1: mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
   link/ether 52:82:e4:5d:d5:82 brd ff:ff:ff:ff:ff:ff

В данном примере имена интерфейсов enp1s0f1 и enp1s0f1 , однако они могут отличаться.

3. Вносим изменения в файл “ /etc/netplan/01-netcfg.yaml ”, для отступов следует пользоваться пробелами:

:~# cat /etc/netplan/01-netcfg.yaml

network:
   version: 2
   renderer: networkd
   ethernets:
       enp1s0f0:
               dhcp4: false
               optional: true
       enp1s0f1:
               dhcp4: false
               optional: true

4. Вносим изменения в файл “ /etc/netplan/02-bonding.yaml ” (помним про отступы) :

:~# cat /etc/netplan/02-bonding.yaml

network:
   version: 2
   renderer: networkd
   bonds:
       bond0:
           interfaces: [enp1s0f0, enp1s0f1]
           addresses: [91.142.85.44/24]
           gateway4: 91.142.85.1
           parameters:
               mode: 802.3ad
           nameservers:
               addresses: [91.142.80.1, 91.142.82.1]
           dhcp4: false
           optional: true

5. Применяем новую конфигурацию и проверяем интерфейс bond0 :

:~# netplan --debug apply

:~# ip a

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
2: enp1s0f0: mtu 1500 qdisc mq master bond0 state UP group default qlen
1000
   link/ether 52:82:e4:5d:d5:82 brd ff:ff:ff:ff:ff:ff
3: enp1s0f1: mtu 1500 qdisc mq master bond0 state UP group default qlen
1000
   link/ether 52:82:e4:5d:d5:82 brd ff:ff:ff:ff:ff:ff
4: bond0: mtu 1500 qdisc noqueue state UP group default qlen 1000
   link/ether 52:82:e4:5d:d5:82 brd ff:ff:ff:ff:ff:ff
   inet 91.142.85.44/24 brd 91.142.85.255 scope global bond0
      valid_lft forever preferred_lft forever
   inet6 fe80::5082:e4ff:fe5d:d582/64 scope link
      valid_lft forever preferred_lft forever

:~# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

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: slow
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: 52:82:e4:5d:d5:82
Active Aggregator Info:
       Aggregator ID: 1
       Number of ports: 2
       Actor Key: 9
       Partner Key: 3
       Partner Mac Address: c0:bf:a7:ae:b0:f7

Slave Interface: enp1s0f1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 3c:ec:ef:20:3d:1b
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
   system priority: 65535
   system mac address: 52:82:e4:5d:d5:82
   port key: 9
   port priority: 255
   port number: 1
   port state: 61
details partner lacp pdu:
   system priority: 127
   system mac address: c0:bf:a7:ae:b0:f7
   oper key: 3
   port priority: 127
   port number: 7
   port state: 63

Slave Interface: enp1s0f0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 3c:ec:ef:20:3d:1a
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: monitoring
Partner Churn State: monitoring
Actor Churned Count: 1
Partner Churned Count: 1
details actor lacp pdu:
   system priority: 65535
   system mac address: 52:82:e4:5d:d5:82
   port key: 9
   port priority: 255
   port number: 2
   port state: 61
details partner lacp pdu:
   system priority: 127
   system mac address: c0:bf:a7:ae:b0:f7
   oper key: 3
   port priority: 127
   port number: 8
   port state: 63

Настройка MC-LAG на EXSi (lacp)

1. Подключаемся к серверу через IPMI и переходим в раздел vSwitch0:

BlockNote image

2. Нажимаем кнопку Add uplink:

BlockNote image

3. Добавляем второй сетевой интерфейс и настраиваем NIC teaming:

BlockNote image

4. Проверяем что служба для работы NIC-Teaming включена, если нет - включаем. Для этого переходим в Host > Manage > Services и запускаем службу lbtd:

BlockNote image

Настройка MC-LAG на Windows Server RU NIC Teaming (lacp)

Внимание! Выполнять настройку группировки портов рекомендуется через IPMI (доступен через биллинг).

Создание подключения через Диспетчер серверов:

1. Запустите Диспетчер серверов .

2. В меню слева выберите Локальный сервер .

3. В открывшемся окне Свойства , нажмите на Включено или Отключено для Объединения сетевых карт:

Диспетчер серверов

Диспетчер серверов

4. Для создания группы портов:

a. В верхнем меню Серверы выберите сервер который хотите настроить. Если к диспетчеру подключен только один сервер - имя сервера выберется автоматически;

b. В секции Группы нажмите на кнопку Задачи и в меню выберите Создать группу , после чего откроется диалоговое окно Объединение сетевых карт ;

c. Введите имя новой группы, а также выберите сетевые адаптеры которые необходимо объединить;

d. Нажмите на Дополнительные свойства ;

Режим поддержки групп- LACP;

Режим балансировки нагрузки: Хеш Адреса - Вычисляется хэш на основе MAC или IP и привязывает данный хэш к определенному физическому адаптеру. Hyper-V порт - Привязывает определенный порт группы к виртуальному свитчу Hyper-V. Динамический - Использует самые лучшие аспекты указанных выше режимов. Используется по умолчанию с Windows Server 2016.

Объединение сетевых карт

Объединение сетевых карт

e. Основной групповой интерфейс:

В данном меню можно указать VLAN ID для группового интерфейса:

BlockNote image

BlockNote image

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

BlockNote image

BlockNote image

Создание подключения через Powershell:

1. Используя команду Get-NetAdapter узнаем имена сетевых адаптеров:

BlockNote image

2. Создаем новую группу портов, внимательно смотрим на имена портов.В случае если алгоритм балансировки Dynamic недоступен - в таком случае необходимо использовать IPAddresses:

> New-NetLbfoTeam -Name NewTeam -TeamMembers "Ethernet","Ethernet 2" -TeamingMode LACP -LoadBalancingAlgorithm Dynamic
BlockNote image

3. Устанавливаем сетевые настройки для созданного адаптера:

> New-NetIPAddress -InterfaceAlias NewTeam -IPAddress <ip address> -PrefixLength <prefix> -DefaultGateway <gw>
> Set-DnsClientServerAddress -InterfaceAlias NewTeam -ServerAddresses ("ip 1","ip 2")

Пример:
> New-NetIPAddress -InterfaceAlias NewTeam -IPAddress 91.142.85.44 -PrefixLength 24 -DefaultGateway 91.142.85.1
> Set-DnsClientServerAddress -InterfaceAlias NewTeam -ServerAddresses ("91.142.80.1","91.142.82.1")
BlockNote image

Настройка MC-LAG на Windows Server EN NIC Teaming (lacp)

Attention! It is recommended to configure NIC Teaming through the IPMI (available through billing).

Сreating a connection in the server manager.

1. Launch Server Manager.

2. Select from left menu Local Server.

3. In the Properties window, click Enable or Disable for NIC Teaming:

Server Manager

Server Manager

4. For creating a team

a. In the Servers section, select the name of the server to set up. If there is only one server connected, the name of the server is selected automatically;

b. In the Teams section, under Tasks , select New Team . The New Team wizard then starts;

c. Type the name of the team to create, and then select the network adapter to include in the team from the Member adapters list;

d. Click Additional properties;

- From Teaming mode select the LACP;

- Load balancing mode:

Address Hash - Distributes the load based on IP addresses and port numbers.

Hyper-V Port - Distributes the load to each of the virtual switch ports used by the virtual machines.

Dynamic - Distributes the load based on IP addresses and port numbers in sending. / Distributes the load same to "Hyper-V Port" in receiving.

The New team wizard

The New team wizard

e. Primary team interface

Any VLAN ID can be specified for the primary team interface

BlockNote image

If the Dynamic balancing algorithm is not available - in this case, you must use IPAddresses.

BlockNote image

5. As a result, a new adapter will appear in the list of network adapters, for which you need to specify network settings:

BlockNote image

BlockNote image

Сreating a connection in the PowerShell

1. Get the names of network interfaces via the command Get-NetAdapter:

BlockNote image

2. Creating a new team.If the Dynamic balancing algorithm is not available - in this case, you must useIPAddresses:

> New-NetLbfoTeam -Name NewTeam -TeamMembers "Ethernet1","Ethernet 2" -TeamingMode LACP -LoadBalancingAlgorithm Dynamic
BlockNote image

3. Set the ip address to the interface:

> New-NetIPAddress -InterfaceAlias NewTeam -IPAddress <ip address> -PrefixLength <prefix> -DefaultGateway <gw>
> Set-DnsClientServerAddress -InterfaceAlias NewTeam -ServerAddresses ("ip 1","ip 2")

Пример:
> New-NetIPAddress -InterfaceAlias NewTeam -IPAddress 91.142.85.44 -PrefixLength 24 -DefaultGateway 91.142.85.1
> Set-DnsClientServerAddress -InterfaceAlias NewTeam -ServerAddresses ("91.142.80.1","91.142.82.1")
BlockNote image

Похожие статьи

Как настроить Fake-raid
Мониторинг выделенных серверов