Как настроить 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:
2. Нажимаем кнопку Add uplink:
3. Добавляем второй сетевой интерфейс и настраиваем NIC teaming:
4. Проверяем что служба для работы NIC-Teaming включена, если нет - включаем. Для этого переходим в Host > Manage > Services и запускаем службу lbtd:
Настройка 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 для группового интерфейса:
5. После внесения всех параметров и нажатия на кнопку ОК будет создан новый интерфейс, для которого необходимо задать сетевые параметры.
Создание подключения через Powershell:
1. Используя команду Get-NetAdapter узнаем имена сетевых адаптеров:
2. Создаем новую группу портов, внимательно смотрим на имена портов. В случае если алгоритм балансировки Dynamic недоступен - в таком случае необходимо использовать IPAddresses:
> New-NetLbfoTeam -Name NewTeam -TeamMembers "Ethernet","Ethernet 2" -TeamingMode LACP -LoadBalancingAlgorithm Dynamic
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")
Настройка 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:
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.
e. Primary team interface
Any VLAN ID can be specified for the primary team interface
If the Dynamic balancing algorithm is not available - in this case, you must use IPAddresses.
5. As a result, a new adapter will appear in the list of network adapters, for which you need to specify network settings:
Сreating a connection in the PowerShell
1. Get the names of network interfaces via the command Get-NetAdapter:
2. Creating a new team. If the Dynamic balancing algorithm is not available - in this case, you must use IPAddresses:
> New-NetLbfoTeam -Name NewTeam -TeamMembers "Ethernet1","Ethernet 2" -TeamingMode LACP -LoadBalancingAlgorithm Dynamic
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")