Hyper-V嵌套虚拟化后底层虚拟机没有网络解决方法
上一篇文章介绍了Hyper-v开启嵌套虚拟化功能
但是我创建了一个Pve然后再开了一个Centos7的机器,结果发现本地连不上,原因就是还需要开启混杂功能
开启混杂功能
在虚拟交换机的端口组需要开启混杂功能,否则通信会有问题。
开启混杂的原因: Hyper-V虚拟交换机上只能感知到其上的虚拟机,但无法感知到嵌套后其上虚拟机的子虚拟机的MAC地址,所以通信时候,用子虚拟机通信到 Hyper-V 最底层虚拟交换机就会丢包。
开启方法:
1. 在PowerShell中查看无连接符的MAC地址
命令:Get-VM -Name 虚拟机名称 | Get-VMNetworkAdapter
示例:Get-VM -Name pve | Get-VMNetworkAdapter
注:①获得的MAC地址无连接符。
②多个适配器将有多个MAC地址,都需开启混杂功能。
2.开启混杂功能
命令:Get-VM -Name 虚拟机名称 | Get-VMNetworkAdapter | Where-Object { $_.MacAddress -eq "MAC地址" } | Set- VMNetworkAdapter -MacAddressSpoofing On
示例:Get-VM -Name pve | Get-VMNetworkAdapter | Where-Object { $_.MacAddress -eq "00155D890201" } | Set-VMNetworkAdapter -MacAddressSpoofing On
通过以上操作,Hyper-v里面的的Pve里面的Centos7虚拟机就能访问了!
qadan123
你好,我现在遇到了相同的问题,win11开了win2019虚拟机,在2019虚拟机嵌套开了一个win7虚拟机,2019可以获取ip,但是win7获取不到ip,我在win11HV管理器-虚拟交换机中新建了外部网络、内部网络都无法使用,使用默认的defaultswitch也不行,同样在2019hyper-v管理器新建外部、内部网络也不行,但是在2019中没有defaultswitch了,请问有解决方法吗