Compartilhar via


Executar o Hyper-V em uma máquina virtual com virtualização aninhada

A virtualização aninhada permite que você execute Hyper-V dentro de uma máquina virtual, permitindo que você emule ambientes complexos sem precisar de vários hosts físicos. Este artigo explica como configurar e usar a virtualização aninhada em plataformas do Windows com suporte, incluindo pré-requisitos, etapas de instalação e opções de rede. Use este artigo para testar cenários, executar emuladores ou desenvolver soluções que exijam várias camadas de virtualização.

Para saber mais sobre virtualização aninhada e cenários com suporte, consulte O que é virtualização aninhada para Hyper-V?.

Pré-requisitos

Processador Intel com tecnologia VT-x e EPT

  • O host Hyper-V deve ser o Windows Server 2016 ou posterior ou o 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 o Windows Server 2022 ou posterior ou o Windows 11 ou posterior.
  • Configuração da VM versão 9.3 ou superior.

Nota

O convidado pode ser qualquer sistema operacional convidado com suporte do Windows. Algumas versões mais recentes do Windows podem usar recursos adicionais de CPU que melhoram o desempenho. Para habilitar a Virtualização Aninhada em uma VM do Azure, defina o Tipo de Segurança como "Padrão".

Habilitar a virtualização aninhada

Para habilitar a virtualização aninhada, siga estas etapas:

  1. Crie uma máquina virtual. Consulte os pré-requisitos para as versões necessárias do sistema operacional e da VM.

  2. Enquanto a máquina virtual estiver desligada, execute o seguinte comando no host físico Hyper-V para habilitar a virtualização aninhada para a máquina virtual.

    Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
    
  3. Inicie a máquina virtual.

  4. 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.

Nota

Com o Windows Server 2019 e versões anteriores como a VM de primeiro nível, o número de vCPUs deve ser 225 ou menos. Para saber mais sobre os limites da máquina virtual, consulte Máximos para máquinas virtuais.

Desabilitar virtualização aninhada

Você pode desativar a virtualização aninhada de 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 para rede com máquinas virtuais aninhadas:

  1. Falsificação de endereço MAC
  2. Rede NAT

Falsificação de endereço MAC

Para que os pacotes de rede sejam roteados por meio de dois comutadores virtuais, a falsificação de endereço MAC deve ser habilitada no primeiro nível (L1) do comutador virtual. Para habilitar a falsificação de endereço MAC, execute o seguinte comando do PowerShell.

Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On

NAT (Conversão de Endereços de Rede)

A segunda opção depende da NAT (conversão de endereços de rede). Essa abordagem é mais adequada para casos em que a falsificação de endereço 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 do host (a VM "intermediária"). O exemplo a seguir cria um novo comutador 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. O IP do gateway deve apontar para o adaptador NAT da etapa anterior. Talvez você também queira 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>

Próximas etapas