今回はAzure仮想マシンでHyper-Vを評価する方法の後編となります。

Azure仮想マシン内のHyper-V仮想マシンにインターネットアクセスを提供する

前編で説明したように、Azure仮想マシンの一部のシリーズでは入れ子構造の仮想化がサポートされ、Azure仮想マシンの中でHyper-Vの役割やHyper-Vハイパーバイザーに依存する機能を評価することができます。

しかし、Azure仮想マシンのネットワークの制約があるため、Hyper-V仮想マシンに外部ネットワークへのアクセスを提供するには、NAT(ネットワークアドレス変換)をサポートするHyper-V仮想スイッチ(以下、NATスイッチ)を利用する必要があります。具体的な手順は、以下のドキュメントで説明されていますが、実際にやってみましょう。

Hyper-Vの仮想マシンのネットワーク構成を自動で行うか、手動で行うか2つの方法がありますが、ここでは「InternalNATSwitch」という名前の仮想スイッチを作成し「192.168.0.0/24」という内部ネットワーク用のサブネットを構成して、DHCPサーバを使用したHyper-V仮想マシンへのIPアドレスの自動割り当てと、NATによるインターネット接続を可能にしてみます。

NATスイッチを作成する

まず、Windows PowerShellを使用して「内部ネットワーク(Internal)」タイプの仮想スイッチを作成します。これは「Hyper-Vマネージャー」の「仮想スイッチマネージャー」で「内部ネットワーク」タイプの仮想スイッチを作成するのと同じことをしています。

  • New-VMSwitch -Name "InternalNATSwitch" -SwitchType Internal

「内部ネットワーク」タイプの仮想スイッチを作成すると、Hyper-Vホスト自身がその仮想スイッチに「vEhternet(スイッチ名)」(上の例の場合のスイッチ名はInternalNATSwitch)という仮想的なネットワークインタフェースで内部ネットワークに接続されます。Get-NetAdapterコマンドレットで、このネットワークインタフェースのインデックス番号を取得します。

  • Get-NetAdapter

「vEhternet(スイッチ名)」のネットワークインタフェースにIPアドレス「192.168.0.1」を割り当てます。これが同じスイッチに接続されるHyper-V仮想マシンのデフォルトゲートウェイになります。なお、IPアドレスの設定はコントロールパネル(ネットワーク共有センター)のGUIを使用して設定してもかまいません。

  • New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex インデックス番号
  • Azure“超”入門 第21回

    「内部ネットワーク(Internal Network)」タイプのHyper-V仮想スイッチを作成し、内部ネットワークのデフォルトゲートウェイになるIPアドレスを設定する

最後にNew-NetNATコマンドレットを実行して、NATネットワークを構成します。これでHyper-V仮想マシン用のNATスイッチは完成です。

  • New-NetNat -Name "InternalNat" -InternalIPInterfaceAddressPrefix 192.168.0.0/24
  • Azure“超”入門 第21回

    New-NetNatコマンドレットを使用してNATネットワークを構成する。これだけはWindows PowerShellを使用する以外に方法はない

DHCPサーバで仮想マシンのネットワークを自動構成する

Hyper-Vに作成した仮想スイッチは、NATをサポートするように構成しましたが、内部ネットワークに接続される仮想マシンに対してIPアドレスを自動割り当てするような機能は提供しません。

Hyper-V仮想マシンにNATネットワークのサブネットの範囲から1つのIPアドレスを割り当て、デフォルトゲートウェイをAzure仮想マシンのvEthernet(スイッチ名)に設定したIPアドレスに設定し、DNSサーバとしてAzure仮想マシンが参照するのと同じDNSサーバのIPアドレス(Azureの既定は168.63.129.16)を設定することで、仮想スイッチを介してHyper-Vホストやインターネットにアクセスできるようになります。

スタンドアロンのAzure仮想マシンの場合(同じ仮想ネットワークに接続されたAzure仮想マシンが存在しない場合)、Azure仮想マシンにWindows ServerのDHCPサーバの役割をインストールして構成するのが簡単です。

DHCPサーバの役割をインストールし「192.168.0.101~192.168.0.200」などの範囲でスコープを作成(デフォルトゲートウェイ用の自身のIPアドレスを含めないこと)した上で、デフォルトゲートウェイ(003 Router)の「192.168.0.1」とDNSサーバー(006 DNS Servers)の「168.63.129.16」のスコープオプションを構成します。

  • Azure“超”入門 第21回

    Hyper-V仮想マシンのゲストOSのネットワークを自動構成するために、DHCPサーバーをインストールして構成する

DHCPサーバの構成が完了したら、Hyper-Vに仮想マシンを作成し、ゲストOSをインストールします。その後、ゲストOSがDHCPサーバからIPアドレスを取得でき、インターネットアクセスが可能であることを確認します。

  • Azure“超”入門 第21回

    Hyper-V仮想マシンにゲストOSをインストールして、インターネットアクセスができることを確認する

なお、Azure仮想マシンの仮想ネットワークに他のAzure仮想マシンが存在する場合は、DHCPサーバーの存在が仮想ネットワークのサブネットに意図しない影響を与える可能性があるため、おすすめしません。仮想マシンのゲストOS側で手動で構成することをおすすめします。

また、Windows Server 2016でDocker EE for Winodws Serverの環境を構成している場合、既定で作成される「nat」という名前のスイッチがNATネットワークを既に提供しています。Windows Server 2016は複数のNATネットワークをサポートしていないことに注意してください。

natを仮想マシンで共用することは可能ですが、実行中のコンテナとのIPアドレスの重複に注意してください。Windows Server 2019では、複数のNATネットワークがサポートされるため、「nat」とは別の仮想スイッチを作成してHyper-V仮想マシン用のNATを提供することができます。

著者プロフィール

山市良
Web媒体、IT系雑誌、書籍を中心に執筆活動を行っているテクニカルフリーライター。主にマイクロソフトの製品やサービスの情報、新しいテクノロジを分かりやすく、正確に読者に伝えるとともに、利用現場で役立つ管理テクニックやトラブルシューティングを得意とする。2008年10月よりMicrosoft MVP - Cloud and Datacenter Management(旧カテゴリ: Hyper-V)を連続受賞。ブログはこちら。

主な著書・訳書
「インサイドWindows 第7版 上」(訳書、日経BP社、2018年)、「Windows Sysinternals徹底解説 改定新版」(訳書、日経BP社、2017年)、「Windows Server 2016テクノロジ入門 完全版」(日経BP社、2016年)、「Windows Server 2012 R2テクノロジ入門」(日経BP社、2014年)などがある。