NIC Teaming в Windows Server 2012
С выходом Windows Server 2012 технология NIC Teaming стала штатным средством серверной операционной системы. Долгое время решения по объединению (группировке) сетевых адаптеров для платформы Windows предоставлялись только сторонними производителями, прежде всего, поставщиками оборудования. Теперь Windows Server 2012 содержит инструменты, которые позволяют группировать сетевые адаптеры, в том числе, адаптеры разных производителей.
Что дает NIC Teaming?
Технология NIC Teaming, именуемая также как Load Balancing/Failover (LBFO), доступна во всех редакциях Windows Server 2012 и во всех режимах работы сервера (Core, MinShell, Full GUI). Объединение (тиминг) нескольких физических сетевых адаптеров в группу приводит к появлению виртуального сетевого интерфейса tNIC, который представляет группу для вышележащих уровней операционной системы.
- Отказоустойчивость на уровне сетевого адаптера и, соответственно, сетевого трафика. Выход из строя сетевого адаптера группы не приводит к потери сетевого соединения, сервер переключает сетевой трафик на работоспособные адаптеры группы.
- Агрегирование полосы пропускания адаптеров, входящих в группу. При выполнении сетевых операций, например, копирования файлов из общих папок, система потенциально может задействовать все адаптеры группы, повышая производительность сетевого взаимодействия.
Особенности NIC Teaming в Windows Server 2012
Windows Server 2012 позволяет объединять в группу до 32 сетевых адаптеров Ethernet. Тиминг не Ethernet адаптеров (Bluetooth, Infiniband и пр.) не поддерживается. В принципе, группа может содержать только один адаптер, например, для разделения трафика по VLAN, но, очевидно, отказоустойчивость в этом случае не обеспечивается.
Драйвер сетевого адаптера, включаемого в группу, должен иметь цифровую подпись Windows Hardware Qualification and Logo (WHQL). В этом случае можно объединять в группу адаптеры разных производителей, и это будет поддерживаемая Microsoft конфигурация.
В одну группу можно включать только адаптеры с одинаковой скоростью подключения (speed connections).
Не рекомендуется использовать на одном сервере встроенный тиминг и тиминг третьих фирм. Не поддерживаются конфигурации, когда адаптер, входящий в тиминг стороннего производителя, добавляется в группу, создаваемую штатными средствами ОС, и наоборот.
Параметры NIC Teaming
При создании тиминговой группы необходимо указать несколько параметров (рассмотрены ниже), два из которых имеют принципиальное значение: режим тиминга (teaming mode) и режим балансировки трафика (load balancing mode).
Режим тиминга
Тиминговая группа может работать в двух режимах: зависимый от коммутатора (switch dependent) и не зависимый от коммутатора (switch independent).
Как следует из названия, в первом варианте (switch dependent) потребуется настройка коммутатора, к которому подключаются все адаптеры группы. Возможны две опции – статическая настройка свича (IEEE 802.3ad draft v1), либо использование протокола Link Aggregation Control Protocol (LACP, IEEE 802.1ax).
В режиме switch independent адаптеры группы могут быть подключены к разным коммутаторам. Подчеркиваю, могут быть, но это необязательно. Просто если это так, отказоустойчивость может быть обеспечена не только на уровне сетевого адаптера, но и на уровне коммутатора.
Режим балансировки
Кроме указания режима работы тиминга, необходимо еще указать режим распределения или балансировки трафика. Таких режимов по сути два: Hyper-V Port и Address Hash.
Hyper-V Port. На хосте с поднятой ролью Hyper-V и n-ым количеством виртуальных машин (ВМ) данный режим может оказаться весьма эффективным. В этом режиме порт Hyper-V Extensible Switch, к которому подключена некоторая ВМ, ставится в соответствие какому-либо сетевому адаптеру тиминговой группы. Весь исходящий трафик данной ВМ всегда передается через этот сетевой адаптер.
Address Hash. В этом режиме для сетевого пакета вычисляется хэш на основе адресов отправителя и получателя. Полученный хэш ассоциируется с каким-либо адаптером группы. Все последующие пакеты с таким же значением хэша пересылаются через этот адаптер.
- MAC-адрес отправителя и получателя;
- IP-адрес отправителя и получателя (2-tuple hash);
- TCP-порт отправителя и получателя и IP-адрес отправителя и получателя (4-tuple hash).
Таблица ниже описывает логику распределения входящего/исходящего трафика в зависимости от режима работы группы и выбранного алгоритма распределения трафика. Отталкиваясь от этой таблицы, вы сможете выбрать наиболее подходящий для вашей конфигурации вариант.
- Исходящий трафик распределяется между всеми активными адаптерами группы
- Входящий трафик поступает только на один интерфейс (основной адаптер группы). В случае сбоя в работе основного адаптера группы, его функции передаются другому сетевому адаптеру, и весь входящий трафик направляется к нему
- К исходящим пакетам присоединяется тег со ссылкой на порт коммутатора Hyper-V, через который эти пакеты были переданы. Все пакеты с одного порта направляются одному и тому же адаптеру группы
- Входящий трафик, предназначенный для конкретного порта Hyper-V, поступает тому же адаптеру группы, который используется для отправки пакетов
с этого порта
- Исходящий трафик распределяется между всеми активными адаптерами группы
- Входящий трафик будет перенаправляться
в соответствии с алгоритмом распределения нагрузки, который реализован в коммутаторе
- К исходящим пакетам присоединяется тег со ссылкой на порт коммутатора Hyper-V, через который эти пакеты были переданы. Все пакеты с одного порта направляются одному и тому же адаптеру группы. Если группа была переведена в режим распределения портов коммутатора Hyper-V, но не была подключена к коммутатору Hyper-V, весь исходящий трафик будет отправлен одному адаптеру группы
- Входящий трафик будет перенаправляться в соответствии с алгоритмом распределения нагрузки, который реализован в коммутаторе
Необходимо отметить еще один параметр. По умолчанию все адаптеры группы являются активными и задействуются для передачи трафика. Однако вы можете один из адаптеров указать в качестве Standby. Это адаптер будет использоваться только в качестве «горячей» замены, если один из активных адаптеров выходит из строя.
NIC Teaming в гостевой ОС
По разным причинам вы можете не захотеть включать тиминг на хостовой машине. Или же установленные адаптеры не могут быть объединены в тиминг штатными средствами ОС. Последнее справедливо для адаптеров с поддержкой SR-IOV, RDMA или TCP Chimney. Тем не менее, если на хосте более одного даже такого физического сетевого адаптера, можно использовать NIC Teaming внутри гостевой ОС. Представим, что на хосте две сетевые карточки. Если в некоторой ВМ два виртуальных сетевых адаптера, эти адаптеры через два виртуальных свича типа external подключены к, соответственно, двум физическим карточкам, и внутри ВМ установлена ОС Windows Server 2012, то вы можете сконфигурировать NIC Teaming внутри гостевой ОС. И такая ВМ сможет воспользоваться всеми преимуществами тиминга, и отказоустойчивостью, и повышенной пропускной способностью. Но для того, чтобы Hyper-V понимал, что при выходе из строя одного физического адаптера, трафик для этой ВМ нужно перебросить на другой физический адаптер, нужно установить чекбокс в свойствах каждого виртуального NIC, входящего в тиминг.

