hyper-v用命令方式创建NAT网络

发布时间:2023年12月31日

NAT 概述

NAT 使用主计算机的 IP 地址和端口通过内部 Hyper-V 虚拟网关向虚拟机授予对网络资源的访问权限。

网络地址转换 (NAT) 是一种网络模式,旨在通过将一个外部 IP 地址和端口映射到更大的内部 IP 地址集来转换 IP 地址。 基本上,NAT 使用流量表将流量从一个外部(主机)IP 地址和端口号路由到与网络上的终结点(虚拟机、计算机和容器等)关联的正确内部 IP 地址

此外,NAT 允许多个虚拟机托管需要相同(内部)通信端口的应用程序,方法是将它们映射到唯一的外部端口。

出于所有这些原因,NAT 网络对于容器技术是很常见的

创建 NAT 虚拟网络

  • 以管理员身份打开 PowerShell 控制台。
  • 创建内部交换机。
New-VMSwitch -SwitchName "natsw" -SwitchType Internal

natsw是自己定义的名称

  • 查找刚创建的虚拟交换机的接口索引。

可以通过运行 Get-NetAdapter 来查找接口索引

你的输出应类似下面的形式:

PS C:\Windows\system32> Get-NetAdapter

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
vEthernet (natsw)         Hyper-V Virtual Ethernet Adapter #3          56 Up           00-15-5D-00-02-01        10 Gbps
以太网                    Intel(R) 82579LM Gigabit Network Con...      18 Up           3C-97-0E-86-6E-29         1 Gbps
WLAN                      Intel(R) Centrino(R) Advanced-N 6205          9 Disconnected 6C-88-14-01-B7-B4       240 Mbps
vEthernet (pub)           Hyper-V Virtual Ethernet Adapter #2          38 Up           3C-97-0E-86-6E-29         1 Gbps
以太网 2                  Sangfor SSL VPN CS Support System VNIC        5 Disconnected 00-FF-36-2B-A1-5A        10 Mbps

内部交换机的名称将类似于 vEthernet (SwitchName),接口描述将为 Hyper-V Virtual Ethernet Adapter。 请记下其 ifIndex 以便在下一步中使用。

  • 使用 New-NetIPAddress 配置 NAT 网关。

下面是常规命令:

New-NetIPAddress -IPAddress <NAT Gateway IP> -PrefixLength <NAT Subnet Prefix Length> -InterfaceIndex <ifIndex>

若要配置网关,你将需要一些有关你的网络的信息:

IPAddress - NAT 网关 IP 指定要用作 NAT 网关 IP 的 IPv4 或 IPv6 地址。 常规形式将为 a.b.c.1(例如 172.16.0.1)。 尽管最后一个位置不一定是 .1,但通常是 1(基于前缀长度)。 此 IP 地址位于来宾虚拟机使用的地址范围。 例如,如果来宾 VM 使用 IP 范围 172.16.0.0,则可以使用 IP 地址 172.16.0.100 作为 NAT 网关。

通用网关 IP 为 192.168.0.1

PrefixLength – NAT 子网前缀长度定义的 NAT 本地子网大小(子网掩码)。 子网前缀长度将介于 0 到 32 之间的一个整数值。

0 将映射整个 Internet,32 则只允许一个映射的 IP。 常用值范围从 24 到 12,具体要取决于多少 IP 需要附加到 NAT。

常用 PrefixLength 为 24 – 这是子网掩码 255.255.255.0

InterfaceIndex – ifIndex 是你在上一步中确定的虚拟交换机的接口索引。

本例运行以下内容来创建 NAT 网关:
56是刚才创建的交换机的接口索引

New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex 56


IPAddress         : 192.168.0.1
InterfaceIndex    : 56
InterfaceAlias    : vEthernet (natsw)
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Tentative
ValidLifetime     :
PreferredLifetime :
SkipAsSource      : False
PolicyStore       : ActiveStore
  • 使用 New-NetNat 配置 NAT 网络。

下面是常规命令:

New-NetNat -Name <NATOutsideName> -InternalIPInterfaceAddressPrefix <NAT subnet prefix>

若要配置网关,你将需要提供一些有关网络和 NAT 网关的信息:

Name - NATOutsideName 描述 NAT 网络的名称。 将使用此参数删除 NAT 网络。

InternalIPInterfaceAddressPrefix - NAT 子网前缀同时描述上述 NAT 网关 IP 前缀和上述 NAT 子网前缀长度。

常规形式将为 a.b.c.0/NAT 子网前缀长度

综上所述,对于本示例,我们将使用 192.168.0.0/24

对于我们的示例,运行以下命令以设置 NAT 网络:

New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.0.0/24

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

配置vm的ip地址

由于这个没有配置dhcp,因此,vm需要手工分配一个IP地址,取值范围在刚才创建的nat网络中去一个地址,网关是nat的网关。
譬如 :

ipaddress:192.168.0.2/24
gateway:192.168.0.1
文章来源:https://blog.csdn.net/gsl371/article/details/135308181
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。