Home > Windows にまつわる e.t.c.

TP5 NAPT 仮想スイッチ


NAPT 仮想スイッチが Build 14295 で仕様が変わりました。

TP5 も Build 14300 なので、TP5 での NAPT 仮想スイッチ作成手順を解説します。

MS サイト情報はこちら

NAT ネットワークの設定 | Microsoft Docs
https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/user-guide/setup-nat-network?WT.mc_id=WD-MVP-36880

 

NAPT 仮想スイッチは、内部仮想スイッチから親パーティションの物理 NIC に NAPT します。

 

コマンドは以下の通り

# 内部仮想スイッチを作る
New-VMSwitch -SwitchName <仮想スイッチ名> -SwitchType Internal

# InterfaceIndex を確認
Get-NetAdapter

# 仮想スイッチに Gateway アドレスを付ける
New-NetIPAddress -IPAddress <ゲートウェイアドレス> -PrefixLength <CIDR> -InterfaceIndex <インターフェースインデックス>

# NAT テーブルを定義する
New-NetNat -Name <NATテーブル名> -InternalIPInterfaceAddressPrefix <ネットワークアドレス/CIDR>

 

削除する場合は、Remove します

Remove-NetNat -Name <NATテーブル名>
Remove-NetIPAddress -IPAddress <ゲートウェイアドレス> -PrefixLength <CIDR> -InterfaceIndex <インターフェースインデックス>
Remove-VMSwitch -SwitchName <仮想スイッチ名>

 

同一 NAPT レンジで再作成すると不安定になるようなので、一度作ったら削除せずに使い続けるのが良さそうです。

 

NAPT仮想スイッチの作成

まずは仮想スイッチを作ります

PS C:\> New-VMSwitch -SwitchName "NAPT-vSW" -SwitchType Internal

Name     SwitchType NetAdapterInterfaceDescription
----     ---------- ------------------------------
NAPT-vSW Internal

 

作成した仮想スイッチの ifIndex を Get-NetAdapter で確認します。
この例では vEthernet (NAPT-vSW)の 25 が割り当たっています。

PS C:\> Get-NetAdapter

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
vEthernet (NAPT-vSW)      Hyper-V Virtual Ethernet Adapter             25 Up           00-15-5D-21-4D-0E        10 Gbps
Test                      Intel(R) Ethernet Server Adapter I...#4      12 Disconnected 00-1B-21-A6-6D-FF          0 bps
DMZ                       Intel(R) Ethernet Server Adapter I...#2      11 Up           00-1B-21-A6-6D-FE         1 Gbps
LAN                       Intel(R) Ethernet Server Adapter I34...       9 Up           00-1B-21-A6-6D-FD         1 Gbps
host                      Intel(R) Ethernet Server Adapter I...#3       4 Up           00-1B-21-A6-6D-FC         1 Gbps

 

仮想スイッチに Gateway アドレスを割り当てます。

PS C:\> New-NetIPAddress -IPAddress 10.0.0.1 -PrefixLength 24 -InterfaceIndex 25


IPAddress         : 10.0.0.1
InterfaceIndex    : 25
InterfaceAlias    : vEthernet (NAPT-vSW)
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         : 10.0.0.1
InterfaceIndex    : 25
InterfaceAlias    : vEthernet (NAPT-vSW)
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Invalid
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : PersistentStore

 

NAT テーブルを作成します。

PS C:\> New-NetNat -Name "NAPT 10.0.0.0/24" -InternalIPInterfaceAddressPrefix 10.0.0.0/24


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

 

これで NAPT 仮想スイッチが出来たので、VM に割り当て、VM で IP 設定をすれば OK です。

 

ポートフォワード

NAPT の後ろにいるホストを外からアクセスするには、ポートフォワードが必要になります。

ポートフォワードは、作成済みの NAT テーブルに実装します。

# ポートフォワード設定
Add-NetNatStaticMapping -NatName <NATテーブル名> -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress <フォワード先 IP> -ExternalPort <受付ポート> -InternalPort <フォワード先ポート>

 

ポートフォワード設定

PS C:\> Add-NetNatStaticMapping -NatName "NAPT 10.0.0.0/24" -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress 10.0.0.100 -ExternalPort 80 -InternalPort 80


StaticMappingID               : 0
NatName                       : NAPT 10.0.0.0/24
Protocol                      : TCP
RemoteExternalIPAddressPrefix : 0.0.0.0/0
ExternalIPAddress             : 0.0.0.0
ExternalPort                  : 80
InternalIPAddress             : 10.0.0.100
InternalPort                  : 80
InternalRoutingDomainId       : {00000000-0000-0000-0000-000000000000}
Active                        : True

 

親パーティションの IP にアクセスすると、NAPT されている VM へポートフォワードされます。

 

関連情報

Hyper-Vネットワークの基本
http://www.vwnet.jp/Windows/WS12R2/Hyper-V/Hyper-V_Network.htm

Windows 10 1709(Fall Creators Update/RS3) Hyper-V の NAPT 仮想スイッチ
http://www.vwnet.jp/Windows/w10/2018010501/w10_1709_NAPT_vSwitch.htm

 

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.