仮想スイッチポートがトランクモードの場合、Hyper-V ゲストはネットワークアクセスを失います

仮想スイッチポートがトランクモードの場合、Hyper-V ゲストはネットワークアクセスを失います

Hyper-V を実行している Windows Server 2012 R2 マシンにゲスト VM があります。現在、ゲストはネイティブ VLAN (VLAN ID 1) を使用しています。ホストとネットワークからゲストと通信できます。ただし、ゲストは Zebra/Motorola VX9000 wlan コントローラーであり、VLAN ID 10 と 15 のトラフィックも処理する必要があります。ホストが使用するスイッチ ポートは VLAN 1 ではタグなしですが、VLAN 10 と 15 でもタグが付くようにポートを更新しました。PowerShell 経由で次のコマンドも発行します。

Set-VMNetworkAdapterVlan -VMName MyGuest -Trunk -AllowedVlanIdList "10,15" -NativeVlanId 1

残念ながら、このコマンドを実行すると、ゲストと通信できなくなります。ゲストの Hyper-V コンソールを開いても、ネットワークにアクセスできません。ホストまたはネットワーク上の他の場所からゲストに ping を実行しようとすると、メッセージが表示されますDestination host unreachable

アダプタをタグなしモードに戻すことで、これを「修正」できます。

Set-VMNetworkAdapterVlan -VMName MyGuest -Untagged

これで再びゲストと通信できるようになりましたが、これでは何も解決しません。このゲストが VLAN 10 と 15 のトラフィックを処理できるようにする必要があります。

なぜこのようなことが起こるのかわかりません。タグなしパケットは、トランク モードに切り替える前は VLAN ID 1 でした。現在もその状態のままではないでしょうか。このゲストが必要なすべての VLAN で通信できるようにするにはどうすればよいでしょうか。

ping を実行したときに表示されるエラー メッセージから得られる最良の結果は、ルートがない場合に表示されるものと似ています。ポートをトランクとして設定した後 (おそらくホスト上で)、これらのネットワークのルートを作成するために別のコマンドを発行する必要がありますか?

答え1

このようにセットアップした VM は 2 台だけですが、それらもネイティブ VLAN で通信しませんでした。この問題を解決するために行ったことは、ネイティブ VLAN をネットワーク上で使用されていないものに設定し、使用したい VLAN を許可済みにしてから、VM 内のすべての NIC を切り替えてトラフィックにタグを付けることでした。

答え2

解決策を見つけました!

alejanpによる投稿このリンクvlan 0 を試してみたところ、次のコマンドが機能しているようです。

Set-VMNetworkAdapterVlan -VMName MyGuest -Trunk -AllowedVlanList "1,10,15" -NativeVlanId 0

つまり、ネイティブ VLAN を 0 に設定し、実際のネイティブ VLAN を許可リストに含めました。

もちろん、これは、ゲストに必要なタグなし VLAN がホスト/スイッチ ポートのタグなし VLAN と一致する場合にのみ機能します。ありがたいことに、現在はそれが当てはまります。

関連情報