В PowerShell аналогичная настройка задается следующим образом:
Добавлю, что в гостевой ОС можно объединить в группу только два адаптера, и для группы возможен только switch independent + address hash режим.
Настройка NIC Teaming
Настройка тиминга возможна в графическом интерфейсе Server Manager, либо в PowerShell. Начнем с Server Manager, в котором необходимо выбрать Local Server и NIC Teaming.

В разделе TEAMS в меню TASKS выбираем New Team.

Задаем имя создаваемой группы, помечаем включаемые в группу адаптеры и выбираем режим тиминга (Static, Switch Independent или LACP).

Выбираем режим балансировки трафика.

Если необходимо, указываем Standby-адаптер.

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

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

В PowerShell манипуляции с тимингом реализуются набором команд с суффиксом Lbfo. Например, создание группы может выглядеть так:
Здесь TransportPorts означает балансировку с использованием 4-tuple hash.
Замечу, что вновь созданный сетевой интерфейс по умолчанию использует динамическую IP-адресацию. Если в скрипте нужно задать фиксированные настройки IP и DNS, то сделать это можно, например, так:
Таким образом, встроенными средствами Windows Server 2012 вы можете теперь группировать сетевые адаптеры хостовой или виртуальной машины, обеспечивая отказоустойчивость сетевого трафика и агрегирование пропускной полосы адаптеров.
Настройка NIC Teaming в Windows Server 2019/2016 и Windows 10
19.01.2022
itpro
PowerShell, Windows 10, Windows 11, Windows Server 2016, Windows Server 2019
комментариев 35
Технология NIC Teaming (или Load Balancing/Failover – LBFO, или NIC bonding) позволяет объединить несколько физических сетевых адаптеров (NIC) в одну логическую сетевую карту. В этой статье мы рассмотрим, как настроить NIC Teaming в Windows Server 2019/2016/2012R2 и в десктопых версиях Windows 10 и 11.
Для чего может понадобится объединять сетевые адаптеры в группу NIC Teaming?
- Увеличение пропускной способности. Например, объединив две сетевые 1 Гб сетевые карты в одну группу NIC Teaming, вы получите общую полосу пропускания на логическом адаптере 2 Гбит/с;
- Управление балансировкой нагрузки на сетевые карты – можно управлять распределением трафика между NIC сервера;
- Отказоустойчивость – при выходе из строя любой из сетевых карт, добавленных в группу NIC teaming, остальные подхватывают ее функции, и связь с сервером не прерывается. Для критически важных серверов этот механизм может защитить от простоя сервиса во время выхода из строя сетевого коммутатора или Ethernet порта на нем, сетевого кабеля (которым ваш хост подключен к коммутатору). Для реализации такой возможности, достаточно подключить сетевые карты в разные физические коммутаторы.
Настройка NIC Teaming в Windows Server 2019
Вы можете настроить NIC Teaming в Windows Server начиная с версии 2012. Рассмотрим, как объединить несколько сетевых адаптеров в Windows Server 2019 в одну группу NIC Teaming. Режим NIC Teaming по умолчанию отключен в Windows Server.
Чтобы включить его, откройте консоль Server Manager, выберите локальный сервер (Local Server) и в его свойствах выберите пункт “NIC Teaming: Disabled“.

