概要
本記事では、Windows Server環境でのNICチーミング構成手順と冗長化設計の要点を解説します。LBFO(Load Balancing and Failover)を用いたSwitch Independentモード+Dynamic負荷分散の構築、フェイルオーバーテスト手順、ログ監視を解説します。
変数表記について
本記事で使用する環境依存の値は以下のように表記します。実際の環境に合わせて読み替えてください。
| 変数名 | 設定例 | 説明 |
|---|---|---|
<<TEAM_NAME>> |
Team01 |
チーム構成名 |
<<ADAPTER1>> |
Ethernet1 |
使用する物理NIC 1 |
<<ADAPTER2>> |
Ethernet2 |
使用する物理NIC 2 |
<<TEAM_NIC>> |
TeamedNIC |
仮想チームインターフェース名 |
<<STATIC_IP>> |
192.168.10.100 |
設定する固定IPアドレス |
<<PREFIX_LENGTH>> |
24 |
サブネットのプレフィックス長 |
<<GATEWAY>> |
192.168.10.1 |
デフォルトゲートウェイ |
<<DNS_SERVER>> |
192.168.10.10 |
DNSサーバーのアドレス |
Step 1: NIC構成の確認
チーミングに使用する物理NICの状態を確認します。速度・メーカー・ドライババージョンは統一することが推奨されます。
# 利用可能なNIC一覧を取得
Get-NetAdapter | Select-Object Name, Status, LinkSpeed, InterfaceDescription, MacAddress
出力結果で、Status が Up のアダプターが対象です。
Step 2: チームの作成(LBFO構成)
ロードバランシングアルゴリズム比較(LBFO全モード共通)
| アルゴリズム名 | 対応モード | 特徴 | 主な用途 |
|---|---|---|---|
| AddressHash | Switch Independent / Static / LACP | 送信元・宛先IPやポートのハッシュを使用して分散 | 汎用サーバー通信に適用 |
| HyperVPort | Switch Independent / LACP | 各VMまたは仮想NICごとに分散、受信負荷も均等化 | Hyper-V仮想環境向け |
| Dynamic | Switch Independent / LACP | 送信はハッシュ、受信はアダプター利用率に応じて動的調整 | 最新環境の既定で推奨 |
| TransportPorts | Switch Independent | TCP/UDPポート単位で分散制御 | 高トラフィックアプリケーション |
| IPAddresses | Switch Independent | IPペア単位でハッシュ生成 | IP固定構成での最適化 |
| MACAddresses | Static / LACP | MACアドレス単位で単純な分散 | 旧世代スイッチや固定構成 |
Switch Independentモード(スイッチ設定不要)+Dynamic負荷分散(双方向ロードバランス)でチームを構築します。
# チーミングの作成
New-NetLbfoTeam `
-Name "<<TEAM_NAME>>" `
-TeamMembers "<<ADAPTER1>>","<<ADAPTER2>>" `
-TeamingMode SwitchIndependent `
-LoadBalancingAlgorithm Dynamic `
-TeamNicName "<<TEAM_NIC>>"
確認コマンド:
Get-NetLbfoTeam | Format-Table Name, TeamingMode, LoadBalancingAlgorithm, Status
Step 3: チームインターフェース設定
作成したチームNICにIPv4設定を行います。IPv6環境の場合は -AddressFamily IPv6 を追加してください。
# IPアドレス設定
New-NetIPAddress -InterfaceAlias "<<TEAM_NIC>>" -IPAddress "<<STATIC_IP>>" -PrefixLength <<PREFIX_LENGTH>> -DefaultGateway "<<GATEWAY>>"
# DNS設定
Set-DnsClientServerAddress -InterfaceAlias "<<TEAM_NIC>>" -ServerAddresses "<<DNS_SERVER>>"
設定確認:
Get-NetIPAddress -InterfaceAlias "<<TEAM_NIC>>"
Get-DnsClientServerAddress -InterfaceAlias "<<TEAM_NIC>>"
Step 4: チーム状態の確認
構成されたチームメンバーの状態を検証します。
# チームメンバー状態確認
Get-NetLbfoTeamMember -Team "<<TEAM_NAME>>"
すべてのメンバーが Active 状態であれば正常です。異常時はケーブル接続・スイッチポート設定を確認します。
Step 5: フェイルオーバーテスト
冗長性が機能しているかを確認します。
<<ADAPTER1>>のケーブルを抜く、またはNICを無効化
# アダプター無効化
Disable-NetAdapter -Name "<<ADAPTER1>>" -Confirm:$false
- 状態を確認
Get-NetLbfoTeamMember -Team "<<TEAM_NAME>>"
# 確認後アダプター有効化
Enable-NetAdapter -Name "<<ADAPTER1>>"
<<ADAPTER1>> が Inactive、<<ADAPTER2>> が Active のまま通信が維持されればフェイルオーバー成功です。
逆の手順でも同様に確認します。
Step 6: イベントログと監視
NICチーミングに関連するイベントは以下のログに記録されます。
# LBFO関連イベント確認
Get-WinEvent -LogName "Microsoft-Windows-MsLbfoProvider/Operational" -MaxEvents 20 |
Select-Object TimeCreated, Id, LevelDisplayName, Message
また、システムログのLBFOイベントプロバイダーも監視対象としてください。
Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Microsoft-Windows-MsLbfoSysEvtProvider'} -MaxEvents 20 |
Select-Object TimeCreated, Id, LevelDisplayName, Message
Step 7: チーミング設定変更・削除
構成変更や削除は以下のコマンドで行います。
# アルゴリズム変更(例:Hyper-Vポート)
Set-NetLbfoTeam -Name "<<TEAM_NAME>>" -LoadBalancingAlgorithm HyperVPort
# チーム削除
Remove-NetLbfoTeam -Name "<<TEAM_NAME>>"
削除後は各NICに個別のIP構成を再設定します。
Step 8: 冗長化設計の考慮事項
| 構成タイプ | 特徴 | 推奨用途 |
|---|---|---|
| Switch Independent + Dynamic | スイッチ設定不要・双方向分散 | 汎用サーバー/小規模構成 |
| LACP | スイッチ側でLAG設定が必要・帯域効率高 | ネットワーク装置がLACP対応している環境 |
| Active/Standby | 片側待機による明確な冗長構成 | ネットワーク安定性を重視する環境 |
仮想環境ではLBFOは非推奨(deprecated)扱いとなり、SET(Switch Embedded Teaming)への移行が推奨されています。
まとめ
LBFOによるNICチーミングは、シンプルながら高い冗長性と負荷分散を提供します。
Switch Independentモード+Dynamic構成は特に運用しやすく、小規模~中規模の物理サーバー環境に最適です。
運用中は、イベントログ監視と定期フェイルオーバーテストを継続的に行い、安定稼働を確保してください。
Hyper-VやSDN向けにはSET構成が推奨されます。
