Технология 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. Выведите список сетевых адаптеров на сервере:
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"
А на не серверных версиях ОС Windows такой фитчи нет?
Есть, конечно, варианты. Но для клиентских ОС подобная технология реализуется отдельным софтом от производителя сетевого контроллера (встречал такую возможность на сетевых карточках Intel и Marvell). Данный софт обычно идет в комплекте с драйверами. Поищите на сайте производителя вашей сетевой карты на предмет поддержки технологий Link aggregation / NIC teaming.
Пора поменять ответ 🙂
Да, это возможно на Windows 10/11
спустя 10 лет 😀
Лучше поздно, чем никогда 😀
к моей материнке с диском драйверов идет утилита TeamingGenie .. запускаю и там показано 2карты в одну но на этом и все список карт не видет чтобы подключить их на ютуб видел как активировать надо перед тем чтобы плявилось но вот у меня нету кнопки активации
Судя по описанию на официальном сайте утилита TeamingGenie реализует похожий функционал, но работать она будет только на материнских платах MSI с двумя сетевыми карточками Realtek NIC.
ну у меня MSI и 2 карты реалтека
Попробуйте драйвера на сеетвые карты обновить до последней версии — может с этим проблема…
И еще — обе сетевые карточки подключены к коммутатору? может просто софтина проверяет наличие линка на карточке?
А как будет работать, если режим балансировки — «Динамический»?
Windows 2012R2 включает 3 выбора режима балансировки:
«Хэш адреса», «порт Hyper-V» и «Динамический». Как работает режим балансировки «Динамический»?
При динамической балансировке исходящий трафик равномерно распределяется между всеми сетевыми адаптерами группы.
Слово «исходящий» надо бы выделить жирным шрифтом. Это важно.
Доброго времени суток.
Вопрос, если я со стороны сервера настроил LACP и балансировку: динамическую.
На стороне коммутатора (dlink DGS1100-24) я так же включаю режим LACP, но вот настройки какой либо балансировки на моём коммутаторе нет.
То балансировка будет такая, как вы писали выше:
Да, в режиме LACP Dinamic исходящий трафик будет распределятся между активными адаптерами группы, а входящий трафик будет распределятся в соответствии с реализацией протокола LACP на коммутаторе.
При подключении через два коммутатора двух серверов по схеме(Teamer(srv1_NIC1->switch1,srv1_NIC2->switch2), teamer(srv2_NIC1->switch1,srv2_NIC2->switch2)) не пингуется СХД, т.е. тиминг с 2-я коммутаторами не работает!
Добрый день! Подскажи, пожалуйста, по тимингу. У меня шассии из 6 блэйдов будут объединяться в один кластер. К шасси по FC подключена СХД. Шасси подключено к стэку cisco3850. Соответственно на каждом блэйде две сетевые карты,которые соединяются с ядром (3850). Я объединил эти карты в тиминг LACP. В тиминг я уже добавил 3 виртуальные сети с моими вланами, соответственно в появились виртуальные сети.
Теперь поднимаю роль Hyper-V и мне надо указать сетевые карты, которые смотрят в локалку. Мне указать два физических адаптера или мой собранный тиминг?
Спасибо за ответ!
По логике, вам нужно использовать ваш общий Teaming адаптер для Hyper-V.
Благодарю
Столкнулся с проблемой к сожалению полноценного решения не могу найти, может у вас имеется.
1. Несколько серверов HPE подключенных к кластеру L3 Huawei S5700:
port link-type trunk
port trunk allowed vlan all
mode LACP
Со стороны серверов соответственно:LACP+Dinamic
Далее по верх 2012 поднят Hyper-V, и на вирт машинах, создано по несколько адаптеров каждому из которых присвоен свой VLan. Хост Hyper-V соответственно только в Management vlan, через Hyper-V network manager.
Сама проблема в том что хост и вирт машины периодически не доступны по RDP & MMC Хотя свою роль прекрасно выполняют, например VM WIndows server 2012 R2 + MS SQL, подключиться не могу, а сам SQL прекрасно работает.
Помогает подключение через консоль ILO или Hyper-V и прожатие C+A+D, на серверах выставлена максимальная производительность, отключено энергосбережение, т.е. стандартные варианты уже перебрал.
Нет идей куда можно копнуть?
Со стороны гостевой ОС можно посмотреть, доступны ли сетевые адаптеры при проблеме?
Добрый день!
Если использовать LAG на контролере домена win2012r2, не возникнут ли проблемы в самом домене из-за того что c одним ip-адресом сопоставлено два МАС-адреса LAG интерфеса?
Это может быть интересно только коммутатору. На приложения (в этом случае это ADDS) это не должно влиять.
Вроде у аггрегата (Team-а) MAC один, с точки зрения приложения.
По крайней мере ipconfig всегда показывает один MAC-адрес.
Аггрегат похоже берет себе просто MAC одного из адаптеров.
У нас другая проблема: после перезагрузок сервера MAC Team-а принимает значение MAC-а то одного, то другого адаптера. На все системные приложения влияния я не увидел, но у нас есть одно прикладное приложение, которое привязывается к MAC-у. MAC меняется, приложение останавливается и требует новую привязку.
Здравствуйте. А как вернуть все обратно, т.е. удалить сетевую группу и сделать две разные сети
Где-то там же, типа удалить Team.
Столкнулся с проблемой: есть приложение, чувствительное к MAC-адресу, т.е. к нему привязывается.
А на сервере 360G7 (после перезагрузки сервера) MAC Team-а может поменяться (использую два адаптера и lacp).
Видимо при сборе LACP Team-а иногда один адаптер становится «главным» иногда другой. На сервере G5 такого не заметил.
А в Windows LACP TEAM-а не нашел, можно ли задать типа приоритетов адаптеров для сбора TEAM-а., чтобы MAC TEAM-а всегда был один и тот же.
Выход пока такой (не очень красивый): TEAM-у жестко забил MAC адрес.
https://docs.microsoft.com/en-us/answers/questions/159390/nic-teaming-and-dhcp.html
В статью добавлен блок про использование NIC Teaming в десктопной Windows 10/11
В Hyper-V на Windows Server 2016 поддерживается SET (SWitch Embedded Teaming).
Внешний HyperV Virtual Switch можно подключить к любому интерфейсу в системе, даже к тому что участвует в teaming. Но ведь на него полагается сам NIC Teaming системы.
Разве это логчино?
Есть 2 сервера с сетевыми картами объединенными в группу. Можно ли их соединять напрямую, минуя коммутатор?
Не понял вашего вопроса. Хотите сервера напрямую кабелем подключить? Это не запрещено, но зачем?
Видимо для синхронизации серверов для задач типа отказоустойчивое хранилище без общего дискового массива (а-ля vsan), когда ранилищем выступают локальные диски серверов. соединяют например 2 или 4 линками. Насколько я помню, правда давно, надо смотреть требования софта, которы будет синхронизировать, к этим линкам.
Если объединить по две карты с каждой стороны то, как не парадоксально, удвоения скорости не получите. На входящий трафик действует «странное» ограничение — распределение трафика по 2-м (нескольким) объединенным сетевым картам идет только в случае обращений к этой связки с разных IP адресов. Чтобы там не было написано о скорости в Properties NIC Team. Суммарная, да, все верно. Но при условии … см. выше.
Когда читая пост дошел до «Address Hash — для каждого из адаптеров вычисляется специальный хэш (на основании MAC или IP-адресов отправителя и получателя) и привязывается определенному физическому адаптеру. Весь трафик от данного отправителя будет идти через этот NIC», то так и подумал. Тут как-то коряво написано, но судя по всему для связки «MAC+IP_отправителяMAC+IP_получателя» вычисляется хэш. Далее весь трафик с этим хэшем будет отправляться через один адаптер. Соответственно скорость передачи между этими хостами будет равна скорости одного адаптера. Печально. Получается, что реально скорость линка получится поднять только в кейсе когда хост активно общается по сети с несколькими хостами.
Много возился с Агрегацией гигабитных каналов и пришёл к выводу что для получения высоких скоростей между двумя хостами решение пока одно — 10Гб линки.
В Агрегате на вход всегда работает один! канал. Сервер отдаёт по двум каналам, В промежуточных агрегатах (между свитчами) трафик может разбиваться на 2 и 3 (из 4х) канала , но на получающий сервер прилетает по одному.
Правда в одном случае между двумя серверами Hyper-V 2016 (свитч CRS354-48G-4S+2Q+) наблюдал реальную балансировку 1.3-1.6 гигабита. Как и почему так и не понял
Ответ для SalaVila.
«для получения высоких скоростей между двумя хостами решение пока одно — 10Гб линки»
Ну это утверждение из разряда «лучше быть богатым и здоровым чем бедным и больным» 🙂 Конечно если есть возможность организовать 10G линк, то лучше так и сделать, а не страдать хернёй с агрегацией. На мой взгляд агрегация это именно способ _бесплатно_ получить увеличение скорости (если мы ведём речь именно о скорости, а не о резервировании конечно). Ведь большинство серверов имеет на борту больше одного сетевого порта, которые часто простаивают. Тогда почему бы не получить больше скорости за цену дополнительных патчкордов?
«В Агрегате на вход всегда работает один!»
Это не совсем верное утверждение. Ниже Вы его сами же и опровергаете. А всё дело в том, что для сложения скоростей нужно соблюсти ряд условий, а именно: поддержка SMB 3.1.1, поддержка коммутатором протокола 802.1ax, и главное — это работает только при передаче по протоколу SMB.
Почитайте мой комент чуть ниже от 13.07.2023.
Это возможно в SMB начиная с 3.1 (+NIC Teaming), только там оба конца должны полноценно его поддерживать.
В общем NIC Teaming реализуетя на высокодоступных серверах, например 4 канала по 1Гбит — итого 4Гбит, Но это вовсе не означает, что если клиент подцепился и начинает скачивать, то ему все 4Гбит отдадутся. Ему в простом случае отдастся 1Гбит. Для чего остальные? а для того, чтобы такой же второй клиент смог прицепится и также получить свой 1Гбит не в ущерб первому и т.д. для третьего, четвертого. В этом случае LACP лучше работает, чем hash (что он там насчитает и куда пустит вопрос, а то и на тот же канал). К тому же NIC Teaming решает задачу, если один канал отвалился (по каким-либо причинам), то быстренько всё запустить по другим каналам, и если каналм восстановился — то задействовать его снова.
Спасибо за комментарий! У меня конкретный кейс — получить скорость между двумя конкретными хостами больше 1G, объединив несколько 1G линков в один (балансировка и отказоустойчивость не интересует). Я правильно понимаю, что такое всё же можно сделать при условии, что ОС будут с поддержкой SMB 3.1 (а это Windows Server 2016 и новее), оба хоста будут воткнуты в один свитч с поддержкой LACP (802.3ad) и Teaming Mode буде сконфигурирован в режиме LACP?
Хотите более 1G ? Забейте на тиминги и прочую лабуду.
Вам поможет оптика. Сразу 8-10G/ Ну а в реале 5-6G гарантированы.
Затраты минимальны. Результат — обалдеете 😀
Оптика — слишком просто 🙂 Задач конечно же получить результат без денежных вложений. Просто серверы с более чем одним сетевым адаптером уже есть, так же как и управляемые свичи с поддержкой LACP тоже есть. А оптики нет и покупать ради одной этой задачи смысле нет. Хочется из имеющегося выждать максимум (заодно и скил свой поднять). Ну а железку новую купить каждый может 🙂
Всё настроил и могу теперь утверждать на основании свершившегося факта. На Windows Server 2019 в режиме LACP/Dynamic (при условии поддержки коммутатором 802.1ax) при копировании с одного хоста на другой по SMB скорость линков складывается!
Собственно для сложения скорости линков поднимать Teeming даже и не нужно, достаточно просто подключить имеющиеся сетевые адаптеры и далее ничего настраивать не нужно, SMB всё сам поймёт (это свойство SMB 3.1.1). Но тогда хост будет иметь на каждый линк свой IP, что может быть не удобно в некоторых случаях.
Так же пользуясь случаем скажу, что коммутаторы MikroTik CSS326-24G-2S+ (на SwOS которые) поддерживают 802.1ax хотя нигде об этом явно не заявлено (заявлен только 802.3ad).
А можете написать про Switch Embedded Teaming?
+1
В очередной раз хочется сказать спасибо за посты!
Вопрос. Я правильно понимаю, что между двумя конкретными хостами скорость передачи будет равна скорости одного адаптера не зависимо от того сколько адаптеров объединено?
На это наводит фраза «Address Hash — для каждого из адаптеров вычисляется специальный хэш (на основании MAC или IP-адресов отправителя и получателя) и привязывается определенному физическому адаптеру. Весь трафик от данного отправителя будет идти через этот NIC».
Если я правильно понял, то на основе MAC+IP отправителя и получателя вычисляется хэш и далее все пакеты с таким хэшем отправляются через один адаптер.
Один из комментариев к посту это подтверждает.
Да. Все верно. «NIC Teaming» это продолжение «Net Balancing».
Теоретически возможно «умножение скорости», если вы «уговорите» два хоста с мульти-интерфейсами обзщаться межжду собой по всем возможным «проводам» (используя все адаптеры)
Но как это реализовать (и возможно ли вообще), я не представляю.
В рамках существующих ограничениях технологии NCP/IP
TCP/IP …
Добрый день! Такой вопрос: при изменении настроек в одном из адаптеров, объединенных в teaming , моргнет ли сеть? планирую отключать rx/tx паузы в настройках адаптеров на сервере с VM, диски которых подключены по iscsi и находятся на другом сервере. Опасения в том, что при изменении настроек VM упадут, если сеть моргнёт.
Здравствуйте. Не увидел в статье ни слова — требуется ли чтоб коммутатор был управляемый? Или всё заработает и на обычных неуправляемых коммутаторах?
Так от режима же зависит. Switch Independent не требует специальных коммутаторов, остальные два режима требуют поддержки 802.3ad или 802.1ax. Думаю, что неуправляемые коммутаторы с поддержкой этих протоколов просто не существуют.
Читайте внимательно раздел «Режим поддержки групп (Teaming Mode)».
благодарю)