WinNATでHyper-V環境でお手軽にNAT構成(Windows Server 2016以降、Windows10 Anniversary Update以降)

検証環境がガラッと変わりまして、Windows Server 2019のHyper-V環境でインターネットには2回NATが必要な状況になりました。

RRASサービスを使うか、NAT専用のVMを構築しようかとも思いましたが、Windows NAT(WinNAT)で簡単にHyper-V環境でのNATが構成可能になっているのでWinNATを利用して構成しました。

公式ドキュメントは下記です。

構成は管理者権限のPowerShellで簡単にできます。下記は例。

New-VMSwitch -SwitchName "SwitchName" -SwitchType Internal
New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex 24
New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.0.0/24

単純に

  • 内部スイッチを作成して
  • そのスイッチに接続しているHyper-VホストのNICにIPアドレスを割り当てて
  • あとはNATの設定を有効にして対象のネットワークアドレスを指定

しているだけです。簡単ですね~。

私の環境では下記のようにしました。「NATSwitch」を作成し、そこに接続する仮想NICに192.168.1.254/24を設定して、192.168.1.0/24をNAT対象のネットワークアドレスに指定しています。

PS C:\Users\Administrator> get-vmswitch -Name NATSwitch

Name      SwitchType NetAdapterInterfaceDescription
----      ---------- ------------------------------
NATSwitch Internal


PS C:\Users\Administrator> Get-NetIPAddress -InterfaceIndex 20


IPAddress         : fe80::1124:40b6:6e1d:9a2a%20
InterfaceIndex    : 20
InterfaceAlias    : vEthernet (NATSwitch)
AddressFamily     : IPv6
Type              : Unicast
PrefixLength      : 64
PrefixOrigin      : WellKnown
SuffixOrigin      : Link
AddressState      : Preferred
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 192.168.1.254
InterfaceIndex    : 20
InterfaceAlias    : vEthernet (NATSwitch)
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Preferred
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : ActiveStore



PS C:\Users\Administrator> get-netnat


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

仮想マシン側は仮想NICをNATSwitchに接続し、192.168.1.0/24のネットワーク上のIPアドレスを設定して、デフォルトゲートウェイを192.168.1.254に指定すれば外部と通信できます。

私はさらに検証環境なので簡単に接続できるように下記のように追加の構成もしておきました。

  • Hyper-VホストにDHCPとDNSのロールを追加
  • 192.168.1.0/24のネットワークに自動的にIPアドレスを付与
    • ゲートウェイおよびDNSに192.168.1.254を指定

DHCPサーバーに関しては該当のネットワークだけにIPアドレスを配布するようにバインディングの設定をしておくと安心ですね。


by

Comments

Leave a Reply