LoginSignup
6
3

More than 5 years have passed since last update.

Hyper-Vの仮想ネットワークスイッチを「内部」にして、外部とNAT接続する。

Last updated at Posted at 2018-11-25

概要

Hyper-Vの仮想ネットワークスイッチは「外部」「内部」「プライベート」を選択することが出来ます。

ゲストOSに「外部」スイッチに接続したネットワークアダプターを取り付けて、ホストOSと同じNW帯のIPを振れば外部との通信に何の問題も発生しないのですが、職場等ではIPアドレスが枯渇していたり、IPアドレスの払い出し手続きが面倒だったりします。

ここでは、ゲストOSのネットワークアダプターを仮想ネットワークスイッチにして、内部ネットワークから外部ネットワークへの接続をNAT・IPマスカレードとします。
ゲストOSは外部ネットワークとは異なるNW帯に所属することになり、外部NWからはホストOSと同じIPアドレスに見えます。

また、ここでは続けて外部ネットワークから内部ネットワークのゲストOSサービスに接続する手順も記します。
ポート変換を伴うNAPTによる接続となりますので、基本的にウェルノウンポートによるサービスへの接続が難しくなってきますが、それは許容します。

環境情報

  • ホストOS: Windows10 バージョン1803

  • 外部ネットワークセグメント:192.168.11.0/24

  • 内部ネットワークセグメント:192.168.12.0/24

  • ホストOS IP:192.168.11.9(設定する上では特に必要ありません。)

内部仮想ネットワークスイッチの作成

「Hyper-Vマネージャー」から該当サーバーを右クリックして「仮想スイッチマネージャ」を選択します。

「仮想スイッチの作成」>「どの種類の仮想スイッチを作成しますか」から「内部」を選択して「仮想スイッチの作成」ボタンをクリックします。

設定を以下として「OK」ボタンを押下します。

項目 設定値 備考
名前 nat なんでもOK
メモ (empty) なんでもOK
接続の種類 内部ネットワーク
VLANID
(管理オペレーティングシステムの仮想LAN IDを有効にする)
(nocheck)

コントロールパネルの「ネットワーク接続」画面(ファイル名を指定して実行「ncpa.cpl」で開きます。)に「vEthernet(nat)」が作成されていることを確認します。

内部仮想ネットワークスイッチ「vEthernet(nat)」にIPアドレスを設定

「ネットワーク接続」画面で「vEthernet(nat)」を右クリックして「タブ:ネットワーク」>「インターネットプロトコルバージョン4(TCP/IPv4)」を選択して「プロパティ」ボタンを押下します。

「タブ:全般」で以下を設定して「OK」ボタンを押下します。

  • 「次のIPアドレスを使う」を選択
項目 設定値 備考
IPアドレス 192.168.12.1
サブネットマスク 255.255.255.0
デフォルトゲートウェイ (empty)
  • 「次のDNSサーバーのアドレスを使う」を選択するが、IPアドレスは空白とする。

NAT(IPマスカレード)設定

PowerShellを管理者権限で起動してNAT(IPマスカレード)設定します。

PowerShell
PS C:\WINDOWS\system32> New-NetNat -Name natNetwork -InternalIPInterfaceAddressPrefix 192.168.12.0/24

New-NetNatコマンドでは内部ネットワークのみ指定します。私の環境では外部ネットワークは指定できませんでした。外部ネットワークについては自動で192.168.11.0/24が選択されるようで、特に問題はありません。

仮想マシンの設定

仮想マシンのネットワークアダプターを上記で作成した「nat」にします。

仮想マシンには「192.168.12.0/24」のIPを振ります。また、DNSは明示的に設定する必要があります。私の環境ではGoogleのパブリックDNS「8.8.8.8」としています。

静的NAT(NAPT)の設定

PowerShellを管理者権限で起動してNAT設定します。

PowerShell
PS C:\WINDOWS\system32> Add-NetNatStaticMapping -NatName natNetwork -ExternalIPAddress 0.0.0.0 -InternalIPAddress 192.168.12.11 -ExternalPort 3391 -InternalPort 3389 -Protocol TCP

Add-NetNatStaticMappingコマンドのオプション設定については以下の通りとなっています。

オプション 設定値 備考
NatName natNetwork なんでもOK
ExternalIPAddress 0.0.0.0 外部IPアドレスは全て(0.0.0.0)とします。私の環境では外部IPを指定することはできませんでした。
InternalIPAddress 192.168.12.11 任意の仮想マシンIPを指定します。
ExternalPort 3391 外部向けに任意のポートを指定します。
InternalPort 3389 任意の内部ポートを指定します。
ここではリモートデスクトップのウェルノウンポートを指定しています。
6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3