仮想スイッチの種別と用途:Windows 10 Hyper-V入門
Windows 10でHyper-Vを利用する場合、悩ましいのがネットワークの設定だ。「Default Switch」「外部ネットワーク」「内部ネットワーク」「プライベートネットワーク」の4種類ある仮想スイッチは何が異なり、どう設定すればいいのか分かりにくい。そこで、Hyper-Vの仮想スイッチについてどのような違いがあるのかを解説しよう。
Hyper-Vの「仮想スイッチ」の種類
Hyper-Vのネットワークは、「仮想スイッチ」で構成する。仮想スイッチには、「Default Switch」「外部ネットワーク」「内部ネットワーク」「プライベートネットワーク」の4種類がある。それぞれどのようなものなのかを解説する。
アプリケーションのテストや「Windows Insider Program」の実行には、仮想マシンを利用すると安全だし、便利だ。Windows 10のPro以上のエディションでは、仮想マシン環境である「Hyper-V」が付属しており、無償で利用できる。
ここで問題になるのは、ネットワークの設定だ。もともとWindows Server向けに作られたHyper-Vは、Windows 8で初めてクライアント版Windows OSに搭載された。だが、当初の仕様は、サーバ向けのサブセットであり、クライアントのWindows OSに最適化されているとは言い難く、使いにくいところもあった。
しかし、Windows 10とともにいろいろと改良されており、ネットワークの設定などもクライアント向けのWindows OSで使うのに適したものが利用できるようになった。ここでは、Windows 10でHyper-Vを使うときのネットワーク設定に焦点を当てて、具体的な設定などを解説することにする。逆に、Windows Serverなどでの利用は全く考慮していないので、この点には注意していただきたい。本稿では、動作の確認をWindows 10 November 2019 Update(バージョン1909)で行っている。
結論からいうと、Windows 10のHyper-Vでは、「初期状態で登録されている仮想スイッチ『Default Switch』をそのまま使う」のがベストなやり方である。特に、仮想マシンでプレビュー版Windows 10や他のバージョンのWindows 10などを動かす程度の場合なら、Default Switchで十分対応できる。
Windows Server用として登場したHyper-Vでは、仮想マシンからのインターネットアクセスを行わせるには、仮想スイッチを「外部ネットワーク」として作成する必要があり、ブログ記事などにもこうした記述が多い。
これは、「過去の情報」である。現在では、Windows Serverにも「WinNAT」と呼ばれるNAT(ネットワークアドレス変換)技術が導入されており、仮想ネットワークからインターネットアクセスが可能になる。WinNATの機能は、Windows 10 Anniversary Update(バージョン1607)で導入され、Windows 10 Fall Creators Update(バージョン1709)でHyper-Vの「Default Switch」に組み込まれた機能だ。
しかしWindows 10では、デフォルトで作られる「Default Switch」に必要な設定が全て行われており、これを使うだけでよい。逆に、他の仮想スイッチ、特に「外部ネットワーク」を設定してしまうと、ホスト側のネットワークドライバが差し替えられるなどの問題が起きて、かえってトラブルを招きやすい。
Windows Insider Programのプレビュー版での経験であるが、「外部ネットワーク」(後述)に設定したHyper-Vの仮想スイッチを変更していて、ホストWindowsがクラッシュしてブルースクリーンになったことや、外部ネットワークに設定した仮想スイッチを削除できなくなったことがある。
仮想マシンのネットワーク
物理的なネットワーク(LAN)は、スイッチングハブやネットワークアダプター(ネットワークカードまたはネットワークインタフェース)、ケーブルなどで構成されている。現在では、この中でもスイッチングハブがネットワークを構成している。一般に機器名としては「スイッチングハブ」と呼ばれるが、「ネットワークスイッチ」ともいう。
Hyper-Vの「仮想スイッチ」とは、仮想的なスイッチングハブによって構築された仮想ネットワークのことだ。仮想マシンは、1つの仮想ネットワークアダプターに対して、1つの仮想スイッチを指定できる。これは、仮想マシンを特定の仮想ネットワークに接続することを意味する。このとき、仮想マシンから見て、物理マシンで動作しているWindows OSがHyper-Vのホストオペレーティングシステム(ペアレントパーティション)である。本稿では、これを「ホストWindows」と表記する。
Hyper-Vの仮想スイッチ
仮想スイッチは、仮想化されたネットワークを表す。仮想スイッチの設定に応じて、ホスト側には仮想ネットワークドライバなどが組み込まれる。仮想スイッチは、具体的なIPアドレスを持つ仮想ネットワークとして動作する。
なお、ホストWindowsにも仮想スイッチの設定に応じて仮想ネットワークアダプターのデバイスドライバが組み込まれ、仮想マシンとのネットワーク相互アクセスに使われる。このため、Hyper-Vで仮想スイッチを追加/設定した場合、仮想スイッチのタイプに応じて、ホスト側に仮想ネットワークアダプターが組み込まれ、場合によっては、物理ネットワークアダプターの設定が変更される。
こうした仮想ネットワーク機能や仮想ネットワークアダプタードライバは、Hyper-V以外でも利用される。例えば、WSL 2やWindowsサンドボックスなどは、仮想ネットワークドライバを追加するが、これらは、Hyper-Vの仮想スイッチマネージャーの管理外にある。
これらに関しては、設定を変更、追加などを行うユーザーインタフェースがないため、「アダプターの設定の変更」([コントロールパネル]−[ネットワークと共有センター])やレジストリー編集などで、うっかり削除などを行わないように注意されたい。同様に仮想スイッチが設定する仮想ネットワークアダプターの制御も、Hyper-Vの仮想スイッチマネージャーで行い、ドライバを勝手に削除しないようにする。
4種類ある仮想スイッチ
Hyper-Vの仮想スイッチには、「Default Switch」「外部ネットワーク」「内部ネットワーク」「プライベートネットワーク」の4種類がある。その違いを下表に示す。ただし、「Default Switch」は、1つしか存在できず、Hyper-Vの初期設定に最初から含まれているため追加できない(削除もできない)。ユーザーが作成可能なのは「外部ネットワーク」「内部ネットワーク」「プライベートネットワーク」の3つのみである。
仮想スイッチの種類 | Default Switch | 外部ネットワーク | 内部ネットワーク | プライベートネットワーク |
---|---|---|---|---|
仮想マシン ←→ 仮想マシン | ○ | ○ | ○ | ○ |
仮想マシン ←→ ホスト | ○ | ○ | ○ | × |
仮想マシン ←→ 物理ネットワーク(LAN) | × | ○ | × | × |
仮想マシン → インターネット | ○ | ○ | × | × |
Hyper-Vの仮想スイッチの違い |
「プライベートネットワーク」仮想スイッチとは
「プライベートネットワーク」仮想スイッチは、仮想マシンだけの仮想ネットワークを作る。複数の仮想ネットワークを持つような場合や外部との接触を禁じるような場合に使う仮想スイッチ設定だが、おそらくクライアントであるWindow 10で使うメリットはほとんどないと思われる。悪意のあるソフトウェアのテストなどなら、Hyper-Vの仮想マシンよりも、Windowsサンドボックスの方が適しているだろう。
Copyright© Digital Advantage Corp. All Rights Reserved.