Hyper-V Server2019 をNATで構築!

Hyper-V Server 2019を構築して、
仮想マシンを動かせる環境を構築してみました。

今回の想定として、
ホストマシンのネットワークと、
ゲストマシンのネットワークセグメントは分けて動かしたいと考えています。

=====想定ネットワーク=====
・Hyper-V Server 2019(ホストマシン) :192.168.30.10
・ゲストマシンネットワーク :172.16.10.0/24
==================

上記のネットワークを構成します。
またゲストマシンからもインターネットにも抜けられるようNATを使って構成します。

GUIがあればネットワークと共有センターなどから操作ができますが、
Hyper-V Server 2019はOSがCore仕様なので、
GUIを使うことができません…。
そこで今回はPowerShellにて設定を投入したいと思います。

A.Hyper-V仮想スイッチを作成する

Hyper-Vの仮想マシンで使うためのネットワークインターフェース(仮想スイッチ)を作成します。
今回は内部向けで作成します。

New-VMSwitch -SwitchName <仮想スイッチ名> -SwitchType Internal
※<仮想スイッチ名>には任意のスイッチ名を入力することができます。

今回の設定では下記のように設定しました。
New-VMSwitch -SwitchName IntNAT1 -SwitchType Internal

実行後、実行結果が表示されます。
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
IntNAT1 Internal

B.NAT用ゲートウェイを定義する

A.で作成した仮想スイッチにIPアドレスを割り当てて、
仮想マシンはそこをゲートウェイとして利用できるようにします。

下記のコマンドを実行して、
現在のマシン上にのネットワークインターフェース一覧を取得します。

Get-NetAdapter

現在のネットワークインターフェース一覧が表示されます。

Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
SXB1 QR3C ポート 4 Intel(R) Ethernet Server Adapter I…#4 13 Disconnected 00-11-22-33-44-55 0 bps
vEthernet (IntVNAT1) Hyper-V Virtual Ethernet Adapter 14 Up 00-11-22-33-44-00 10 Gbps
イーサネット Intel(R) Ethernet Connection X722 fo… 10 Disconnected 00-11-22-33-44-BB 1 Gbps
SXB1 QR3C ポート 2 Intel(R) Ethernet Server Adapter I…#2 9 Disconnected 00-11-22-33-44-11 0 bps
SXB1 QR3C ポート 3 Intel(R) Ethernet Server Adapter I34… 7 Disconnected 00-11-22-33-44-EE 0 bps
SXB1 QR3C ポート 1 Intel(R) Ethernet Server Adapter I…#3 6 Up 00-11-22-33-44-CC 1 Gbps

ここでA.で作成したインターフェースの「ifIndex」を確認します。
(上記で作成したインターフェースを確認すると「14」ですね)

次に、インターフェースにIPを設定します。

New-NetIPAddress -IPAddress <設定したいIPアドレス> -PrefixLength <サブネットマスク> -InterfaceIndex <ifIndex番号>

今回の設定ではゲートウェイを172.16.10.1/24 と設定したいので、
下記のように設定しました。
New-NetIPAddress -IPAddress 172.16.10.1 -PrefixLength 24 -InterfaceIndex 14

実行後、実行結果が表示されます。

IPAddress : 172.16.10.1
InterfaceIndex : 14
InterfaceAlias : vEthernet (IntNAT1)
AddressFamily : IPv4
Type : Unicast
PrefixLength : 24
PrefixOrigin : Manual
SuffixOrigin : Manual
AddressState : Tentative
ValidLifetime : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource : False
PolicyStore : ActiveStore

IPAddress : 172.16.10.1
InterfaceIndex : 14
InterfaceAlias : vEthernet (IntNAT1)
AddressFamily : IPv4
Type : Unicast
PrefixLength : 24
PrefixOrigin : Manual
SuffixOrigin : Manual
AddressState : Invalid
ValidLifetime : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource : False
PolicyStore : PersistentStore

C.NAT対象ネットワークを定義する

NAT対象とするネットワークアドレスレンジを定義します。

New-NetNat -Name <定義名> -InternalIPInterfaceAddressPrefix <NAT対象とするネットワークアドレスレンジ/サブネットマスク>

今回の設定では仮想マシンのIP(=NAT対象)を172.16.10.0/24 としたいので 下記のように設定しました。
New-NetNat -Name IntNAT1 -InternalIPInterfaceAddressPrefix 172.16.10.0/24

実行後、実行結果が表示されます。

Name : IntNAT1
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 172.16.10.0/24
IcmpQueryTimeout : 30
TcpEstablishedConnectionTimeout : 1800
TcpTransientConnectionTimeout : 120
TcpFilteringBehavior : AddressDependentFiltering
UdpFilteringBehavior : AddressDependentFiltering
UdpIdleSessionTimeout : 120
UdpInboundRefresh : False
Store : Local
Active : True

ここまで設定すればNATの設定は完了です。

あとは、仮想マシンを作成し、
仮想マシンのネットワークインターフェースを上記で作成したインターフェースを選択します。

仮想マシン上のネットワーク設定は

◆C.で設定したアドレスレンジ内のIPを設定します
◆デフォルトゲートウェイはB.で設定したIPアドレスを設定します
◆DNSは名前解決ができるDNSサーバーを指定します。

インターネットも見られることが確認できました。

問題なさそうですが、動作しているかを確認するコマンドをHyper-V ホストのPowerShellで実行します。

Get-NetNatSession

NatName : IntNAT1
InternalRoutingDomainId : {b1082-2b18-b4f-b3d5-a78d9}
Protocol : 17
InternalSourceAddress : 172.16.10.101
InternalSourcePort : 123
InternalDestinationAddress : 13.70.22.122
InternalDestinationPort : 123
ExternalSourceAddress : 192.168.30.10
ExternalSourcePort : 64207
ExternalDestinationAddress : 13.70.22.122
ExternalDestinationPort : 123

NatName : IntNAT1
InternalRoutingDomainId : {b102-2b8-4b4f-3d5-9cdd49}
Protocol : 17
InternalSourceAddress : 172.16.10.101
InternalSourcePort : 49518
InternalDestinationAddress : 8.8.8.8
InternalDestinationPort : 53
ExternalSourceAddress : 192.168.30.10
ExternalSourcePort : 64234
ExternalDestinationAddress : 8.8.8.8
ExternalDestinationPort : 53

・・・・

上記のように現在のNAT動作一覧が表示されます。
仮想マシンが複数起動している場合や、通信が多い場合などは
表示される件数も膨大になります。

ホストとゲストのIP体系を変えたい場合でも、
NATを使うことで問題なく利用することができそうです!

コメント

コメントを残す