Технология NIC Teaming (или Load Balancing/Failover – LBFO, или NIC bonding) позволяет объединить несколько физических сетевых адаптеров (NIC) в одну логическую сетевую карту. В этой статье мы рассмотрим, как настроить NIC Teaming в Windows Server 2019/2016/2012R2 и в десктопых версиях Windows 10 и 11.
Содержание:
- Настройка NIC Teaming в Windows Server 2019
- Используем PowerShell для настройки NIC Teaming в Windows Server
- Создаем группу сетевых адаптеров NIC Teaming в Windows 10 и 11
Для чего может понадобится объединять сетевые адаптеры в группу NIC Teaming?
- Увеличение пропускной способности. Например, объединив две сетевые 1 Гб сетевые карты в одну группу NIC Teaming, вы получите общую полосу пропускания на логическом адаптере 2 Гбит/с;
- Управление балансировкой нагрузки на сетевые карты – можно управлять распределением трафика между NIC сервера;
- Отказоустойчивость – при выходе из строя любой из сетевых карт, добавленных в группу NIC teaming, остальные подхватывают ее функции, и связь с сервером не прерывается. Для критически важных серверов этот механизм может защитить от простоя сервиса во время выхода из строя сетевого коммутатора или Ethernet порта на нем, сетевого кабеля (которым ваш хост подключен к коммутатору). Для реализации такой возможности, достаточно подключить сетевые карты в разные физические коммутаторы.
В Windows Server 2012R2/2016/2019/2022 технология NIC Teaming не совместима с Single-root I/O virtualization (SR-IOV), TCP Chimney и Remote Direct Memory Access (RDMA).
Настройка 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) и выбрать сетевые адаптеры, которые будут входить в эту группу.
В Windows Server 2019 в одну NIC Teaming групп можно объединить до 32 физических сетевых адаптеров, главное, чтобы они работали на одной скорости.
Ниже можно настроить специальные параметры группы. От данных параметров зависит правила и эффективность 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.
Вы можете использовать группу 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. Выведите список сетевых адаптеров на сервере:
Get-NetAdapter
Создайте новую группу с 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 на сервере можно вывести с помощью команды:
Get-NetLbfoTeam Name : Team0 Members : {Ethernet3, Ethernet1} TeamNics : Team0 TeamingMode : SwitchIndependent LoadBalancingAlgorithm : Dynamic Status : Up
Можно настроить 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
Если выполнить эту команду в ВМ, появится ошибка
Set-NetLbfoTeam : 'SwitchIndependent' is the only TeamingMode value supported in a Virtual Machine
Чтобы через 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 и выведите список сетевых адаптеров:
Get-NetAdapter
Соберем группу NIC Team из адаптеров Ethernet0 и Ethernet1.
New-NetSwitchTeam -Name "MyNICTeam" -TeamMembers "Ethernet0","Ethernet1"
Проверьте, что в системе появился новый интерфейс NIC Teaming.
Get-NetSwitchTeam
Не забудьте задать для него сетевые настройки. Теперь у вас появился новый интерфейс с пропускной способностью 2 Гбит/с.
Для удаления созданной группы NIC Team, также нужно использовать PowerShell:
Remove-NetSwitchTeam -Name "MyNICTeam"
Время на прочтение6 мин
Количество просмотров132K
С выходом 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).
Вычисление хэша на основе портов позволяет распределять трафик более равномерно. Однако для трафика отличного от TCP или UDP применяется хэш на основе IP-адреса, для не IP-трафика – хэш на основе MAC-адресов.
Таблица ниже описывает логику распределения входящего/исходящего трафика в зависимости от режима работы группы и выбранного алгоритма распределения трафика. Отталкиваясь от этой таблицы, вы сможете выбрать наиболее подходящий для вашей конфигурации вариант.
Address Hash | Hyper-V Port | |
---|---|---|
Switch Independent |
|
|
Static, LACP |
|
|
Необходимо отметить еще один параметр. По умолчанию все адаптеры группы являются активными и задействуются для передачи трафика. Однако вы можете один из адаптеров указать в качестве Standby. Это адаптер будет использоваться только в качестве «горячей» замены, если один из активных адаптеров выходит из строя.
NIC Teaming в гостевой ОС
По разным причинам вы можете не захотеть включать тиминг на хостовой машине. Или же установленные адаптеры не могут быть объединены в тиминг штатными средствами ОС. Последнее справедливо для адаптеров с поддержкой SR-IOV, RDMA или TCP Chimney. Тем не менее, если на хосте более одного даже такого физического сетевого адаптера, можно использовать NIC Teaming внутри гостевой ОС. Представим, что на хосте две сетевые карточки. Если в некоторой ВМ два виртуальных сетевых адаптера, эти адаптеры через два виртуальных свича типа external подключены к, соответственно, двум физическим карточкам, и внутри ВМ установлена ОС Windows Server 2012, то вы можете сконфигурировать NIC Teaming внутри гостевой ОС. И такая ВМ сможет воспользоваться всеми преимуществами тиминга, и отказоустойчивостью, и повышенной пропускной способностью. Но для того, чтобы Hyper-V понимал, что при выходе из строя одного физического адаптера, трафик для этой ВМ нужно перебросить на другой физический адаптер, нужно установить чекбокс в свойствах каждого виртуального NIC, входящего в тиминг.
В PowerShell аналогичная настройка задается следующим образом:
Set-VMNetworkAdapter -VMName srv4 -AllowTeaming On
Добавлю, что в гостевой ОС можно объединить в группу только два адаптера, и для группы возможен только 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. Например, создание группы может выглядеть так:
New-NetLbfoTeam -Name teamSRV1 -TeamMembers LAN1,LAN2 -TeamingMode SwitchIndependent -LoadBalancingAlgorithm TransportPorts
Здесь TransportPorts означает балансировку с использованием 4-tuple hash.
Замечу, что вновь созданный сетевой интерфейс по умолчанию использует динамическую IP-адресацию. Если в скрипте нужно задать фиксированные настройки IP и DNS, то сделать это можно, например, так:
New-NetIPAddress -InterfaceAlias teamSRV1 -IPAddress 192.168.1.163 -PrefixLength 24 -DefaultGateway 192.168.1.1
Set-DnsClientServerAddress -InterfaceAlias teamSRV1 -ServerAddresses 192.168.1.200
Таким образом, встроенными средствами Windows Server 2012 вы можете теперь группировать сетевые адаптеры хостовой или виртуальной машины, обеспечивая отказоустойчивость сетевого трафика и агрегирование пропускной полосы адаптеров.
Увидеть технологию в действии, а также получить дополнительную информацию по этой и другим сетевым возможностям Windows Server 2012 вы можете, просмотрев бесплатные курсы на портале Microsoft Virtual Academy:
- Новые возможности Windows Server 2012. Часть 1. Виртуализация, сети, хранилища
- Windows Server 2012: Сетевая инфраструктура
Надеюсь, материал был полезен.
Спасибо!
Table of Contents
Hi, My name is Muhammad Faizan and i have spent last 15 years working as System Administrator mainly with Microsoft Technologies. I am MCSE, MCTP, MCITP, certified professional. I love scripting and Powershell is the scripting language i am in love with.
Прочитано: 6 356
Задача: Самостоятельно проработать, как поднять/организовать Nic Teaming средствами Windows Server 2016 в GUI составляющей. Ранее я уже делал, но использовал Windows Server 2008 R2, а тут хочу посмотреть также это все легко или есть определенные нюансы.
Итак, под Virtualbox развернута виртуальная система с осью на борту Windows Server 2016 Standard (Microsoft Windows [Version 10.0.14393]) с двумя сетевыми адаптерами.
Авторизуюсь в системе с правами, либо локального администратора, либо Администратора домена.
Win + R — cmd.exe с правами Администратора (Обязательно)
C:\Users\Администратор>netsh interface teredo set state disabled
C:\Users\Администратор>netsh interface isatap set state disabled
C:\Users\Администратор>netsh interface 6to4 set state disabled
Win + R — control – Просмотр: Категория — Мелкие значки — Центр управления сетями и общим доступом и вижу, что система увидела два сетевых адаптера:
Чтобы сделать объединение сетевых интерфейсов в один для увеличения пропускной способности:
Win + R — control – Просмотр: Категория — Мелкие значки — Администрирование — Диспетчер серверов (ServerManager.exe) — Локальный сервер — по умолчанию настройка «Объединение сетевых карт» в состоянии «Отключено», щелкаю левой кнопкой мыши по настройке и перехожу в диалоговое окно «Объединение сетевых карт» (Приложение: LbfoAdmin.exe
), в элементе «Группы» – «Задачи» – выбираю «Создать группу»
именую группу, к примеру:
Имя группы: nic
и отмечаю галочками сетевые интерфейсы которые буду объединять, также нужно через «Дополнительные свойства» указать режим работы объединенных интерфейсов:
- Режим поддержки групп: LACP или «Динамически» (но на коммутаторе куда подключен также нужно будет сделать объединение интерфейсов и назначить роль lacp)
- Режим балансировки нагрузки: → может принимать: Хэш адреса, Порт Hyper-V, Динамический, т. к. я не использую Hyper-V то и не указываю, а выбираю «Хэш адреса» это Вычисление хэша на основе портов позволяет распределять трафик более равномерно. Однако для трафика отличного от TCP или UDP применяется хэш на основе IP-адреса, для не IP-трафика – хэш на основе MAC-адресов.
- Резервный адаптер: выставлено и затемнено мастером “Нет (Все адаптеры активны)”. Если не указывать LACP, то можно сделать если линк на одном адаптере пропадает на его место встает другой.
Основной групповой интерфейс: nic (виртуальная локальная сеть по умолчанию)
и нажимаю кнопку «ОК»
Итого объединение интерфейсов в системе сформировано:
Если переключиться в оснастку: «Центр управления сетями и общим доступом», то будет видно, что сформировался/появился новый интерфейс, где уже ему Вы задаете либо статический IP-адрес (Маска, Шлюз), либо настройками коммутатора/маршрутизатора.
В случае если линк обрывается на одном сетевом интерфейсе, доступ к системе Вы не теряете.
Если обратить внимание на свойства первого и второго сетевого адаптера, то у них выставлена всего лишь одна настройка «Протокол мультиплексора сетевого адаптера», а у нового с именем группы nic:
- Клиент для сетей Microsoft
- Общий доступ к файлам и принтерам
- Планировщик пакетов QoS
- Microsoft Load Balancing/Failower Provider
- IP версии 4 (TCP/IPv4)
- IP версии 6 (TCP/IPv6) — снимаю галочку, так как не использую во всей сети.
- Отвечающее устройство обнаружение топологии (делает компьютер видимым в сети)
Ответчик обнаружения топологии канального уровня (используется для обнаружения других компьютеров, устройств и компонентов в сети).
Смотрю текущие настройки сети от DHCP–сервиса в локальной сети:
Win + R — cmd.exe с правами Администратора (Обязательно)
C:\Users\Администратор>ipconfig
Настройка протокола IP для Windows
Адаптер Ethernet nic:
DNS-суффикс подключения . . . . . :
IPv4-адрес. . . . . . . . . . . . : 172.40.40.6
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз. . . . . . . . . : 172.40.40.1
Как видно, сетевой адрес получает лишь общий интерфейс, а не вспомогательные.
На заметку: Если Ваши наблюдения показываю, что объединение интерфейсов требуют изменения, то все также через оснастку «Объединения сетевых карт» можно поменять настройки. Вот только желательно это делать имея к системе еще один вид подключения, к примеру консоль Hyper-V, vSphere Client, iDRAC, IPMI и т. д. Чтобы если что не остаться у разбитого корыта и подстраховаться.
На заметку: Если физическое железо может на уровне железа объединять интерфейсы или использует специализированное программное обеспечение, то лучше делать через него, чем средствами Windows, а если не хочется от него зависить, то средствами операционной системы и не важно Windows это или Linux.
Вот на этом я прощаюсь, как я мог убедиться нет ничего сложно в настройке объединения сетевых карт в системе Windows Server 2016. Если у меня буду какие-либо дополнения и наблюдения, то я постараюсь отразить их в этой заметке. А пока у меня всё, с уважением автор блога Олло Александр aka ekzorchik.
Intel Ethernet Converged Network Adapter X710, with two 10Gbps ports. This allows to team the two ports together for link aggregation.
- Install Optional Features
Server Manager
in Windows 11
- Open and run Windows Powershell as administrator, then run:
1 |
PS C:\> New-NetSwitchTeam -Name "NIC-Team" -TeamMembers "X710-1","X710-2" |
A new network interface created, with combined speed 20Gbps.
To remove network team, run:
1 |
PS C:\> Remove-NetSwitchTeam -Name "NIC-Team" |