Hyper-Vで物理マシンと仮想マシンの両方をインターネット接続するための仮想スイッチの種類

[2016/09/09更新]
Windows 8以降のクライアントHyper-Vを利用して、物理マシンも仮想マシンもインターネットにつなぎたい場合を考えます。

ネットワーク環境として、以下を想定します。
・一般的な家庭で、物理マシン→物理NICルーター→インターネット、とつながっている
・物理マシンの物理NICは1つだけ
・(物理マシンでFlet's接続ツールなどを使うのではなく)ルーターのほうでPPPoEをやってくれる

仮想マシンをインターネットにつなげるのに、仮想NICを与えなければならないのですが、その前に、Hyper-V上で仮想スイッチを作ることになります。その種類として「外部」「内部」「プライベート」のいずれかを選択しなければならないのですが、どれを選んで、どう設定するかという話です。


1. 「外部」+「管理オペレーティングシステムにこのネットワークアダプターの共有を許可する」
こちらのページがわかりやすいです(「外部」の説明つき)。
Hyper-Vのネットワークを理解する -外部ネットワーク- | Windowsインフラ管理者への道

この方法について、下のほうででてきますが、物理NICが有線LANであったり、無線LANでいつも同じアクセスポイントに接続している場合はいいんですけど、移動していろいろなアクセスポイントに接続したり、携帯のテザリングによるアクセスポイントにつないで、移動して携帯回線がハンドオーバーしたりすると、ネット接続が不安定になることを経験しました。

余談ですが、この方法をとると、物理マシン→仮想NIC→物理NICルーター→インターネット、というようなつながり方になります。ここで、物理NICもコントロールパネルのネットワーク接続で見えてしまうのが、混乱の元のような気がします。仮想スイッチと同じくHyper-Vマネージャーでのみ見えるように移動したほうがわかりやすいのではないでしょうか?


2. 「内部」+物理マシンの仮想NICと物理NICを「ブリッジ接続」
こちらのページの解説がわかりやすいです。
Windows 8 でHyper-V 上の複数のゲストOS を同時にインターネットに接続する方法 PCプチ技能向上委員会?

「内部」(や「プライベート」)はこちらのページの解説がわかりやすいです。
Hyper-Vのネットワークを理解する -内部ネットワーク,プライベートネットワーク- | Windowsインフラ管理者への道

この方法だと、物理NIC無線LANで、いろいろなアクセスポイントに接続したり、携帯のテザリングによるアクセスポイントにつないだまま携帯回線がハンドオーバーしても、安定していました。

なお、物理マシンも仮想マシンも、同じルーターにぶら下がることになります。DLNA仮想マシンの動画を、同じルーターにぶら下がっているTVに映すこともできました。

気がかりなのは、物理NIC無線LANのときにこの方法をとると、物理マシンの画面右下の通知領域に表示されるネットワークのアイコンが、無線LANじゃなくて有線LANのやつになることです。ブリッジに接続しているように見えますし、コントロールパネルのネットワーク接続に現れたネットワークブリッジにIPアドレスが設定されているようにも見えます。もしかしたら、物理マシンが無線LANを使っていることが意識されずに、モバイル時の無線LANの省電力制御などの(あればうれしい程度の)機能がうまく働かないのでは?と懸念しています。


3.「内部」+物理マシンの物理NICの「インターネット接続の共有」(ICS)
これらのページの解説がわかりやすいです。
モバイル環境では外部アダプタを使わない方がいい|Surface Pro2 あるいはモバイルノートwindows8にオススメなHyper-Vネットワーク構成 - 豆腐の豆腐和え
Hyper-V を使おう

この方法をWindows 10でやってみたところ、うまくいきました。ですが、物理マシンを再起動すると、仮想マシンがインターネットにつながらないことがありました。仮想マシンを落とし、物理マシンでICSを1回オフにして、少し待ち、またオンにすると、正常になりました。原因として、物理マシンを再起動後、物理マシンの仮想NICの初期化が終わってない段階でICSをしようとして失敗しているのでは?と想像しています。

以上です。


ちょっと話題は外れますが別のメモ。
Windows 7仮想マシンに与えるNICは「ネットワーク アダプター」
Windows XP仮想マシンに与えるNICは「レガシ ネットワーク アダプター」。
("レガシー"と伸ばさないのですね)