Win10 Hyper-V虚拟机网络配置方式(3)-Defalut Switch

1、 Default Switch虚拟交换机

在windows中启用Hyper-V功能后,win10管理主机的"网络和Internet"中增加了一台网络适配器vEthernet(Default Switch),这是Hyper-V自动安装的一台虚拟交换机。禁用Hyper-V功能后,该网络适配器中"网络和Internet"中消除。否则在Hyper-V管理器中,在"网络和Internet"中都无法删除Default Switch。

在Hyper-V管理器中查看默认安装的Default Switch虚拟交换机的属性见下图图1,可见该虚拟交换机连接到内部网络,并使用网络地址转换协议NAT为虚拟机提供计算机网络的访问权限,便于虚拟访问外网。

Win10 Hyper-V虚拟机网络配置方式(3)-Defalut Switch

图1:windows启用Hyper-V功能时默认创建的虚拟交换机

下图2是启用Hyper-V后的网络配置清单。宿主机即win10管理主机使用动态主机配置协议配置物理网卡的IP地址、子网掩码和默认网关;vEthernet只有IP地址和子网掩码,没有默认网关。

在管理主机的适配器属性查询界面中,vEthernet的TCP/IP4属性是使用固定的IP而不是"自动获取IP地址",但系统重启后该IP地址经常变动。发现规律如下:点win10的关机按钮,关机后再开机,IP地址一般不变;点win10的重启按钮,重新启动后IP地址一般都会变。

Win10 Hyper-V虚拟机网络配置方式(3)-Defalut Switch

图2:启用Hyper-V后管理主机的网络ip配置列表

2、 使用Default Switch虚拟交换机的网络连通性测试

构建如下图3所示的测试环境。管理主机win10创建4台ubuntu虚拟机,物理机A和管理主机win10接入无线路由器的物理LAN口,无线路由器WAN口连接到互联网。

Win10 Hyper-V虚拟机网络配置方式(3)-Defalut Switch

图3:虚拟网络测试环境

管理主机使用动态主机配置协议dhcp动态配置IP;虚拟交换机采用Default Switch的默认配置不做属性修改;四台ubuntu虚拟机的网络适配器使用Default Switch虚拟交换机;ubuntu01和ubuntu02组成A组,操作系统采用动态主机配置协议dhcp;ubuntu03和ubuntu04组成B组,操作系统采用静态IP。

下面测试第一种场景:B组的静态IP地址和子网掩码遵从虚拟交换机的规则。

下面是ubuntu01虚拟机的操作系统启动后的网络状况,ubuntu02类似,不重复列出。从下图中可以看出,Ubuntu虚拟机操作系统使用动态主机配置协议获得的IP地址和子网掩码与内部虚拟机交换机的IP地址和子网掩码相适配,构成同一网段的IP地址;默认网关就是内部虚拟交换机的IP地址,因为虚拟机发出的信息肯定要先送到虚拟交换机;DNS服务器的地址是一个保留的本机环回地址127.0.0.53,使用53号端口,127打头的IP地址都是保留的本机使用的测试地址,主机发送的目的地址为环回地址的IP数据报,不会发送到其他网络,而是使用本机中的协议软件进行处理,该虚拟机的DNS不用特殊配置。

Win10 Hyper-V虚拟机网络配置方式(3)-Defalut Switch

图4:ubuntu虚拟机使用动态IP时得到的网络运行属性

下图图5是ubuntu03虚拟机操作系统启动后的网络状态,ubuntu04与之相似,不重复列出。ubuntu虚拟机中dhcp设置为yes或true,但指定了IP地址和子网掩码,网络生效时会用指定的IP地址和子网掩码,即便default switch的IP地址发生了变化,虚拟机的Ip地址还会使用指定的IP。没有指定默认网关和DNS,让系统自动获取,未指定默认网关,自动使用default switch的地址做为默认网关;未指定DNS,使用本机环回地址,真正能查出域名对应的IP地址肯定在本虚拟机或管理主机是不可能的,需要通过虚拟交换机再到外网的dns server中去查。

本次配置的静态IP地址按照当前Default Switch的IP和掩码规则配置,确保在同一个网段。

Win10 Hyper-V虚拟机网络配置方式(3)-Defalut Switch

图5:ubuntu虚拟机使用静态IP时得到的网络运行属性

该场景下,A组ubuntu虚拟机之间可以相互ping通;管理主机设置合适的防火墙,可以和A组各虚拟机相互ping通;图中的物理机A设置合适的防火墙后,管理主机、各虚拟机都能ping物理机A,但物理机A可以ping通管理主机,但ping不通各虚拟机。

该场景下,B组ubuntu虚拟机之间可以相互ping通;管理主机设置合适的防火墙,可以和B组各虚拟机相互ping通;图中的物理机A设置合适的防火墙后,管理主机、B组各虚拟机都能ping通物理机A,但物理机A可以ping通管理主机,但ping不通各虚拟机。

