naos92の日記

あなたは夢をみる?志を低く自我を薄く、万人に好かれる便利な奴隷を目指します。

WindowsサーバのNICチーミングとMACの関係を調べてみた

まずは公式ドキュメントから。

相変わらずの読みにくい日本語だが少し前よりかはずいぶんと読めるようになった印象。

Windowsサーバでチーミングを組む時には、対抗のスイッチと冗長方式を検討する必要があるが、サーバチームとネットワークチームに深い溝がある場合、スイッチ非依存の設定にするケースがあると思う。またはきっちりとした設計を考えたくない場合など。

ただ、その場合でも、NIC チーミングMAC アドレス置換動作をおさえておかないとトラブル発生時に切り分けができなくなってしまう。

アドレスハッシュ分散を使用したスイッチ非依存モード→送信元MAC変更可能性あり
HYPER-V ポート分布でスイッチに依存しないモードで→送信元MAC変更可能性なし
スイッチに依存しないモード動的配布と→送信元MAC変更可能性あり
スイッチ依存モード (すべてのディストリビューション)→送信元MAC変更可能性なし

docs.microsoft.com

上記の公式ドキュメントの用語が難しい場合は、以下のサイトがわかりやすい。

(本当は、NECFUJITSU、HITACHIのドキュメントもあるが割愛)milestone-of-se.nesuke.com

そもそも、チーミングが負荷分散・ロードバランスしてもスイッチ側の設定が不要な理由をわかりやすく知りたければ以下のサイトがわかりやすい。

blog.putise.com

サーバー⇔L2SW⇔PC

サーバ→PCへの通信時は、サーバーからの送信パケットはチーミングの仮想MACアドレスでパケットを送らずに、物理NICMACアドレスでパケットを送っている。

サーバのMAC
物理NIC1 MACアドレス
物理NIC2 MACアドレス
チーミング MACアドレス(仮想MACアドレス)

L2SWのARPテーブル
物理ポート1=物理NIC1 MACアドレス
物理ポート2=物理NIC2 MACアドレス


サーバ←PCへの通信時は、パソコンはARPパケットを飛ばしサーバーのMACアドレスを取得するが、サーバーはチーミングの仮想MACアドレスを片方の物理NIC(物理NIC2)からのみ返信する。

PCのARPテーブル
サーバーIPアドレスチーミングMACアドレス(仮想MACアドレス)


まとめると、
サーバーから送信パケットのみ複数の経路で負荷分散される
サーバーの受信パケットは一つのNICのみを使用し受信している