В появившемся окне в левой нижней панели выберите пункт Tasks -> New Team (Создать группу).

Далее нужно указать имя группы (Team Name) и выбрать сетевые адаптеры, которые будут входить в эту группу.

Ниже можно настроить специальные параметры группы. От данных параметров зависит правила и эффективность NIC Teaming. Рассмотрим эти настройки подробнее.
Режим поддержки групп (Teaming Mode). Данный параметр определяет способ взаимодействия группы с сетевым оборудованием (коммутатором)
- Static Teaming (IEEE 802.3ad)— статический режим работы с зависимостью от сетевого оборудования. Все адаптеры группы должны быть подключены к одному коммутатору, Ethernet порты которого настроены на использование статической агрегации каналов (требуется настройка на коммутаторе);
- Switch Independent (режим по-умолчанию) – группа работает независимо от коммутатора, для реализации не нужно дополнительно настраивать сетевое оборудование. В этом режиме разные сетевые адаптеры группы можно подключить к разным коммутаторам для повышения отказоустойчивости (защита от сбоев в коммутаторах);
- LACP (Link Aggregation Control Protocol, LACP, IEEE 802.1ax) – режим также зависит от сетевого оборудования. Нужно включить и настроить на коммутаторе динамическую агрегацию каналов по протоколу LACP.
Режим балансировки нагрузки (Load Balancing mode) – задает как распределяется сетевой трафик по NIC в группе.
- Address Hash — для каждого из адаптеров вычисляется специальный хэш (на основании MAC или IP-адресов отправителя и получателя) и привязывается определенному физическому адаптеру. Весь трафик от данного отправителя будет идти через этот NIC;
- Hyper-V Port — режим можно использовать для сервера с ролью Hyper-V. Позволяет привязать конкретный адаптер группу NIC teaming к конкретному порту на виртуальном коммутаторе Hyper-V;
- Dynamic – опция по умолчанию, совмещает оба типа балансировки нагрузки.
Один из адаптеров в группе можно назначить резервным (Standby adapter). В обычном режиме работы данная NIC не используется для передачи трафика. При неполадке на любом другом адаптере в группе NIC Teaming, он тут-же занимает его место. В общем случае и без данной функции при выходе из строя любой сетевой карты, не будет простоя сервиса, т.к. ее нагрузка автоматически распределится между оставшимися картами в группе.
Выберите нужные параметры, нажмите ОК и новая группа Nic Teaming будет создана.
Откройте список сетевых подключения в панели управления Windows. Убедитесь, что в Windows Server появился новый сетевой адаптер Microsoft Network Adapter Multiplexor Driver (его иконка немного отличается). Это и есть виртуальный адаптер группы NIC Teaming.

Дальнейшая настройка параметров сетевой карты (протоколы, IPv4/v6 адрес) осуществляется теперь в свойствах этого адаптера.

У всех остальных сетевых адаптеров, которые вы добавили в группу NIC Teaming уже не будет собственных IP адресов.

