ネットワークの設定において「MACアドレスのスプーフィングを有効にする」という機能が追加されました。
これがHyper-V1.0のネットワークアダプタの画面になります
これがHyper-V2.0のネットワークアダプタの画面になります
さて、これって何?
仮想ネットワークマネージャからネットワークを作成すると仮想スイッチが作られます
この仮想スイッチは通常のスイッチと同様にMACアドレスの学習をします。しかし、ここで問題になるのはそもそも仮想マシンは物理MACを持っていません。ということはMACアドレスは常に仮想MACということになります。これは便利な半面、使い方によってはセキュリティ上の問題が発生する可能性があります。
仮想マシンで異なる複数のMACアドレスがあった場合は再学習されてしまいます。これはこれで正しい動作なのですが、Hyper-V2.0ではこのような動作を禁止させる仕様になりました。
参考:New in Hyper-V Windows Server 2008 R2 Part 2 – MAC Spoofing
チェックなし(セキュアモード)とした場合は次のようになります
- 仮想ネットワークに設定されたMACアドレスのみが自分が送るパケットの唯一の送信元MACアドレスになる
- 仮想マシンは宛先MACアドレスが登録されたMACアドレスのユニキャストのみを受信します。そのMACを宛先とするパケットは他のポートにフラッディングされることはない
- 仮想スイッチは学習するのでルーティングテーブルを含む様々な内部構造をメンテナンスします。仮想マシンを起動し仮想ネットワークが起動したらルーティングテーブルに自分のMACアドレスを登録し、他のポートに移動しないようにする
- トラフィックがスイッチによってフラッディングされる必要がある場合、セキュアモードになっているそのポートに対しては行われない
- 仮想マシン内のMACアドレスは上書きはされない
チェックを入れた場合(セキュアレスモード)は
- 仮想マシンはすべてのMACアドレスのトラフィックを送受信する
- 仮想マシンはフラッディングされたユニキャストパケットを受信する
- ポートに対して複数のMACアドレスを学習させることができる。またルーティングテーブルはスイッチポートを通過した時点で学習される
- 仮想マシンはMACアドレスを上書きできる
NLBを構築する際には(ユニキャスト構成)各ネットワークのMACアドレスをNLBで設定した仮想MACアドレスに変更しなくてはなりません。その場合は、この「MACアドレスのスプーフィングを有効にする」にチェックを入れたセキュアレスモードにする必要があります
2009/09/15追記
NLB構成の際には、静的MACにしてNLBのMACアドレスに変更する必要はないようです。検証の結果、自動的に適用されました。