Windows 10 で Windows Serverのチーミング機能(LBFO)を使う
当方の PC は 10GbE の HP NC523SFP を使用していますが、WoL に対応していない事と、偶にリンクダウンして帰ってこなくなることがあるので、オンボードの Intel I211 と異種混合チーミングを行い、Intel I211 側をスタンバイアダプタとして利用することで Wol の待ち受けと切断時のバックアップとして活用を行います。
動作原理や歴史的経緯はネタ元を読んでください。
ファイルの抽出
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
レジストリの準備
- Enable_Lbfo.reg
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
インストール作業
アクセス権がないディレクトリやレジストリを操作することになるので、PSExecを使用してSYSTEM権限のcmdから作業します。
psexec -s -i cmd.exe
- instlbfo.cmd.cmd
xcopy /H /Y /E Windows %systemroot% reg import Enable_Lbfo.reg
念のためシステムを再起動します。
ドライバの起動
コントロールパネルのネットワーク接続から任意のネットワークアダプタを右クリックしてプロパティを開き、[インストール]をクリック。 選択肢から[サービス]を選択して[追加]をクリックし、[MicrosoftLoadBalancing / FailoverProvider]をインストールします。 一切何も起こらずにウインドウが閉じられますが、ドライバの起動が目的なのでこれで正常となります。
ドライバ自動起動の設定
当方の環境ではシステムを再起動した後にネットワークが不通になる不具合が発生します。 [sc query mslbfoprovider]で確認したところ、LBFOドライバが起動していないことが発覚したためタスクスケジューラで立ち上げを行っています。
PowerShellを使用したチーミングの設定
GUIの設定画面は使えないのでPowerShellで設定を行います。
クライアントOSでも、PowerShellベースの設定コマンドはインストールされているので、上記のドライバインストール手順を行うと設定可能になります。
LBFOコマンドメモ
チーム作成
New-NetLbfoTeam -Name "Main-TEAM" -TeamMembers ("イーサネット", "イーサネット 2", "イーサネット 3") -TeamingMode SwitchIndependent
名前変更
Rename-NetLbfoTeam -Name "Public-TEAM" -NewName "Main-TEAM"
アダプタ設定の変更
スタンバイモードにする
Set-NetLbfoTeamMember -Name "イーサネット" -AdministrativeMode Standby
チームの状態確認
Get-NetLbfoTeam