В дальнейшем вы можете добавить или удалить сетевые адаптеры в группу NIC Teaming.
Вы можете использовать группу NIC Teaming для настройки нескольких VLAN интерфейсов в Windows Server. Для этого можно даже создать группу NIC Teaming из одного сетевого адаптера.
Используем PowerShell для настройки NIC Teaming в Windows Server
Вы можете создавать и управлять группами NIC Teaming не только из графического интерфейса Windows, но и с помощью PowerShell. Вы можете использовать PowerShell для настройки NIC Teaming в Windows Server Core
В Windows Server для управления MIC Teaming есть встроенный модуль NetLbfo. Выведите список сетевых адаптеров на сервере:

Создайте новую группу с Team0 из адаптеров с именами Ethernet1 и Ethernet3. Выберите режим работы NIC Teaming: Switch Independent с динамической балансировкой.
New-NetLbfoTeam -Name Team0 -TeamMembers Ethernet1,Ethernet3 -TeamingMode SwitchIndependent -LoadBalancingAlgorithm Dynamic

- TeamingMode: Static , SwitchIndependent , Lacp
- LoadBalansingAlgorithm: TransportPorts , IPAddresses , MacAddresses , HyperVPort , Dynamic
Информацию о группах NIC Teaming на сервере можно вывести с помощью команды:

Можно настроить IP адрес интерфейса NIC Teaming с помощью PowerShell:
New-NetIPAddress -InterfaceAlias team0 -IPAddress 192.168.13.100 -PrefixLength 24 -DefaultGateway 192.168.13.1
Set-DnsClientServerAddress -InterfaceAlias team0 -ServerAddresses 192.168.13.10
Выполните команду Get-NetAdapter . Обратите внимание, что LinkSpeed сетевого адаптера группу NIC Teaming — 2 Гбит/с.

Чтобы изменить настройки группы NIC Teaming используется командлет Set-NetLbfoTeam:
Set-NetLbfoTeam -Name team0 -TeamingMode LACP
Чтобы через NIC Teaming добавить отдельный VLAN интерфейс, используйте команду:
Add-NetLbfoTeamNIC -Team Team0 -VlanID 10
Удалить группу NIC Team можно командой:
Remove-NetLbfoTeam -Name Team0
Создаем группу сетевых адаптеров NIC Teaming в Windows 10 и 11
Вы можете использовать NIC Teaming для объединения сетевых карт не только в Windows Server, но и в клиентских версиях Windows 10 и 11. Главное, чтобы производитель вашей сетевой карты поддерживал для нее режим Link aggregation / NIC teaming/ LBFO.
Например, NIC Teaming работает из коробки с драйверами картами Realtek PCIe GbE Family Controller ( 10.35.510.2019) или Intel(R) 82574L Gigabit Network Connection.
Чтобы собрать группу NIC Teaming в Windows 10 (в этом примере это Windows 10 20H2), откройте консоль PowerShell и выведите список сетевых адаптеров:
Соберем группу NIC Team из адаптеров Ethernet0 и Ethernet1.
New-NetSwitchTeam -Name «MyNICTeam» -TeamMembers «Ethernet0″,»Ethernet1»

Проверьте, что в системе появился новый интерфейс NIC Teaming.

Не забудьте задать для него сетевые настройки. Теперь у вас появился новый интерфейс с пропускной способностью 2 Гбит/с.

Для удаления созданной группы NIC Team, также нужно использовать PowerShell:
Remove-NetSwitchTeam -Name «MyNICTeam»
Предыдущая статья Следующая статья
Технология NIC Teaming в Windows Server 2012
Технология объединения сетевых адаптеров NIC Teaming заключается в том, что несколько физических адаптеров (NIC) объединяются в группу, в результате чего получается один единственный логический адаптер. Процесс объединения называют teaming. NIC Teaming решает две основные задачи:
• Увеличение полосы пропускания — полоса увеличивается пропорционально количеству адаптеров в группе. Например, если объединить в NIC Teaming четыре сетевых адаптера со скоростью 1 Гбит/с, то общая полоса пропускания составит 4 Гбит/с;
• Отказоустойчивость — когда один адаптер выходит из строя, остальные берут на себя его функции и связь не прерывается.
NIC Teaming технология не новая, но раньше ее реализация целиком зависела от производителей сетевого оборудования. Возможность объединять сетевые адаптеры в группу средствами операционной системы появилась только в Windows Server 2012. NIC Teaming в Server 2012 позволяет объединять в группу адаптеры разных производителей, единственное ограничение — все они должны работать на одной скорости. Объединить в NIC Teaming можно до 32 сетевых адаптеров.
Включение и настройка
По умолчанию режим NIC Teaming отключен. Чтобы его активировать открываем Server Manager, заходим в свойства сервера и нажимаем ссылку Объединение сетевых карт (NIC Teaming).

