Windows 10 で Windows Serverのチーミング機能(LBFO)を使う
当方の PC は 10GbE の HP NC523SFP を使用していますが、WoL に対応していない事と、偶にリンクダウンして帰ってこなくなることがあるので、オンボードの Intel I211 と異種混合チーミングを行い、Intel I211 側をスタンバイアダプタとして利用することで Wol の待ち受けと切断時のバックアップとして活用を行います。
動作原理や歴史的経緯はネタ元を読んでください。
ファイルの抽出
Section titled “ファイルの抽出”Windows Server 2019から下記のファイルを抽出。
一部ネタ元から改変しています。INFフォルダの追加Microsoft-Windows-ServerCore-Drivers-net-Package~31bf3856ad364e35~amd64~~10.0.17763.1.catの追加。
Windows ├───INF │ mslbfoprovider.inf │ └───System32 ├───CatRoot │ └───{F750E6C3-38EE-11D1-85E5-00C04FC295EE} │ Microsoft-Windows-Server-Features-Package017~31bf3856ad364e35~amd64~~10.0.17763.1.cat │ Microsoft-Windows-ServerCore-Drivers-net-Package~31bf3856ad364e35~amd64~~10.0.17763.1.cat │ ├───drivers │ │ MsLbfoProvider.sys │ │ │ └───en-US又はja-JP │ MsLbfoProvider.sys.mui │ └───DriverStore ├───en-US │ MsLbfoProvider.inf_loc │ └───FileRepository └───mslbfoprovider.inf_amd64_9afb7ecb68781bac mslbfoprovider.infレジストリの準備
Section titled “レジストリの準備”Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MsLbfoProvider]"Description"="@%SystemRoot%\\System32\\drivers\\MsLbfoProvider.sys,-501""DisplayName"="@%SystemRoot%\\System32\\drivers\\MsLbfoProvider.sys,-501""ErrorControl"=dword:00000001"Group"="NDIS""ImagePath"=hex(2):53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,\ 72,00,69,00,76,00,65,00,72,00,73,00,5c,00,4d,00,73,00,4c,00,62,00,66,00,6f,\ 00,50,00,72,00,6f,00,76,00,69,00,64,00,65,00,72,00,2e,00,73,00,79,00,73,00,\ 00,00"Start"=dword:00000003"Type"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MsLbfoProvider\Parameters]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4d36e974-e325-11ce-bfc1-08002be10318}\{FC66A602-B769-4666-A540-CA3DF0E7DF2C}]"InstallTimeStamp"=hex:dd,07,0c,00,04,00,05,00,00,00,00,00,00,00,00,00"Characteristics"=dword:00040000"ComponentId"="ms_lbfo""Description"="@%SystemRoot%\\System32\\drivers\\MsLbfoProvider.sys,-501""InfPath"="MsLbfoProvider.inf""InfSection"="Install""LocDescription"="@%SystemRoot%\\System32\\drivers\\MsLbfoProvider.sys,-501"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4d36e974-e325-11ce-bfc1-08002be10318}\{FC66A602-B769-4666-A540-CA3DF0E7DF2C}\Ndi]"TimeStamp"=hex:dd,07,0c,00,04,00,05,00,00,00,00,00,00,00,00,00"HelpText"="@%SystemRoot%\\System32\\drivers\\MsLbfoProvider.sys,-500""Service"="MsLbfoProvider"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4d36e974-e325-11ce-bfc1-08002be10318}\{FC66A602-B769-4666-A540-CA3DF0E7DF2C}\Ndi\Interfaces]"LowerRange"="nolower""UpperRange"="noupper""FilterMediaTypes"="ms_implatform"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\System\MsLbfoProvider]"ProviderGuid"=hex(2):7b,00,33,00,38,00,37,00,65,00,64,00,34,00,36,00,33,00,2d,\ 00,38,00,62,00,31,00,62,00,2d,00,34,00,32,00,63,00,39,00,2d,00,39,00,65,00,\ 66,00,30,00,2d,00,38,00,30,00,33,00,66,00,64,00,66,00,64,00,35,00,64,00,39,\ 00,34,00,65,00,7d,00,00,00インストール作業
Section titled “インストール作業”アクセス権がないディレクトリやレジストリを操作することになるので、PSExecを使用してSYSTEM権限のcmdから作業します。
psexec -s -i cmd.exexcopy /H /Y /E Windows %systemroot%reg import Enable_Lbfo.reg念のためシステムを再起動します。
ドライバの起動
Section titled “ドライバの起動”コントロールパネルのネットワーク接続から任意のネットワークアダプタを右クリックしてプロパティを開き、[インストール]をクリック。 選択肢から[サービス]を選択して[追加]をクリックし、[MicrosoftLoadBalancing / FailoverProvider]をインストールします。 一切何も起こらずにウインドウが閉じられますが、ドライバの起動が目的なのでこれで正常となります。

ドライバ自動起動の設定
Section titled “ドライバ自動起動の設定”当方の環境ではシステムを再起動した後にネットワークが不通になる不具合が発生します。 [sc query mslbfoprovider]で確認したところ、LBFOドライバが起動していないことが発覚したためタスクスケジューラで立ち上げを行っています。



PowerShellを使用したチーミングの設定
Section titled “PowerShellを使用したチーミングの設定”GUIの設定画面は使えないのでPowerShellで設定を行います。
クライアントOSでも、PowerShellベースの設定コマンドはインストールされているので、上記のドライバインストール手順を行うと設定可能になります。
PowerShellでNICチーミング(NetLBFO)を操作する - しばたテックブログ
LBFOコマンドメモ
Section titled “LBFOコマンドメモ”New-NetLbfoTeam -Name "Main-TEAM" -TeamMembers ("イーサネット", "イーサネット 2", "イーサネット 3") -TeamingMode SwitchIndependentRename-NetLbfoTeam -Name "Public-TEAM" -NewName "Main-TEAM"アダプタ設定の変更
Section titled “アダプタ設定の変更”スタンバイモードにする
Section titled “スタンバイモードにする”Set-NetLbfoTeamMember -Name "イーサネット" -AdministrativeMode Standbyチームの状態確認
Section titled “チームの状態確認”Get-NetLbfoTeam