前書き
Hyper-Vの仮想スイッチマネージャーにて、下記の3種類の接続の種類があります。
- 外部ネットワーク
- 内部ネットワーク
- プライベートネットワーク
この中で、「外部ネットワーク」と「内部ネットワーク」の仮想スイッチがどのような動きをするのか、図解を用いて解説したいと思います。
※「プライベートネットワーク」は取り上げません。
ここでは、Hyper-Vがインストールされているホストマシンを物理ホストマシンと呼びます。
また、Hyper-V上に構築するゲストマシンを仮想ゲストマシンと呼びます。
物理ホストマシンのOSとIPアドレスは下記の通りです。
物理ホストマシンOS | Windows 10 Pro(バージョン:1803) |
物理ホストマシンのIPアドレス(物理NICのIPアドレス) | 192.168.10.253 |
ルータのIPアドレス | 192.168.10.1 |
仮想ゲストマシンにネットワークアダプタを割り振っていない(仮想NICを付与していない)ときの状態は、下図のようになります。
当たり前ですが、仮想ゲストマシンはネットワークに所属していなく、物理ホストマシンからのみ操作が可能です。(リモートデスクトップ接続などはできない)
vEthernet (規定のスイッチ)
接続の種類の説明に入る前に、「vEthernet (規定のスイッチ)」について少し触れたいと思います。
Hyper-Vをインストールすると、「vEthernet (規定のスイッチ)」というネットワークアダプタが物理ホストマシンに現れます。
これは、Hyper-Vをインストールすると仮想スイッチがひとつ作成されるためです。そしてこのデフォルトの仮想スイッチの種類は「内部ネットワーク」になり、変更することはできません。
物理ホストマシンのNICを使用して仮想スイッチが作成され、「vEthernet (規定のスイッチ)」という名前のネットワークアダプタ(仮想NIC)が作成されたわけです。
では、この「vEthernet (規定のスイッチ)」を使用して、「内部ネットワーク」の動きについて見ていきます。
「内部ネットワーク」の仮想スイッチ
「vEthernet (規定のスイッチ)」という仮想NICには初期状態でIPアドレスが割り振られており、DHCP機能も持っています。
下の図は、「vEthernet (規定のスイッチ)」を割り当てた仮想ゲストマシンでipconfigを実行した結果です。
仮想ゲストマシンのIPアドレスは「172.22.123.217」となっており、仮想NICよりDHCPで割り当てられたものです。
また、仮想NIC自身のIPアドレスは「172.22.123.209」となっており、仮想ゲストマシン上では「デフォルトゲートウェイ」と表現されています。
物理ホストマシンでipconfigを実行すると、仮想NICのIPアドレスが「172.22.123.209」であることがわかります。
「vEthernet (規定のスイッチ)」(内部ネットワーク)を使用した場合の構成を図にすると、下記のようになります。
※コメントいただきまして訂正しました。古いものには×を付けて、訂正後の図はその下にあります。(2020/2/12追記)

しかし、物理ホストマシン上の仮想NICと「vEthernet(仮想のスイッチ)」は同等の存在となるため、下図のように物理ホストマシン上に「vEthernet(既定のスイッチ)」という名前の仮想NICが存在すると考えたほうがわかりやすいです。※コメントをいただき、上記の説明と下図は無い方は良いと判断し、取り消し線を入れました。「仮想NICにIPアドレスが付与されている」と考えた方がベターと判断したためです。(20202/12追記)
仮想スイッチが作成されると物理ホストマシン上に新しいネットワークアダプタが作られ(vEthernet (規定のスイッチ))、そこに設定されたIPアドレスが仮想NICのIPアドレスとなることがわかったので、仮想NICのIPアドレスを変更することを考えてみます。
「内部ネットワーク」の仮想NICのIPアドレス変更
まず、物理ホストマシン上の「vEthernet (規定のスイッチ)」のIPアドレスを「10.0.0.1」にします。つまり仮想NICのIPアドレスを「10.0.0.1」にしています。
仮想ゲストマシンのIPアドレスを「10.0.0.2」と設定します。仮想NICのIPアドレスは「10.0.0.1」なので、デフォルトゲートウェイとDNSサーバーのIPアドレスに「10.0.0.1」と入力します。
仮想ゲストマシンがインターネットに接続できることが確認できます。
この状態で、仮想ゲストマシンからルータにtracertコマンドを実行すると、物理ホストマシン上に存在する仮想NICを経由していることがわかります。

「DKTP13CSTM」は物理ホストマシンのホスト名です。
今の状態を構成図にすると下記のようになります。
※コメントいただき、下図は修正しました。修正後の図は下に配置しています。(20202/12追記)

