玩转神龙服务器的Hyper-V虚拟化网络之 配置NAT网络

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: 相信已经有同学已经在神龙上部署了Hyper-V了。又可以随心所欲的创建VM玩耍了。但是关于Hyper-V虚拟机的网络配置,相信还有一些同学没有玩过。 首先,我们来简单介绍下Hyper-v的三种虚拟交换机的类型: * **外部交换机** 这种交换机允许虚拟机访问到真实的物理网络。虚拟机之间和Hyper-V Server (这里是我们的神龙物理机)也可以相互访问。 ![imag

相信已经有同学已经在神龙上部署了Hyper-V了。又可以随心所欲的创建VM玩耍了。但是关于Hyper-V虚拟机的网络配置,相信还有一些同学没有玩过。

首先,我们来简单介绍下Hyper-v的三种虚拟交换机的类型:

  • 外部交换机

这种交换机允许虚拟机访问到真实的物理网络。虚拟机之间和Hyper-V Server (这里是我们的神龙物理机)也可以相互访问。

image.png

Hyper-V Server操作系统的直观变化:
创建一个虚拟网卡,将真实网卡的所有协议转移到这个网卡上,真实网卡只保留 LLDP 协议和 Hyper-V Extensible Virtual Switch协议。
真实网卡充当了虚拟交换机的角色。

image.png

  • 内部交换机

这种交换机允许虚拟机以及Hyper-V Server之间相互访问。除非特殊配置,虚拟机无法访问真实网络。

image.png

Hyper-V Server操作系统的直观变化:
创建一个和真实网卡一样的虚拟网卡。真实网卡仍保持原有的功能。

image.png

  • 专用(私有)交换机

这种交换机只允许虚拟机之间相互访问。无法访问Hyper-V Server及真实网络。

image.png

Hyper-V Server操作系统的直观变化:
无任何变化。

真实的网络环境

在真实的物理环境中,我们一般通过创建外部交换机从而让虚拟机能够无需额外配置就能访问。但是在神龙环境中,我们无法这样做。
目前,我们有两种方式来保证虚拟机网络的连通性:

  • 通过 Windows Server 2016 Hyper-V的 DDA (Discrete Device Assignment)功能将实体网卡Passthrough 到VM里。我会在下一篇文章中使用此方法。

这种方法的优点是每一个VM都既可以连外网,可以有独立的对外IP从公网访问VM提供的服务如RDP,IIS等。缺点是配置比较麻烦,需要在阿里云神龙服务器上创建辅助网卡。

  • 通过创建内部交换机再通过NAT的方式来使虚拟机访问网络。

这种方法的优点是每一个VM都既可以连外网,无需任何额外配置。缺点是没有独立的对外IP从公网访问VM提供的服务如RDP,IIS等。

也就是说,我们要做这样一件事:

image.png

本文提供了第二种方法的步骤。为了方便测试,所有步骤使用Powershell 命令。

注意:以下方法仅适用于操作系统为Windows Server 2016 和 Windows 10 或更高的版本的神龙服务器。对于Windows Server 2012 R2, 需要安装额外的组件来完成这一操作。

具体步骤如下:

前置条件

神龙服务器,一块主网卡足以。没有其他要求。

安装Hyper-V

  Enable-WindowsOptionalFeature –Online -FeatureName Microsoft-Hyper-V –All -NoRestart
  Install-WindowsFeature RSAT-Hyper-V-Tools -IncludeAllSubFeature
  Restart-Computer

运行完后会自动重启两次。

创建虚拟交换机

  1. 创建内部交换机。
New-VMSwitch -name "XDragonInternalSwitch" -SwitchType Internal
  1. 创建NAT GateWay.
$NATGatewayIP = "192.168.100.1"
$PrefixLength = 24

$xdragonswitch = Get-NetAdapter | ? {$_.Name -like "*XDragonInternalSwitch*"} 
New-NetIPAddress -IPAddress $NATGatewayIP -PrefixLength $PrefixLength -InterfaceIndex $xdragonswitch.ifIndex 

其中 $NATGatewayIP 是内部交换机的虚拟网卡的IP.这个值和 $PrefixLength可以按实例需要指定。

  1. 创建NAT 网络.
$Prefix = "192.168.100.0/24"
New-NetNat -Name XDragonNATNetwork -InternalIPInterfaceAddressPrefix $Prefix

注意这里的$Prefix要和第2步创建Gateway保持一致性。

创建虚拟机

这里我预先Copy了阿里云的镜像VHD文件win2016_64_dtc_1607_en-us_40G_noxen_20180801.vhd放在了D盘。我会为每一个虚拟机新建一个基于此VHD的差异磁盘。

New-VHD -ParentPath D:\win2016_64_dtc_1607_en-us_40G_noxen_20180801.vhd -Path "D:\Hyper-V\VM1\Virtual Hard Disks\VM1.vhd" -Differencing
New-VM -Name VM1 -MemoryStartupBytes 4GB -BootDevice VHD -VHDPath "D:\Hyper-V\VM1\Virtual Hard Disks\VM1.vhd" -Path "D:\Hyper-V" -Generation 1 -Switch XDragonInternalSwitch
Start-VM -Name VM1

安装DHCP Server (可选)

当要创建多台VM,还为每一个VM配静态IP是一件麻烦事。我们可以在Hyper-v Server上创建DHCP服务器。这样,VM无需任何网络配置就可以正常连接了。

$NatGatewayIP = "192.168.100.1" # 这里必须是内部交换机虚拟网卡的IP
$DNSServers = ("100.100.2.136", "100.100.2.138") # 这里必须是Hyper-V Server的真实DNS Server 配置
$DHCPServerStartIP = "192.168.100.10" # 开始分发的IP, 自定义
$DHCPServerEndIP = "192.168.100.200" # 结束分发的IP, 自定义
$SubnetMask = "255.255.255.0" 

Install-WindowsFeature DHCP -IncludeManagementTools

netsh dhcp add securitygroups
Restart-service dhcpserver

Set-DhcpServerv4DnsSetting -DynamicUpdates "Always" -DeleteDnsRRonLeaseExpiry $True

Add-DhcpServerv4Scope -name "XDragonHyperVVMs" -StartRange $DHCPServerStartIP -EndRange $DHCPServerEndIP -SubnetMask $SubnetMask -State Active
Set-DhcpServerv4OptionValue -DnsServer $DNSServers -Router $NatGatewayIP

或者,不在Hyper-V Server上,可以单独创建一个VM,配成DHCP Server. 原理差不多。

配置虚拟机网络

如果我们在Hyper-V Server或者另起一台VM配了DHCP Server的话,这一步就无需配了。直接就可以连网了。
如果我们没有配置DHCP Server,那么当虚拟机启动后,我们要对虚拟机的网卡做如下的IP的配置:

IP: 192.168.100.2 (NAT 网络范围内任一没有使用的IP都可以)
Subnet: 255.255.255.0 (根据 NAT 网络的Prefix确定)
Gateway: 192.168.100.1 (NATGatewayIP,即Hyper-V Server上内部交换机虚拟网卡的IP)
DNS: 100.100.2.136/100.100.2.138 (Hyper-V Server上真实网卡的DNS)

image.png

这样,虚拟机就可以正常访问外部网络了。

参考:

https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v

https://docs.microsoft.com/en-us/powershell/module/hyper-v/new-vhd?view=win10-ps

https://docs.microsoft.com/en-us/powershell/module/hyper-v/new-vm?view=win10-ps

https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/setup-nat-network

https://docs.microsoft.com/en-us/windows-server/networking/technologies/dhcp/dhcp-deploy-wps

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
10天前
|
JSON 虚拟化 数据格式
Hyper-V 是 Microsoft 提供的一种虚拟化技术
Hyper-V 是 Microsoft 提供的一种虚拟化技术
|
6天前
|
弹性计算 小程序
阿里云服务器4核16G配置租赁价格表,多种ECS实例规格可选
阿里云提供多种4核16G服务器实例,如ECS经济型e、高主频hfg8i、通用型g7/u1/g8i/g8ae等。ECS经济型e实例ecs.e-c1m4.xlarge每月低至70元,适用于游戏、Web、小程序后端等场景
24 1
|
7天前
|
弹性计算 小程序
阿里云4核16G服务器租用费用,有哪些4核16G配置可选?
阿里云提供多种4核16G服务器实例,如经济型e、高主频型、通用型等。ECS经济型e实例ecs.e-c1m4.xlarge价格为70元/月,具备4核16G内存,基础网络带宽0.8Gbps。完整性能参数和更多实例规格详情可在阿里云官网查询。
|
9天前
|
安全 网络协议 云计算
Docker容器网络配置详解
【7月更文挑战第16天】Docker的网络配置是实现容器间以及容器与外部网络通信的基础。通过选择合适的网络模式和配置选项,可以构建高效、安全、可扩展的Docker网络解决方案。
|
19天前
|
运维 网络协议 网络安全
2023网络建设与运维正式赛卷-交换配置
【7月更文挑战第3天】某集团构建了两地三中心网络架构,包括两个数据中心和异地灾备中心,使用OSPF、RIP、ISIS、BGP协议互联。核心设备包括SW1、SW2(数据中心)、SW3(灾备及办事处),以及FW1(总司防火墙)、FW2(办事处防火墙)等。网络拓扑涉及多个VLAN和IP地址段,SW3配置了VRF隔离办事处和Internet流量。SW1配置SNMPv3用于监控,并设置流量镜像。链路故障检测和LLDP启用以确保网络健康。
|
20天前
|
网络协议 网络架构
【网络编程入门】TCP与UDP通信实战:从零构建服务器与客户端对话(附简易源码,新手友好!)
在了解他们之前我们首先要知道网络模型,它分为两种,一种是OSI,一种是TCP/IP,当然他们的模型图是不同的,如下
|
21小时前
|
弹性计算 开发者
个人或学生群体如何选择阿里云服务器配置合适?
**阿里云服务器选择指南**: 对新手开发者、个人与学生, 推荐ECS经济型e实例。2核2G配置, 3M固定带宽, 40G系统盘, 仅99元/年。ecs.e-c1m1.large规格, Intel Xeon Platinum处理器, 适合中小网站、轻量应用。续费同价
20 9
|
11天前
|
网络协议 安全 Python
我们将使用Python的内置库`http.server`来创建一个简单的Web服务器。虽然这个示例相对简单,但我们可以围绕它展开许多讨论,包括HTTP协议、网络编程、异常处理、多线程等。
我们将使用Python的内置库`http.server`来创建一个简单的Web服务器。虽然这个示例相对简单,但我们可以围绕它展开许多讨论,包括HTTP协议、网络编程、异常处理、多线程等。
|
20天前
|
运维 网络协议 网络安全
2023网络建设与运维正式赛卷-交换配置-上
【7月更文挑战第2天】该集团进行数字化转型,构建了两地三中心网络架构,包括两个数据中心和一个异地灾备中心。网络使用OSPF、RIP、ISIS、BGP协议互联,并设有多台交换机、路由器、防火墙和无线控制器。例如,SW1和SW2为核心交换机,SW3为灾备DC的核心交换机,FW1为总公司防火墙,FW2为办事处防火墙,RT1和RT2为路由器,AC1为有线无线控制器。配置中涉及VLAN隔离、端口访问控制、LACP聚合、负载均衡和IPSec VPN,以确保网络稳定性、安全性和可扩展性。已完成的配置需通过客户端测试验证功能正常。
|
20天前
|
网络协议 Linux 开发工具
配置Linux固定IP地址,为什么要固定IP,因为他是通DHCP服务获取的,DHCP服务每次重启都会重新获取一次ip,VMware编辑中有一个虚拟网络编辑器
配置Linux固定IP地址,为什么要固定IP,因为他是通DHCP服务获取的,DHCP服务每次重启都会重新获取一次ip,VMware编辑中有一个虚拟网络编辑器