В открывшемся окне жмем на кнопку Задачи (Tasks) и выбираем пункт Создать группу (New Team).

Даем группе название и выбираем добавляемые адаптеры.

Затем настраиваем дополнительные свойства группы. Поскольку от этих параметров зависит эффективность работы NIC Teaming, стоит рассмотреть их поподробнее.
Режим поддержки групп (Teaming mode) определяет режим взаимодействия группы с сетевым оборудованием:
• Не зависит от коммутатора (Switch Independent) — группа работает независимо от коммутатора, никакой дополнительной настройки сетевого оборудования не требуется. Этот режим позволяет подключать адаптеры одной тиминговой группы к разным свичам для защиты от сбоя одного из них. Выбирается по умолчанию;
• Статическая поддержка групп (Static Teaming) — режим с зависимостью от сетевого оборудования. Все адаптеры группы должны быть подключены к одному коммутатору. Порты коммутатора, к которым подключены адаптеры группы, настраиваются на использование статической агрегации каналов;
• LACP — также зависит от сетевого оборудования. Коммутатор настраивается на использование динамической агрегации каналов с использованием протокола Link Aggregation Control Protocol (LACP).
Режим балансировки нагрузки (Load Balancing mode) определяет, каким образом распределять сетевой трафик между адаптерами группы:
• Хэш адреса (Address Hash) — при передаче сетевого трафика на основании MAC или IP-адресов отправителя и получателя вычисляется хеш (число). Это число привязывается к определенному физическому адаптеру и в дальнейшем весь трафик от этого отправителя будет идти через этот адаптер;
• Порт Hyper-V (Hyper-V Port) — в этом режиме осуществляется привязка адаптера тиминговой группы к определенному порту виртуального свича в Hyper-V. Этот режим используется в том случае, если на сервере активирована роль Hyper-V.
Резервный адаптер (Standby adapter) позволяет назначить один из адаптеров группы в качестве резервного. В нормальном состоянии резервный адаптер не используется для передачи трафика, но при выходе любого адаптера группы из строя сразу занимает его место и трафик продолжает передаваться без перерывов. Впрочем, даже без резервирования выход из строя одного адаптера в NIC Teaming не приведет к прерыванию сетевых операций, т.к. нагрузка будет автоматически распределена по оставшимся адаптерам.

Настроив свойства группы, жмем ОК. Все, группа создана. Теперь в окне «Сетевые подключения» появился еще один сетевой адаптер, который как раз и является виртуальным адаптером группы.

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

А все настройки теперь производятся в свойствах виртуального адаптера.

Включить и управлять NIC Teaming можно и с помощью PowerShell. Для этого в PS есть целый модуль по имени NetLbfo.

