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を使うことで問題なく利用することができそうです!
コメント