仮想化でプリセールスしてるSEの一日

VMware から Azure まで、インフラや仮想化の最新情報をベンダー色をできるだけ抑えて綴っていきます

Hyper-V の NIC チーミング (3) - NIC Teaming と VLAN は併用できない?

f:id:ogawad:20190203195637p:plain:right

(1) Hyper-V がチーミングを実装しない理由
(2) 各社のサポート状況
(3) NIC Teaming と VLAN は併用できない?
(4) 2011年現在の最新情報


前回Hyper-V 環境での各社の NIC Teaming の対応状況について触れました。
結論として、自己責任を促すベンダーもあるものの、
各社とも技術的には Hyper-V 環境での NIC Teaming は利用できます。
これで解決かと思いきや、今度は NIC Teaming と Hyper-V の VLAN 機能が同時利用できない」 トラブル*1 が増えていますので、最後に触れておきたいと思います。


Hyper-V の VLAN 機能とは?

Hyper-V の VLAN 機能とは、Hyper-V の各仮想マシンに設定する VLAN タグのことです。ネットワーク用語で言えば、IEEE802.1Q に準拠した tagged VLAN になります。これによって一本のネットワークパス内に複数のネットワークセグメントを通すことができます。



例えば、ある1台のサーバーの上に仮想マシンが20台動いており、各々別々のセグメントに繋ぎたいとします。
この場合、NIC を20ポート増設すれば確実ですが、それだとコスト高ですし、ブレードサーバーや 1U サーバーではそんなに増設することができません。こういった場合に VLAN が役立ちます。


NIC チーミングHyper-V の VLAN 機能は併用不可

さて、本題になりますが、
Hyper-V の VLAN 機能は、現在のところ HP 社製サーバーを除いて NIC Teaming と同時利用できません。*2 この理由を図を交えながら説明したいと思います。


上図は NIC Teaming を利用しない場合です。VLAN 通信は全く問題ありません。


こちらは NIC Teaming を利用した場合ですが、VLAN 解決に失敗しています。

これは、前々回 で解説したとおり、Hyper-V は自身でチーミング機構を搭載しなかったことが原因です。

各社が Windows 用にリリースしているチーミングユーティリティは、ネットワークスタックの最上位に位置します。このため、「自分は最後の砦だ」と理解しており、パケット内のデータ以外のヘッダ情報はすべて取り除きます。
それより上位のレイヤは、ネットワークスタックからデータのみが送られると思っています。つまり、IEEE802.1Q VLAN タグ (VID) などのヘッダ情報が残っていると、データを誤解してしまうため、普通の Windows ではこの動作はとても重要です。

しかし、Hyper-V ではネットワークスタックの上位に、更に「仮想スイッチ」が位置されています。このため、チーミングユーティリティが VID などのヘッダ情報を剥がしてしまうと、上位層で VID を識別できなくなってしまう のです。


Hyper-V の標準開発機として採用されている HP は、早期にこのようなフィードバックを受け、自社のチーミングユーティリティである 「HP Network Configuration Utility (HP NCU)」 のバージョン 10.10 より、VID 情報を剥がさないモード 「VLAN Promiscuous」 を追加し、この問題を解決しました。

このあたりは、米 Microsoft の開発協力を受けている HP ProLiant の強みです。


*1:"同時利用" が NG なだけで、NIC Teaming と VLAN の一方のみであれば基本的に OK です。

*2:2011年3月現在、Broadcom BACS でもごく限られたバージョンと設定の組合せで動くらしいです。http://d.hatena.ne.jp/ogawad/20110317/1300325283