【Hyper-V】 仮想スイッチ(NAPT)を作成・削除する

2020/04/18

  • 2016/03/18 現在、NAT(NAPT) の仮想スイッチは手動では作れないようだ
  • 検証環境は Windows 10 Pro
  • PowerShell は管理者で実行する(New-NetNat が管理者権限が必要なため)

作成

仮想スイッチの作成

仮想スイッチの作成

New-VMSwitch [-Name] <String> -SwitchType NAT -NatSubnetAddress <System.String>

仮想スイッチの作成例

PS> New-VMSwitch "vSwich NAPT" -SwitchType NAT -NatSubnetAddress "10.0.1.0/24"

Name        SwitchType NetAdapterInterfaceDescription
----        ---------- ------------------------------
vSwich NAPT NAT

NAT テーブルの作成

NAT テーブルの作成

New-NetNat [-Name] <String> -InternalIPInterfaceAddressPrefix <System.String>

NAT テーブルの作成例

PS> New-NetNat "VmNAPT" -InternalIPInterfaceAddressPrefix "10.0.1.0/24"

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

確認

ネットワーク接続に指定した名前でインターフェースが作成されていて、
IP アドレスが振られていたら OK

削除

仮想スイッチの削除は 3 ステップ
仮想スイッチに割り当てられた固定 IP も削除する必要がある

NAT テーブルの削除

Remove-NetNat [-Name] <String>

NAT テーブルの削除例

PS> Remove-NetNat "VmNAPT"

仮想スイッチの削除

Remove-VMSwitch [-Name] <String>

仮想スイッチの削除例

PS> Remove-VMSwitch "vSwich NAPT"

固定 IP の削除

割り当てを確認する

PS> netsh interface ipv4 dump
# ----------------------------------
# IPv4 構成
# ----------------------------------
pushd interface ipv4

reset
set global
set interface interface="ローカル エリア接続* 1" forwarding=enabled advertise=enabled nud=enabled ignoredefaultroutes=disabled
set interface interface="Wi-Fi" forwarding=enabled advertise=enabled nud=enabled ignoredefaultroutes=disabled
set interface interface="ローカル エリア接続* 2" forwarding=enabled advertise=enabled nud=enabled ignoredefaultroutes=disabled
set interface interface="Bluetooth ネットワーク接続" forwarding=enabled advertise=enabled nud=enabled ignoredefaultroutes=disabled
add address name="ethernet_32771" address=10.0.1.1 mask=255.255.255.0

この ethernet_32771 が 10.0.1.1 を割り当てている模様

割り当てを削除する

PS> netsh interface ipv4 delete address name="ethernet_32771" address=10.0.1.1

参考