К примеру, следующая команда создает группу Team1 из адаптеров Ethernet и Ethernet 2, включает режим Switch Independent и задает балансировку нагрузки по хешу адреса:
New-NetLbfoTeam -Name Team1 -TeamMembers ″Ethernet″,″Ethernet 2″ `
-TeamingMode SwitchIndependent -LoadBalansingAlgorithm TransportPorts

Отключение NIC Teaming
Отключение NIC Teaming произойдет, если удалить тиминговую группу. Сделать это можно в Server Manager, в окне NIC Teaming.

Также удалить группу можно через PowerShell командой Remove-NetLbfoTeam -Name Team1

Кстати, при удалении группы восстанавливаются предыдущие настройки сетевых адаптеров.
Заключение
Реализация технологии NIC Teaming в Windows Server 2012 откровенно порадовала. Она проста в настройке, не предъявляет специальных требований к оборудованию и может работать работает практически с любыми сетевыми адаптерами. В общем я за ее использование, однозначно.
Разбираемся с агрегированием каналов или Link aggregation в Vmware

Приветствую всех. Сегодня я постараюсь внести ясность в такую неоднозначную и вызывающую много споров тему, как агрегирование каналов в Vmware. Многие (в том числе и производители оборудования) для описания агрегирования каналов применяют такие термины как LACP, 802.3ad, Ethernet trunk, NIC Teaming, Port Channel, Port Teaming, Link Bundling, NIC bonding, EtherChannel, link aggregation и некоторые другие. В целом, технология агрегирования каналов, это технология позволяющая объединить несколько физических каналов в один логический. Такое объединение позволяет увеличивать пропускную способность (он же Load Distribution или Load Balancing) и надежность канала (она же Failover). В данной статье, возможно, я сделал какие-то неверные выводы и буду благодарен за дополнения и комментарии. Для написания статьи я придерживался мануала Cisco IEEE 802.3ad Link Bundling, ибо только в нем нашел более менее систематизированные понятия.
Введение в агрегирование каналов (NIC Teaming)
Для начала, давайте разберемся в терминологии. В связи с большой путаницей в понятиях, я буду придерживаться следующего списка:
Агрегирование каналов — собственно, общее наименование любого из видов объединения физических каналов в логический.
EtherChannel — это просто название технологии Cisco, описывающей агрегацию каналов (не протокол ил стандарт).
Teaming (или NIC Teaming) — по аналогии с Cisco, это так же название технологии агрегации каналов в компании Vmware (и некоторых других, например Intel и HP).
Link Aggregation Control Protocol (LACP) — протокол агрегации каналов, имеющий возможности автоматически создавать агрегацию (посредством пересылки LACP PDU пакетов). Протокол LACP описан в стандарте IEEE 802.3ad (как утверждает Microsoft, он же имеет маркировку IEEE 802.1ax, хотя в Cisco я не нашел упоминания 802.1ax).
IEEE 802.3ad — стандарт, описывающий протоколы и принципы агрегирования каналов. Так же, включает описание балансировки трафика агрегированных каналов.
LAG (Link Aggrigation Group) — в терминологии Vmware это и есть логический канал, объединяющий в себе uplink порты.
Далее, давайте рассмотрим что же такое агрегирование каналов без привязки к производителю. Из терминов выше — ясно, что это технология объединения физических интерфейсов в логический. Какую-то часть функционала данной технологии выполняет протокол STP, позволяющий использовать несколько физических интерфейсов для отказоустойчивости. Но данный протокол не позволяет осуществлять балансировку трафика и по сути в какой-то один момент времени использует только один физический линк для передачи данных. Хотя агрегирование позволяет увеличить пропускную способность канала, но не стоит рассчитывать на идеальную балансировку нагрузки между всеми интерфейсами в агрегированном канале. Технологии по балансировке нагрузки в агрегированных каналах, как правило, ориентированы на балансировку по таким критериям: MAC-адресам, IP-адресам, портам отправителя или получателя (по одному критерию или их комбинации). Агрегирование каналов у многих производителей сетевого оборудования возможно только в режиме «точка-точка». То есть возможно агрегировать каналы начинающиеся на одном устройстве и заканчивающиеся на другом устройстве. Т.к. цель данной статьи — рассмотреть NIC Teaming на Vmware, то для упрощения будем придерживаться ситуации, когда наш хост использует один физический коммутатор для агрегирования каналов.
Какие же требования необходимо выполнить, чтобы агрегирование каналов заработало корректно?
- Максимальное количество поддерживаемых интерфейсов в агрегированном канале определяется производителем оборудования. (наиболее частая цифра 4 или 8 интерфейсов, в Vmware на текущий момент — 32)
- Все физические интерфейсы в агрегированном канале должны иметь одинаковые настройки скорости и режима full-duplex. (при этом, LACP не поддерживает half-duplex mode).
- Все физические интерфейсы в агрегированном канале должны иметь одинаковые настройки протокола агрегирования (LACP, статический и др.).
- VMware поддерживает только один канал EtherChannel на vSwitch или vNetwork Distributed Switch (vDS)
Режим работы EtherChannel
Теперь давайте рассмотрим нюансы работы протокола LACP на примере оборудования Cisco (имеющие отношение к Vmware vSphere). Итак, оборудование Cisco, поддерживающее EtherChannel может настроить этот самый EtherChannel в нескольких режимах. За это отвечает команда channel-group (подробней — в ссылках в документе IEEE 802.3ad Link Bundling). Из всех возможных режимах в Cisco, Vmware поддерживает только 3 (до версии 5.5 — только 1). Рассмотрим режимы EtherChannel :
channel-group номер_группы mode active
Данный режим включает Link Aggregation Control Protocol (LACP) на интерфейсе постоянно . То есть Cisco в любом случае является источником LACP PDU пакетов. Скажем так — является активным инициатором.
channel-group номер_группы mode passive
LACP включается только когда обнаружено поступление LACP пакетов от другой стороны. Скажем так — является пассивным инициатором.
channel-group номер_группы mode on
Данный режим включает EtherChannel без использования каких-либо протоколов согласования . Это так называемый статический EtherChannel или статический NIC Teaming или статическая агрегация. Назвать данный режим LACP — нельзя. Т.к. для его работы не используется функционал протокола LACP. Т.е. не происходит автоматического согласование канала на основе обмена LACP пакетами.
channel-group номер_группы mode
Это другие возможные режимы работы, но они нам не интересны, т.к. используют для согласования проприетарный протокол PAgP и vSphere не поддерживаются.
Работа протокола LACP будет возможна, при следующих конфигурациях сторон:
| Режим работы LACP | passive | active |
| passive | — | OK |
| active | OK | OK |
То есть, не работающая конфигурация, когда обе стороны настроены в LACP passive режиме. Статическая агрегация IEEE 802.3ad возможна только когда обе стороны настроены в статическом режиме.
Балансировка нагрузки EtherChannel
Кроме собственно настроек агрегации каналов, необходимо определиться с алгоритмом балансировки нагрузки, который должен иметь одинаковые параметры на обоих сторонах линка. Балансировка может производится по различным параметрам (а точнее по различным полям сетевого пакета/кадра). Большинство производителей сетевого оборудования могут поддерживать следующие параметры: MAC-адреса, IP-адреса или номера портов TCP/UDP, а также режим источника, режим назначения или оба режима. Vmware, дополнительно поддерживает балансировку по VLAN, Port ID, а так же любые комбинации всех описанных способов. Описание алгоритмов распределения нагрузки выходит далеко за рамки данной статьи. Для понимания работы, рекомендую почи тать Балансировка загрузки канала EtherChannel и избыточность на коммутаторах Catalyst в ссылках. Можно к ратко отметить, что выбирать алгоритм балансировки нагрузки необходимо основываясь на топологии Вашей сети и логике обмена данными между клиентами, использующими агрегированный канал. Вот хороший пример с xgu.ru.
Например, на схеме, все устройства находятся в одном VLAN. Шлюз по умолчанию маршрутизатор R1. Если коммутатор sw2 использует метод балансировки по MAC-адресу отправителя, то балансировка выполняться не будет, так как у всех фреймов MAC-адрес отправителя будет адрес маршрутизатора R1. Аналогично, если коммутатор sw1 использует метод балансировки по MAC-адресу получателя, то балансировка выполняться не будет, так как у всех фреймов, которые будут проходить через агрегированный канал, MAC-адрес получателя будет адрес маршрутизатора R1.
Агрегация каналов ( NIC Teaming ) в VMware
Начнем с истории, а точнее, с версий vmware — до 5.5. Официально, до версии 5.5 в vSphere отсутствовала поддержка агрегирования каналов по протоколу LACP. Можете сравнить документы what’s new для версии 5.1 и 5.5. Хотя, в документации vSphere Networking Guide ESXi 5.1 уже есть упоминание о включении LACP на uplink интерфейсе. Будем считать, что полноценна поддержка появилась в 5.5.
NIC Teaming в Vmware vsphere до 5.5 (5.1.x, 4.x)
Примеров данных конфигураций в интернете полно. Пожалуй, лучшая статья, которая в достаточной степени описывает технологию и настройку NIC Teaming на Vmware (для версий VMware ESX 3.0.x,VMware ESX(i) 3.5.x, VMware ESX(i) 4.0.x, VMware ESX(i) 4.1.x, VMware ESXi 5.0.x и VMware ESXi 5.1.x) размещена на сайте Михаила Михеева — LACP, 802.3ad, load based IP hash и все такое (см.ссылки). Копипастить одно и то же смысла не вижу, поэтому — читайте ). Если все же есть непреодолимое желание использовать LACP с vSphere младше 5.5, вам потребуется установить виртуальный коммутатор Cisco Nexus 1000V (или IBM 5000v).
NIC Teaming по протоколу LACP в Vmware vsphere 5.5.x
VMware ESXi 5.5.x, как и прошлые версии поддерживает работу в режиме статического тиминга. Настройка его ни чем не отличается от той, которая написана в статье LACP, 802.3ad, load based IP hash и все такое. Далее, нас интересует настройка NIC Teaming с использованием согласования по протокол LACP на Vmware. В чем же польза LACP по сравнению с static aggregation:
-
Возможность использовать Hot-Standby Ports. Если добавить физических портов больше чем поддерживает оборудование (по крайне мере в cisco), то есть возможность использовать лишние порты в качестве портов hot-standby mode. Если произойдет отказ активного порта, порт hot-standby автоматически заменит его. Этот пункт мало применим к ESX, но тем не менее.
Проверка корректности конфигурации. Агрегация каналов
Failover (обнаружение отказа). Если у вас имеется dumb-устройство между двумя концами EtherChannel, например media converter, и один из линков, идущих через него отказывает, LACP это понимает и перестает слать трафик в отказавший линк. Static EtherChannel не мониторит состояние линков. Это не типичная ситуация для большинства систем vSphere, которые мне встречались, но в ряде случаев это может оказаться полезным.
Архитектурно, LACP’ом в vSphere управляет модуль ядра, который взаимодействует с демоном lacp _ uw. Ключевое отличие настройки статической агрегации от LACP на vSphere Distributed Switch заключается в следующем: При использовании NIC teaming в статической конфигурации на vSphere Distributed Switch мы создавали т.н. Uplink порты, которым сопоставляли физические vmnic интерфейсы хостов. А уже Uplink интерфейс использовали в качестве исходящего интерфейса взаимодействия с внешним миром. А виртуальные машины, работая на каком-либо из хостов выбирали из ассоциированного с Uplink физического интерфейса — нужный. При этом, группировка и балансировка происходила на уровне созданных Uplink интерфейсов в настройках распределенных порт-групп в разделе “Teaming and failover”. При настройке Link Aggregation Control Protocol мы создаем т.н. LAG (Link Aggrigation Group) — некая сущность, аналогичная Port Channel в Cisco — логический интерфейс, который объединяет физические интерфейсы и на уровне которой применяются настройки LACP (active-passive) и Load Balancing, к которой ассоциируются физические интерфейсы одного хоста. А Уже к этому самому LAG присоединяются/ассоциируются физические vmnic интерфейсы. И этот же LAG используется в качестве исходящего интерфейса. «На пальцах» тяжело понять данный абзац. Необходима практика )
Типовой пример настройки NIC Teaming по протоколу LACP
Давайте на практике посмотрим как это выглядит. Предположим, что у нас уже создан некий Distributed Switch 5.5.0. Со свичом ассоциированы необходимые хосты. Создана некая портгруппа виртуальных машин в конфигурациях по умолчанию. Например:

Далее, перед настройкой LACP давайте рассмотрим некоторые аспекты настройки:
- Из физических NIC какого-то одного хоста возможно подключение одного физического NIC только к одному порту LAG, при этом, один порт LAG может включать в себя множество физических интерфейсов с различных хостов ассоциированных с данным распределенным коммутатором.
- Физические NIC хоста, включенные в LAG должны быть подключены к интерфейсам физического свича, которые (интерфейсы свича) должны быть настроены на аналогичный агрегированный канал (port channel).
- При настройке LACP необходимо учитывать ограничения, актуальные для текущей версии:
LACP не совместим с software iSCSI multipathing.
Итак, последовательность настройки LACP на Vmware следующая:
-
Создать LAG (Link Aggrigation Group)
Назначить LAG как Standby интерфейс в настройке Teaming and Failover Order в Distributed Port Group.
Это рекомендованная мануалом последовательность. На самом деле, можно обойтись без шага №2. Просто задав ассоциацию свободных физических NIC к созданному LAG. Но тем не менее, давайте рассмотрим каждый шаг:
- Создание LAG (Link Aggrigation Group) в vSphere Web Client
- В vSphere Web Client переходим на наш созданный distributed switch.
- Выбираем Manage -> Settings.
- В разделе LACP, выбираем New Link Aggregation Group (зеленый крестик).
- Задаем параметры LAG:
- Имя — используется для идентификации группы портов
- Количество портов (потом можно поменять)
- Выбрать режим согласования — active/passive в зависимости от параметров физического свича. Если свич работает в active, установите LAG в passive и наоборот.
- Выбрать режим балансировки — должен соответствовать режиму балансировки на физическом свиче.
- По желанию, можно указать настройки VLAN и NetFlow.
- Жмем Ок.
- Дожидаемся сообщения об успешном завершении «Update network configuration». После завершения будет создан LAG и его конфигурация будет распространена по всем хостам, принадлежащим текущему distributed switch. Новый созданный порт LAG будет в режиме Unused в настройке Teaming and Failover Order в Distributed Port Group. Далее переходим к следующему шагу.
В vSphere Web Client переходим на наш созданный distributed switch.

Ассоциировать физические интерфейсы с LAG
- . Убеждаемся, что все порты, которые планируется ассоциировать с LAG сконфигурированы и скоммутированы на физическом коммутаторе.
- . Убеждаемся, что все физические NIC имеют одинаковые настройки скорости и
В поле Failover order с помощью стрелок перемещаем наш созданный LAG в раздел Active, все остальные аплинки (если такие имеются) перемещаем в

Резюме
В текущей статье я постарался описать особенности работы с агрегированными каналами. Постарался описать статическую конфигурацию NIC Teaming и конфигурацию по протоколу LACP. Упор сделан не столько на практику, сколько на теорию и предоставление источников дальнейшего чтения для углубления изучения ) ИМХО, обзор получился несколько поверхностным, по возможности буду наполнять статью.
- Создание LAG (Link Aggrigation Group) в vSphere Web Client