Windowsのチーミング設定とスイッチのリンクアグリゲーション設定
Windows サーバではスイッチでの Link Aggregation に相当する機能のことを ”Teaming (チーミング)“ と呼びます。
Link Aggregation との違いはありません。
また、Teaming に参加する物理インタフェースのことをチームメンバーと呼びます。また、Teaming を司る論理インタフェースのことをプライマリチームインタフェースと呼びます。
さらにチームメンバーの中で、1 ポートだけプライマリチームメンバーになり、そのインタフェースの MAC アドレスがプライマリチームインタフェースの MAC アドレスとなります。アドレスハッシュの分散方式を利用する際はこの MAC アドレスのみが使われます。
スイッチの LA (Link Aggregation) と Windows サーバ の Teaming を接続する際、Windows サーバ側では以下のモードが選べます。
mode# | mode name | 説明 | スイッチの LA設定 |
---|---|---|---|
1-1 | Switch Independent (スイッチに依存しない) | ・選択したチームインタフェースのみを Activeとし、選択した負荷分散方式で 送信 ・プライマリチームメンバーの1ポート のみから受信 | 無し |
1-2 | Switch Independent (スイッチに依存しない) Active-Active | ・選択した負荷分散方式で送信 ・プライマリチームメンバーの1ポート のみから受信 | 無し |
2 | Static Teaming (静的チーミング) | ・Link AggregationのStaticモードと 同じ ・選択した負荷分散方式で送信 ・受信は全てのチームインタフェース で可能 | Static |
3 | LACP | ・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 によって変更することができます。
C:\> 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. 「負荷分散モード」を選択します。
5. スタンバイアダプターを選択します。Active-Active の場合は「なし」を選択します。
「OK」を押下すれば、チーミングが有効となります。設定作業はこれで完了です。
コメント
検索すると多くの場合、本サイトにたどり着きます。
有益な情報を提供頂きありがとうございます。
本記事に記載されております、LBFOの負荷分散モードである「動的」についてもう少しご教示いただきたくコメントさせていただきます。
Active/Standby構成で「動的」を選択した場合、ActiveのNICに問題がない場合でも、送信時はStandby設定されているNICからもパケットが送出されることはあるのでしょうか。
天空人さん、コメントありがとうございます。
また、いつも本サイトをご覧いただきありがとうございます。
Active/Standby の場合、負荷分散方式が何であろうと、ActiveのNICに問題がない場合はStandbyは使われません。ActiveのNICに問題が発生し使えなくなった場合にStandbyがActiveに昇格し、パケットの送受信が開始されます。
nesuke様
早速、ご回答頂きありがとうございました。
検索してもはっきりとした記載が見つからずモヤモヤしていましたが、これでスッキリしました。
ありがとうございました。