こんにちは。SB C&Sの湯村です。「基礎から学ぶ!Hyper-V 仮想化入門 」シリーズ第2回は、「仮想スイッチの作成」です。Hyper-Vの仮想ネットワークは初心者がつまずきやすい要素ですので、理解を深めていきましょう!
1. Hyper-V の仮想ネットワーク
1.1. 仮想ネットワークの構成要素
仮想スイッチはHyper-Vホストに作成される仮想のネットワークスイッチです。Hyper-V上の仮想マシンは、仮想スイッチ経由で物理ネットワークに接続したり、仮想マシン間で通信を行います。
仮想マシンが外部の物理ネットワークと通信を行うために必要な要素は、仮想NIC・仮想スイッチ・物理NICの3つです。
物理マシンにCPUやメモリ等のハードウェアが搭載されているのと同様に、仮想マシンには仮想化されたハードウェアを搭載できます。子パーティション内に作成された仮想マシンに仮想NICと呼ばれる仮想的なネットワークカードを付与し、IPアドレスを割り当てることでネットワーク通信 を行うことができます。
※仮想NICについては「第3回 仮想マシンの作成 」でご紹介します。
仮想マシンから物理ネットワークへの通信は、Hyper-Vホストに搭載されている物理NICを経由しますが、仮想NICと物理NICをつなぐためにL2スイッチの役割を持つ仮想スイッチを作成する必要があります。
ポイントとして、仮想スイッチに紐づけられた物理NICには、IPアドレスが設定されなくなります。
本来物理マシンに搭載されているNICはIPアドレスをもちますが、仮想スイッチに紐づけられた物理NICは、L2スイッチのアップリンクポートのように認識されます。 そして、管理OSや子パーティションの仮想マシンは、仮想NICでその仮想スイッチに接続することになります。 つまり、IPアドレスが設定されるのは仮想NICとなり 、物理NICはIPアドレスをもたないただの "経路" になります。
Hyper-Vで作成できる仮想スイッチは3種類ありますので、それぞれの仮想スイッチがどのような目的で使用されるのかご紹介します。
1.2. 外部仮想スイッチ
「外部仮想スイッチ」を使用すると、子パーティションの仮想マシンが物理NICを経由して物理ネットワークに接続することができます。例えば、仮想マシンをインターネットに接続させたい時は外部仮想スイッチを使用します。一番イメージが湧きやすく、よく使われている仮想スイッチです。1つの物理NICに対して複数の外部仮想スイッチを作成することはできません。
下図は、外部仮想スイッチを使用した仮想ネットワークの構成例です。本記事の構築環境と同じ構成となっています。この場合、管理OSはローカルネットワークに接続しており、同じネットワーク上にある管理用端末から管理OSへ接続する構成です。そのため、管理OSがインターネット等の外部ネットワークへ接続することはできません。
後ほどの手順でもご紹介しますが、外部仮想スイッチを作成する際、[管理オペレーティング システムにこのネットワーク アダプターの共有を許可する] という項目にデフォルトでチェックが入っています。
このまま外部仮想スイッチを作成すると、下図のように管理OSに仮想NICが自動で付与され、管理OSも外部仮想スイッチ経由で外部ネットワークへ接続する構成となります。
今回の構築環境では、管理OSを外部ネットワークに接続させないためチェックを入れませんが、「一時的に接続するネットワークを変更してWindows Updateを行いたい」「バックアップ経路で仮想スイッチに割り当てられている物理NICを併用したい」等、運用方針やハードウェア制限の都合により、管理OSを特定の仮想スイッチ経由で外部ネットワークに接続させたい場合はここにチェックを入れると実現できます。
1.3. 内部仮想スイッチ
「内部仮想スイッチ」は、その名の通りHyper-Vホストの中で完結した仮想スイッチです。内部仮想スイッチを作成すると管理OS側に仮想NICが自動で付与されます。そのため、子パーティションの仮想マシン同士、または管理OSと子パーティションの仮想マシン間で通信ができます。外部ネットワークへ接続しないため、テスト環境などで使用されます。
1.4. プライベート仮想スイッチ
「プライベート仮想スイッチ」は、子パーティションの仮想マシン間でのみ通信できる仮想スイッチです。内部仮想スイッチとは異なり、管理OSに仮想NICが作成されません。外部ネットワークだけでなく管理OSからも分離された環境です。
2. 本記事での構築対象
今回使用した環境については、「第1回 Hyper-Vのインストール」と変わりませんのでこちらの記事をご覧ください。
本記事では下図の赤枠部分を構築します。また、これから説明する構築手順は、「Hyper-Vホスト1」に対する手順のみを記載していますので、2台以上のホストで構築する際は、それぞれに対して同じ手順を行ってください。
3. 外部仮想スイッチの作成
今回は、外部仮想スイッチを作成する手順をご紹介します。
1. Hyper-Vホスト1のサーバーマネージャーから、Hyper-Vマネージャーを起動します。
- サーバーマネージャーで [ツール] をクリックします。
- [Hyper-V マネージャー] をクリックします。
2. Hyper-Vホスト1(hv-host1)で仮想スイッチマネージャーを起動します。
- [HV-HOST1] を選択します。
- [仮想スイッチマネージャー] をクリックします。
- 「どの種類の仮想スイッチを作成しますか」の欄で [外部] を選択します。
- [仮想スイッチの作成] をクリックします。
4. 仮想スイッチに関する情報を設定します。
- 「名前」に任意の名前を入力します。
※本環境では [vm-switch] と入力しています。 - 「接続の種類」では [外部ネットワーク] を選択します。
- 外部仮想スイッチに紐づける物理NICをプルダウンから選択します。
※既に管理用で利用しているNICを選択しないように気を付けましょう。以下のようにネットワークアダプター情報で対応しているデバイス名を確認してから行うと安全です。
<管理OSのネットワークアダプター情報> - [管理オペレーティング システムにこのネットワーク アダプターの共有を許可する] のチェックを外します。
※「1.2. 外部仮想スイッチ」でご紹介したように、外部仮想スイッチを作成する際はこの項目にチェックを入れておくと、管理OS側に仮想NICが自動で付与され、管理OSも外部環境へ接続できるようになります。 - [OK] をクリックします。
5. 警告が表示されますが、[はい] をクリックします。
6. 最後に、外部仮想スイッチに割り当てた物理NICのプロパティ情報を確認します。割り当てる前は「インターネット プロトコル バージョン4(TCP/IPv4)」にチェックが入っていますが、割り当てた後はチェックが外れ、代わりに「Hyper-V 拡張可能仮想スイッチ」にチェックが入っていることが確認できます。これは物理NICがIPアドレスを持たず "ただの経路" となっていることを意味しています。
4. TIPS ~ 物理 NIC チーミングによる冗長設定 ~
今回の構築では実施していませんでしたが、可用性や性能面での要件にあわせて「物理NICのチーミング」を行うとよいでしょう。チーミングとは、複数の物理NICを束ねることによって、帯域幅の拡張や冗長性を確保できる仕組みです。
Hyper-V仮想ネットワークでチーミングを設定するためには、「Switch Embedded Teaming(SET)」を構築します。SETはWindows Server 2016以降のOSに標準で組み込まれているチーミング技術です。SETの構築はPowerShellで簡単に行うことができます。以下のようにNew-VMSwitchコマンドで仮想スイッチの作成と同じタイミングでチーミングも設定できます。
(実行例)
-EnableEmbeddedTeaming $true
コマンド実行後にネットワークアダプターの情報を見ると、下図のようにチーミングされてひとつになったNIC「vEthernet」が追加されます。これが仮想スイッチ「vm-switch」に紐づいているということも確認できます。
このようにとても簡単にチーミングを設定できますので、是非みなさんもやってみてください。
今回は、初心者がつまずきやすい仮想ネットワークについてご紹介しました。次回の記事では、仮想マシンを作成して今回の仮想スイッチに接続する手順をご紹介します。
他のおすすめ記事はこちら
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 技術統括部 第1技術部 2課
湯村 成一 - Seiichi Yumura -
Dell Technologies社製品のプリセールス業務を行うエンジニア。
主にVxRail・Azure Stack HCIといったHCI製品を担当している。