内部ネットワークの仮想NICに静的IPアドレスを指定でき、仮想ゲストマシンのIPアドレスも変更できることがわかりました。ここで抑えておきたいことは、内部ネットワークの仮想NICで仮想ゲストマシンが通信するときは、物理ホストマシンを通過するということです。そして、物理ホストマシンは、仮想NIC側とルータ側で、2つのネットワークに所属することになります。
ちなみに、内部ネットワークの仮想NICにはNAPT機能が備わっているため、仮想ゲストマシンはルータまで通信できてインターネットにも出ていくことができています。
「外部ネットワーク」の仮想スイッチ(物理ホストマシンとネットワークアダプタを共有する場合)
次に外部ネットワークの仮想スイッチの動きを見ていきます。
外部ネットワークには「管理オペレーティングシステムにこのネットワークアダプターの共有を許可する」というオプションが存在します。
ここでは、このオプションがONである場合について見ていきます。
仮想スイッチの名前は「外部ネットワーク 共有あり」とします。作成するときにプルダウンから選ぶのは、物理NICのデバイス名です。
Hyper-Vの仮想スイッチマネージャで「外部ネットワーク」の仮想スイッチを作成すると、物理ホストマシンの物理NICの通信機能は仮想NICに奪われます。
下図は外部ネットワークの仮想スイッチ作成前の物理NICのプロパティです。プロトコルのチェックも入っており、IPアドレスも設定されています。
外部ネットワークの仮想スイッチを作成した後の物理NICのプロパティが下図です。
ほとんどのプロトコルのチェックが外れ、代わりに「Hyper-V Extensible Virtual Switch」にチェックが入ります。
そして新しく作成された仮想NIC(ここでは「vEthernet (外部ネットワーク 共有あり)」)のプロパティを開いてみると、物理NICのIPアドレスを引き継いでおり、使用するプロトコルも引き継がれています。(下図参照)
つまり、外部ネットワークの仮想スイッチを作成すると、作成時に指定した物理NICは仮想NICに通信を通すだけの役割になります。
そしてこの「外部ネットワーク 共有あり」の仮想スイッチを仮想ゲストマシンに割り振ると、構成図は下記のようになります。
※コメントいただき、図を多少修正しました。(2020/2/12追記)
.png)
試しに、仮想ゲストマシンからルータへtracertコマンドを実行してみると、物理ホストマシンを通過していないことがわかります。
また、仮想ゲストマシンでipconfigを実行すると、デフォルトゲートウェイはルータになっていることがわかります。
仮想ゲストマシンはルータとつながっている状態となり、同じルータとつながっている物理ホストマシンとは同じネットワークに属することになります。
ルータがDHCPサーバとして動作していれば、仮想ゲストマシンはIPアドレスをリースしてもらえることになりますし、ルータが作るネットワークの中でIPアドレスを静的に設定することもできます。
「外部ネットワーク」の仮想スイッチ(物理ホストマシンとネットワークアダプタを共有しない場合)
最後に、外部ネットワークの仮想スイッチで、オプションの「管理オペレーティングシステムにこのネットワークアダプターの共有を許可する」が無効である場合について見ていきます。
仮想スイッチの名前は「外部ネットワーク 共有無し」とします。
おわかりかと存じますが、外部ネットワークの仮想スイッチは物理ホストマシンが持っている物理NICの数だけ作成できます。物理NICの数がひとつの場合はひとつしか作成できません。(外部ネットワークの仮想スイッチは、物理NICの通信機能を奪うため)
「外部ネットワーク 共有無し」の仮想スイッチを仮想ゲストマシンに付与すると、ネットワーク構成図は下記のようになります。
図でわかるように、物理ホストマシンはルータに接続できず、インターネットにも出ていくことができません。
これは、外部ネットワークの仮想スイッチは物理NICの通信機能を奪うことと、物理ホストマシンにネットワークアダプタ(仮想NIC)が共有していないことが同時に行ったためです。
繰り返しで恐縮ですが、物理NICの通信機能が仮想スイッチに奪われ、さらに仮想NICが物理ホストマシンに共有されていないので、物理ホストマシンはネットワーク接続を失ったのです。
物理ホストマシンに物理NICが複数存在する場合には使い道があると思いますが、インターネットに接続して使用することを前提としているWindows 10 Proでは、設定しないように気をつけたほうが良いと思います。(インターネットに接続できなくなるから)
後書き
最後までお読みいただきありがとうございました。
Hyper-Vのネットワーク設定では、ひとつの設定が複数の箇所の設定を担っているなど、目に見えない箇所があるため混乱することが多いと思います。そのため本記事ではなるべくシンプルに書かせていただきました。
Hyper-Vを使用する方々に、少しでも助けになれば幸いです。
|
|