Windows 2016/2019チーミング設定とスイッチ側リンクアグリゲーション設定の組合せについて

Windows サーバではスイッチでの Link Aggregation に相当する機能のことを ”Teaming (チーミング)“ と呼びます。

また、Teaming に参加する物理インタフェースのことをチームメンバーと呼びます。また、Teaming を司る論理インタフェースのことをプライマリチームインタフェースと呼びます。

さらにチームメンバーの中で、1 ポートだけプライマリチームメンバーになり、そのインタフェースの MAC アドレスがプライマリチームインタフェースの MAC アドレスとなります。アドレスハッシュの分散方式を利用する際はこの MAC アドレスのみが使われます。

スイッチの LA (Link Aggregation) と Windows サーバ の Teaming を接続する際、Windows サーバ側では以下のモードが選べます。

mode#mode name説明スイッチの
LA設定
1-1Switch Independent

(スイッチに依存しない)
Active-Standby

・選択したチームインタフェースのみを
  Activeとし、選択した負荷分散方式で
  送信
・プライマリチームメンバーの1ポート
  のみから受信
無し
1-2Switch Independent
(スイッチに依存しない)
Active-Active
・選択した負荷分散方式で送信
・プライマリチームメンバーの1ポート
  のみから受信
無し
2Static Teaming
(静的チーミング)
・Link AggregationのStaticモードと
  同じ
・選択した負荷分散方式で送信
・受信は全てのチームインタフェース
  で可能
Static
3LACP・LACPを使ったLink Aggregationを
  実現
・選択した負荷分散方式で送信
・受信はLACPでネゴの取れたインタ
  フェースのみから可能
LACP

Switch Independent (スイッチに依存しない) の構成においては、スイッチ側の設定は不要です。ただし、Active-Standby で Active ポートが複数ある場合、もしくは Active-Active の構成においては、接続先スイッチのMACアドレステーブルが頻繁に更新されるため、あまり望ましくはありません。できるだけStatic TeamingやLACPを使いましょう

負荷分散方式

負荷分散方式は以下の3つがあります。

1. アドレスのハッシュ

[送信]

通常の LinkAggregation や Linux bonding でのロードバランス方式で利用される、送信元MAC, IP, TCP/UDP ポートと宛先 MAC, IP, TCP/UDP ポートの組合せによって経路を変える方式です。

デフォルトの TransportPorts では{送信元 IP, 送信元 TCP/UDP ポート, 宛先 IP, 宛先 TCP/UDP ポート} の組合せにより経路を決めます。PowerShell によって変更することができます。

Set-NetLbfoTeam -Name "team0" -LoadBalancingAlgorithm { TransportPorts | IPAddresses | MACAddresses | HyperVPort | Dynamic }

IPAddresses は {送信元IP, 宛先IP}の組合せ、MACAddresses は {送信元MAC, 宛先MAC} の組合せとなります。また、以降で紹介する Hyper-Vポートや Dynamic の設定も可能です。

なお、送信元MACアドレスはプライマリチームメンバーの MAC アドレスのみが使われます。

[受信]

送信時の MAC アドレスはプライマリチームメンバーの MAC アドレスのみを使うため、Switch Independent の場合は、相手のスイッチは MAC アドレステーブルに従い、プライマリチームメンバーの 1 ポートのみに送信してきます。そのため、この方式での受信は、プライマリチームメンバー 1 ポートのみとなります。

Static Teaming や LACP の場合は相手の LinkAggregation の負荷分散方式に依存します。

なお、VMware ESXi や Hyper-V 上で動作する VM にインストールされた Windows においては、この負荷分散方式しか選択できません。(通常は VMware ESXi や Hyper-V 等の仮想ホスト側で負荷分散の設定をするため、VM としてはそもそも Teaming 自体が不要)

2. Hyper-Vポート

[送信]

仮想マシン毎に送信ポートが決まる方式です。仮想マシンが1台の場合は 1 つのポートしか利用されません。仮想マシン毎に異なる送信元 MAC アドレスが使われます。

[受信]

仮想マシン毎に異なる送信元 MAC アドレスが使われるため、Switch Independentの場合は、MAC アドレステーブルに従い、仮想マシン毎に受信ポートが異なります。

Hyper-V 上で動作させることが最適とされる方式です。

3. 動的

基本的にはハッシュアドレスと同じように負荷分散をしつつ、各チームインタフェースの送信負荷状況を見て、最適な送信ポートへと徐々に移動する負荷分散方式です。2012R2 から出来た、デフォルトかつ推奨の方式となっています。

送信元 MAC アドレスは Hyper-V ポートと同じく仮想マシン毎に異りますが、ポートは定まらないため、MAC アドレステーブルに従って、ある程度 MAC アドレステーブルの更新が発生します。ただし、あまり発生しないように抑える仕組みになっているようです。

チーミングの設定方法

1. サーバーマネージャーの「ローカルサーバー」をクリックし、「NIC チーミング」の「無効」をクリックします。

2. ポップアップされた「NIC チーミング」の「アダプターとインターフェイス」に表示されている NIC で、チーミングに参加させたいインタフェースをどれか1つ右クリックし、「新しいチームに追加」をクリックします。

3. 「NIC チーミング」がポップアップしますので、「チーム名」に任意の名前を入れます。また、チームのメンバーにしたいインタフェースのチェックボックスにチェックを入れます。また、「チーミング モード」を選択します。

4. 「負荷分散モード」を選択します。

f

5. スタンバイアダプターを選択します。Active-Active の場合は「なし」を選択します。

「OK」を押下すれば、チーミングが有効となります。設定作業はこれで完了です。