Главная

Friday, 22 July 2022

Про NIC Teaming.


Всем привет! 

А вы слышали про Nic Teaming?

Сейчас когда бизнес уже очень сильно зависит от доступности его сервисов, таких как корпоративная почта, файловый сервер, сайт с веб приложениями, и многое другое очень сильно встает вопрос по организации отказоустойчивости на разных уровнях. Одним из таких уровней является сетевой. В данной статье нам нужно рассмотреть про организацию отказоустойчивой сети в вашем Windows Server 2019. Сейчас уже себе сложно представить сервер, у которого было бы сетевых интерфейсов меньше двух, чаще всего их четыре и более. 

Раз они есть, то было бы здорово их объединить и использовать, как одно целое решая тем самым:

  • Отказоустойчивость сетевой доступности
  • Увеличение пропускной способности.

Microsoft начиная с Windows Server 2012 услышала администраторов и внедрила в свою операционную систему функционал Nic Teaming. Объединение сетевых карт (Nic Teaming Network Interface Card Teaming (Load Balancing/Fail Over (LBFO))) - это технология группировки физических или виртуальных сетевых карт в один или несколько программных сетевых адаптеров, решающих проблемы в случае сбоя оборудования.

На текущий момент вы можете спокойно объединить в Windows Server 2019 от двух до 32 сетевых карт в один или несколько пулов.

Ранее Nic Teaming мог быть реализован только посредством установки специальных драйверов на ваши сетевые карты. Эти драйвера позволяли вам через свойства сетевых адаптеров собирать пулы. Бывало так, что у вас на физическом сервере могли быть сетевые карты разных производителей, и в таком сценарии вы могли иметь проблемы с объединением сетевых карт. Благодаря встроенной возможности Windows Server 2019 эта проблема минимизируется.

Хочу отметить, что данная технология не нова и давно уже реализована и используется на сетевом оборудовании, там она называется LACP, или на системах хранения, например у Synology, там она называется Bonding, в Linux то же Bonding.

Требования к Nic Teaming в Windows Server 2019.

Как сказано в документации Microsoft драйвер сетевой карты должен иметь цифровую подпись Windows Hardware Qualification and Logo (WHQL). Если WHQL имеется, то вы может объединять адаптеры разных производителей https://docs.microsoft.com/ru-ru/windows-server/networking/technologies/nic-teaming/nic-teaming

Нужно учитывать, что для работы Nic Teaming сетевые карточки должны иметь одинаковую пропускную способность, если вы используете объединение от других производителей, то не используйте их совместно с инструментом Microsoft.

Так же вы не сможете объединить в группу карточки которые работают не по технологии Ethernet, такие как WWAN, Wi-FiInfiniband, сетевые адаптеры отладки ядра (KDNIC). Так же есть ряд технологий, которые не поддерживаются технологией объединения сетевых карт:

  • TCP Chimney. TCP Chimney не поддерживается, так как TCP Chimney разгружает весь сетевой стек непосредственно к сетевому адаптеру.
  • Для SR-IOV данные доставляются непосредственно на сетевой Адаптер без передачи через стек сети в виртуализации. Таким образом он не поддерживается для сетевых карт, для проверки или перенаправлять данные на другой маршрут в объединении.
  • При настройке Qos, когда вы активируете политику качества обслуживания, тут могут быть проблемы из-за ограничения полосы пропускания.

Существует два метода по настройке ваших сетевых карт в общую сетевую группу:

  • Первый метод, это локальный непосредственно на вашем сервере
  • Второй метод, это удаленный подразумевает, что вы используете инструменты позволяющие вам выполнить настройку на удаленной системе.

Инструменты для реализации:

  • Использование оснастки "Диспетчер серверов"
  • Командлеты PowerShell.

Как реализация NIC Teaming делается с помощью "Диспетчер серверов" в картинках красиво показано здесь и здесь, поэтому ниже будет только PowerShell.


Итак, мы используем 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

Если выполнить эту команду в ВМ HyperV, появится ошибка:

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

На этом настройка закончена.


Однако следует также знать, то LBFO NIC Teaming устарел (https://aka.ms/lbfodeprecation) и с Windows Server 2016 предлагается использовать Switch Embedded Teaming (SET).

Также помним что в 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 10 и 11. Главное, чтобы производитель вашей сетевой карты поддерживал для нее режим Link aggregation / NIC teaming/ LBFO.

Удачи.

No comments:

Post a Comment

А что вы думаете по этому поводу?