在WS2016或 Windows 10中 构 建Hyper-V 虚拟交换机(virtual switch)的目的,是让虚拟机通过NAT (network address translation,网络地址转换)访问外部网络。
我们知道,NAT的作用是让专用网络采用单一IP地址连接外部的大型网络,此即意味着专用网络中多台机器只占用大型网络一个IP,从而有利于大型网络的资源分配。NAT案例在实际应中较为常见,例如某个教学机房全部PC都是运行Client Hyper-V的Windows 10,而每台PC都可被网络系统识别为虚拟机。
在Windows 10或WS2016 Hyper-V机器上,然后我们就可以通过三行的PowerShell的命令来执行NAT虚拟交换机。
第一步,我们需要生成一个内部虚拟交换机,该交换机并不连接主机物理网卡,此时主机操作系统具有一个连接虚拟交换机的虚拟网卡。
也就是说,内部交换机所连的虚拟机可以和主机交谈,但它们并不能与主机所连网络进行交流。生成内部虚拟交换机的PowerShell命令行如下所示:
New-VMSwitc h-SwitchName“NATSwitch”-SwitchType Internal
第二步,我们需要将主机管理系统中的虚拟网卡连接到内部虚拟交换机上。此时,通过PowerShell命令可以为虚拟网卡来分配IPv4地址,这也就是我们所要生成的NAT网络的默认网关,该PowerShell命令如下所示:
New-NetIPAddress-IPAddress 192.168.0.1-PrefixLength24-InterfaceAlias“vEthernet (NATSwitch)”
最后需要对运行虚拟交换机的NAT网络配置网络地址,也就是调用虚拟交换机的虚拟机器所需的专用地址段,PowerShell命令如下所示:
New-NetNAT -Name“NATNetwork” -InternalI PInterfaceAddressPrefix 192.168.0.0/24
此时,虚拟交换机上运行的任何的虚拟机所采用的IPv4地址范围应当是192.168.0.0,这些机器需要通过操作系统内的网卡和NAT由 LAN 进行路由。
需要指出的是,此时的虚拟交换机并不具有 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)功能,所以,只能为机器分配静态IP地址,当然我们也可以为其分配DHCP服务器。
为了让NAT虚拟交换机上的虚拟机享有运行在LAN上的DHCP服务,管理员需要为每个客户系统手工分配IPv4地址,这样做较为费事,此时可以考虑为虚拟交换机上的虚拟机分配一台或更多DHCP服务器。
注意,不要让DHCP 服务器连接外部虚拟交换机。
WS2016中 提 供 的PowerShell命令可以进行IP地址分配,具体操作如下:
(1)登录虚拟机(比如名为 My-VM1),命令为 :Enter-PSSession -VMName Petri-VM1
(2)提取所要配置的适配器的名称,命令为:Get-NetAdapter
(3)设置IP地址,子网掩码以及默认网关,命令如下所示:
New-NetIPAddress-InterfaceAlias"Ethernet2"-IPAddress 192.168.0.31-PrefixLength24-DefaultGateway 192.168.0.1
(4)设置DNS(域名服务器),命令如下所示:
Set-DnsClientServerA ddress -InterfaceAlias"Ethernet2"-ServerAddresses"208.67.222.222,208.67.2 20.220"。