Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A virtualização aninhada permite executar Hyper-V dentro de uma máquina virtual, permitindo emular ambientes complexos sem precisar de vários hosts físicos. Este artigo explica como configurar e usar a virtualização aninhada em plataformas Windows suportadas, incluindo pré-requisitos, etapas de configuração e opções de rede. Use este artigo para testar cenários, executar emuladores ou desenvolver soluções que exigem várias camadas de virtualização.
Para saber mais sobre a virtualização aninhada e os cenários suportados, consulte O que é a virtualização aninhada para Hyper-V?.
Pré-requisitos
Processador Intel com tecnologia VT-x e EPT
- O host Hyper-V deve ser Windows Server 2016 ou posterior, ou Windows 10 ou posterior.
- Configuração da VM versão 8.0 ou superior.
Processador AMD EPYC / Ryzen ou posterior
- O host Hyper-V deve ser Windows Server 2022 ou posterior, ou Windows 11 ou posterior.
- Configuração da VM versão 9.3 ou superior.
Observação
O convidado pode ser qualquer sistema operacional convidado suportado pelo Windows. Algumas versões mais recentes do Windows podem usar recursos extras da CPU que melhoram o desempenho. Para habilitar a Virtualização Aninhada em uma VM do Azure, certifique-se de definir Tipo de Segurança como "Padrão".
Habilitar virtualização aninhada
Para habilitar a virtualização aninhada, siga estas etapas:
Crie uma máquina virtual. Consulte os pré-requisitos para as versões de SO e VM necessárias.
Enquanto a máquina virtual estiver no estado de desligamento, execute o seguinte comando no host físico Hyper-V para ativar a virtualização aninhada para a máquina virtual.
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
Inicie a máquina virtual.
Instale Hyper-V dentro da máquina virtual, assim como faria para um servidor físico. Para obter mais informações sobre como instalar o Hyper-V, consulte Instalar o Hyper-V.
Observação
Com o Windows Server 2019 e versões anteriores como VM de primeiro nível, o número de vCPUs deve ser 225 ou menos. Para saber mais sobre limites de máquinas virtuais, consulte Máximos para máquinas virtuais.
Desativar virtualização aninhada
Você pode desativar a virtualização aninhada para uma máquina virtual parada usando o seguinte comando do PowerShell:
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false
Opções de rede
Há duas opções de rede com máquinas virtuais aninhadas:
- Falsificação de endereços MAC
- Rede NAT
Falsificação de endereços MAC
Para que os pacotes de rede sejam roteados através de dois comutadores virtuais, a falsificação de endereços MAC deve ser ativada no primeiro nível (L1) do comutador virtual. Para habilitar a falsificação de endereços MAC, execute o seguinte comando do PowerShell.
Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On
Conversão de endereços de rede (NAT)
A segunda opção depende da conversão de endereços de rede (NAT). Essa abordagem é mais adequada para casos em que a falsificação de endereços MAC não é possível, como em um ambiente de nuvem pública.
Primeiro, um comutador NAT virtual deve ser criado na máquina virtual host (a VM "intermediária"). O exemplo a seguir cria um novo switch interno chamado VmNAT
e cria um objeto NAT para todos os endereços IP na sub-rede 192.168.100.0/24
.
New-VMSwitch -Name VmNAT -SwitchType Internal
New-NetNat –Name LocalNAT –InternalIPInterfaceAddressPrefix “192.168.100.0/24”
Em seguida, atribua um endereço IP ao adaptador de rede:
Get-NetAdapter "vEthernet (VmNat)" | New-NetIPAddress -IPAddress 192.168.100.1 -AddressFamily IPv4 -PrefixLength 24
Cada máquina virtual aninhada deve ter um endereço IP e um gateway atribuídos a ela. O IP do gateway deve apontar para o adaptador NAT da etapa anterior. Você também pode querer atribuir um servidor DNS:
Get-NetAdapter "vEthernet (VmNat)" | New-NetIPAddress -IPAddress 192.168.100.2 -DefaultGateway 192.168.100.1 -AddressFamily IPv4 -PrefixLength 24
Netsh interface ip add dnsserver “vEthernet (VmNat)” address=<my DNS server>