上述两组虚拟机,不管是自动获得IP,还是配置的静态IP,都和此时Default Switch 的ip地址及子网掩码相匹配,故此时所有虚拟机、管理主机都能相互ping通;都能ping通物理机A,但物理机A能ping通管理主机,但ping不通各个虚拟机。各虚拟机和管理主机一样,都能正常上外网。

下面测试第二种场景:B组的静态IP地址不遵从虚拟交换机的规则。

重启管理主机,默认的虚拟交换机的IP地址由172.17.90.161变成了192.168.107.177,B组虚拟机的静态IP不做作修改,则B组的静态IP地址已经和虚拟交换机的IP规则不一致。管理主机各网络适配器的IP配置情况由图2变成了下图图6的模样。

Win10 Hyper-V虚拟机网络配置方式(3)-Defalut Switch

图6:管理主机重启后vEthernet虚拟交换机的IPv4地址发生了变化

此时采用动态主机配置协议dhcp的A组虚拟机,随着Default Switch地址变化为192.168.107.177,虚拟机的动态IP和默认网关都随之发生变化,虚拟机的IP遵从虚拟交换机的IP规则,默认网关变为虚拟交换机的IP,如下图图7所示。

Win10 Hyper-V虚拟机网络配置方式(3)-Defalut Switch

图7:ubuntu虚拟机使用动态IP时得到的网络运行属性与虚拟交换机相匹配

此时采用静态IP的ubuntu03和ubuntu04的情况如下图图8。网络配置文件dhcp4设置为true或yes,设置dhcp动态主机配置协议生效,但却配置了静态IP,主机重启后ubuntu的IP地址没变,默认网关变成了新的Default Switch的IP地址,因此从虚拟机内部发起的申请会正确走到虚拟交换机,虚拟交换机使用NAT协议,让虚拟机能正常上外网。

Win10 Hyper-V虚拟机网络配置方式(3)-Defalut Switch

图8:ubuntu虚拟机使用静态IP时IP地址不变,自动使用虚拟交换机的IP做为网关

此时A组ubuntu虚拟机、管理主机能相互IP通;ubuntu01和ubuntu02和管理主机一样能正常上外网;A组虚拟机和管理主机能ping通物理机A,但物理机A能ping通管理主机,ping不通各虚拟机。

此时B组ubuntu虚拟机、管理主机在合适的防火墙设置下能相互IP通;ubuntu03和ubuntu04和管理主机一样能正常上外网;B组虚拟机和管理主机能ping通物理机A,但物理机A能ping通管理主机,ping不通各虚拟机。

B组虚拟机能ping通A组虚拟机;A组虚拟机ping不通B组虚拟机。

3、 使用Default Switch的初步总结

使用"网络和Internet"的重置网络功能,删除所有网络适配器然后重新安装网络适配器,可以将网络组件恢复到原始设置,在管理主机的"网络和共享中心"中设置不同网络的网络发现属性。

"禁用Hyper-V"后,再"启用Hyper-V",默认在管理主机上安装虚拟网络交换机vEthernet(Default Switch)。

创建虚拟机,使用该vEthernet做为虚拟机的网络适配器,安装操作系统,采用动态主机配置协议。每次重启管理主机后即便vEthernet的IP地址变动了,各虚拟机还都能正常使用和上外网。

手动配置虚拟机的静态IP,可以在配置文件的dhcp4一行的下面只添加静态IP和掩码,不需要配置默认网关和DNS,dhcp4的true或yes属性也不需要修改。无论虚拟交换机vEthernet(Default Switch)的IP怎样变化,静态配置的虚拟机的IP都不会变化,但网关会随着变化,这样指定了静态IP虚拟机可以正常使用和上外网。

使用静态IP虚拟机A与动态获得IP的虚拟机B,都使用同一台默认的虚拟交换机,在起IP地址规则不同时,虚拟机B能ping通虚拟机A,但A虚拟机ping不通虚拟机B,规则相同时都能互相ping通。

每次重启主机时vEthernet(Default Switch)的IP地址总变化,导致使用动态主机配置协议dhcp的虚拟机的IP地址总变化,很不方便。

Ubuntu虚拟机中,/etc/hostname中存放的是主机名;/etc/hosts中存放的是域名和IP的对应关系。主机名和域名是比较固定的,在虚拟机之间可以引用该域名,但管理主机ping不通虚拟机的域名。

用默认的内部网络虚拟交换机vEthernet(Default Switch) 构建的虚拟网络,网络访问方向是单向的,即由虚拟机可以访问管理主机,可以访问管理主机所在的网络的主机,可以访问外网(当然前提是管理主机能上外网);但管理主机所在网络的主机及其他网络的主机不能访问虚拟机。


分享到:


相關文章: