Come abilitare la virtualizzazione annidata in una macchina virtuale di AzureHow to enable nested virtualization in an Azure VM

La virtualizzazione annidata è supportata in diverse famiglie di macchine virtuali di Azure.Nested virtualization is supported in several Azure virtual machine families. Questa funzionalità offre una notevole flessibilità e supporta vari scenari, tra cui ambienti di sviluppo, test, formazione e dimostrazione.This capability provides great flexibility in supporting scenarios such as development, testing, training, and demonstration environments.

Questo articolo illustra come abilitare Hyper-V in una macchina virtuale di Azure e configurare la connettività Internet per tale macchina virtuale guest.This article steps through enabling Hyper-V on an Azure VM and configuring Internet connectivity to that guest virtual machine.

Creare una VM di Azure in grado di supportare l'annidamentoCreate a nesting capable Azure VM

Creare una nuova VM Azure di Windows Server 2016.Create a new Windows Server 2016 Azure VM. Per un elenco completo delle dimensioni delle macchine virtuali che supportano l'annidamento, consultare l'articolo sulle unità di calcolo di Azure.For a complete list of virtual machine sizes that support nesting, check out the Azure Compute Unit article.

Ricordarsi di scegliere dimensioni di macchina virtuale sufficienti a supportare le richieste di una macchina virtuale guest.Remember to choose a VM size large enough to support the demands of a guest virtual machine. In questo esempio viene usata una macchina virtuale di Azure di dimensioni D3_v3.In this example, we are using a D3_v3 size Azure VM.

Per informazioni sulla disponibilità delle macchine virtuali della serie Dv3 o Ev3 nelle diverse aree geografiche, vedere qui.You can view the regional availability of Dv3 or Ev3 series virtual machines here.

Nota

Per istruzioni dettagliate sulla creazione di una nuova macchina virtuale, vedere Creare e gestire macchine virtuali di Windows con il modulo Azure PowerShellFor detailed instructions on creating a new virtual machine, see Create and Manage Windows VMs with the Azure PowerShell module

Connettersi alla macchina virtuale di AzureConnect to your Azure VM

Creare una connessione Desktop remoto alla macchina virtuale.Create a remote desktop connection to the virtual machine.

  1. Fare clic sul pulsante Connetti nelle proprietà della macchina virtuale.Click the Connect button on the virtual machine properties. Verrà creato e scaricato un file Remote Desktop Protocol, con estensione rdp.A Remote Desktop Protocol file (.rdp file) is created and downloaded.

  2. Per connettersi alla VM, aprire il file RDP scaricato.To connect to your VM, open the downloaded RDP file. Se richiesto, fare clic su Connetti.If prompted, click Connect. In un Mac, è necessario un client RDP come questo client Desktop remoto disponibile nel Mac App Store.On a Mac, you need an RDP client such as this Remote Desktop Client from the Mac App Store.

  3. Immettere il nome utente e la password specificati al momento della creazione della macchina virtuale e quindi fare clic su OK.Enter the user name and password you specified when creating the virtual machine, then click Ok.

  4. Durante il processo di accesso potrebbe essere visualizzato un avviso relativo al certificato.You may receive a certificate warning during the sign-in process. Fare clic su o Continua per procedere con la connessione.Click Yes or Continue to proceed with the connection.

Abilitare la funzionalità Hyper-V nella macchina virtuale di AzureEnable the Hyper-V feature on the Azure VM

È possibile configurare queste impostazioni manualmente oppure usare lo script di PowerShell fornito da Microsoft per automatizzare la configurazione.You can configure these settings manually or we have provided a PowerShell script to automate the configuration.

Opzione 1: Usare uno script di PowerShell per configurare la virtualizzazione annidataOption 1: Use a PowerShell script to configure nested virtualization

Lo script di PowerShell per abilitare la virtualizzazione annidata in un host Windows Server 2016 è disponibile in GitHub.A PowerShell script to enable nested virtualization on a Windows Server 2016 host is available on GitHub. Lo script verifica i prerequisiti e quindi configura la virtualizzazione annidata nella macchina virtuale di Azure.The script checks pre-requisites and then configures nested virtualization on the Azure VM. Per completare la configurazione, è necessario riavviare la macchina virtuale di Azure.A restart of the Azure VM is necessary to complete the configuration. Questo script potrebbe funzionare anche in altri ambienti, ma non vengono fornite garanzie in tal senso.This script may work in other environments but is not guaranteed. Per una dimostrazione video sulla virtualizzazione annidata in esecuzione in Azure, vedere il post di blog di AzureCheck out the Azure blog post with a live video demonstration on nested virtualization running on Azure! https://aka.ms/AzureNVblog.https://aka.ms/AzureNVblog.

Opzione 2: Configurare manualmente la virtualizzazione annidataOption 2: Configure nested virtualization manually

  1. Nella macchina virtuale di Azure aprire PowerShell come amministratore.On the Azure VM, open PowerShell as an Administrator.

  2. Abilitare la funzionalità Hyper-V e gli strumenti di gestione.Enable the Hyper-V feature and Management Tools.

    Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
    

    Avviso

    Questo comando riavvia la macchina virtuale di Azure.This command restarts the Azure VM. Durante il processo di riavvio la connessione RDP viene interrotta.You will lose your RDP connection during the restart process.

  3. Dopo il riavvio della macchina virtuale di Azure riconnettersi alla macchina virtuale tramite RDP.After the Azure VM restarts, reconnect to your VM using RDP.

Configurare la connettività Internet per la macchina virtuale guestSet up internet connectivity for the guest virtual machine

Creare una nuova scheda di rete virtuale per la macchina virtuale guest e configurare un gateway NAT per abilitare la connettività Internet.Create a new virtual network adapter for the guest virtual machine and configure a NAT Gateway to enable Internet connectivity.

Creare un commutatore di rete virtuale NATCreate a NAT virtual network switch

  1. Nella macchina virtuale di Azure aprire PowerShell come amministratore.On the Azure VM, open PowerShell as an Administrator.

  2. Creare un commutatore interno.Create an internal switch.

    New-VMSwitch -Name "InternalNAT" -SwitchType Internal
    
  3. Visualizzare le proprietà del commutatore e prendere nota del valore di ifIndex della nuova scheda.View the properties of the switch and note the ifIndex for the new adapter.

    Get-NetAdapter
    

    NetAdapter

    Nota

    Prendere nota del valore di "ifIndex" per il commutatore virtuale appena creato.Take note of the "ifIndex" for the virtual switch you just created.

  4. Creare un indirizzo IP per il gateway NAT.Create an IP address for the NAT Gateway.

Per poter configurare il gateway, sono necessarie alcune informazioni sulla rete:In order to configure the gateway, you need some information about your network:

  • IPAddress: l'IP del gateway NAT specifica l'indirizzo IPv4 o IPv6 da usare come indirizzo predefinito del gateway per la subnet di rete virtuale.IPAddress - The NAT Gateway IP specifies the IPv4 or IPv6 address to use as the default gateway address for the virtual network subnet. Il formato generico è a.b.c.1, ad esempio "192.168.0.1".The generic form is a.b.c.1 (for example, "192.168.0.1"). Mentre la posizione finale non deve essere 1, in genere è (basata sulla lunghezza del prefisso).While the final position doesn't have to be .1, it usually is (based on prefix length). In genere è consigliabile usare uno spazio degli indirizzi di rete privata conforme al documento RFC 1918.Typically you should use an RFC 1918 private network address space.

  • PrefixLength: la lunghezza del prefisso della subnet definisce le dimensioni della subnet locale (subnet mask).PrefixLength - The subnet prefix length defines the local subnet size (subnet mask). La lunghezza del prefisso della subnet è un valore intero compreso tra 0 e 32.The subnet prefix length will be an integer value between 0 and 32. Con 0 viene eseguito il mapping all'intera rete Internet, mentre con 32 si consente il mapping di un solo IP.0 would map the entire internet, 32 would only allow one mapped IP. I valori comuni sono compresi tra 24 e 12 a seconda del numero di IP che è necessario collegare al NAT.Common values range from 24 to 12 depending on how many IPs need to be attached to the NAT. Un valore comune di PrefixLength è 24, che corrisponde a una subnet mask 255.255.255.0.A common PrefixLength is 24 -- this is a subnet mask of 255.255.255.0.

  • InterfaceIndex: il valore ifIndex corrisponde all'indice dell'interfaccia del commutatore virtuale creato nel passaggio precedente.InterfaceIndex - ifIndex is the interface index of the virtual switch created in the previous step.

    New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex 13
    

Creare la rete NATCreate the NAT network

Per poter configurare il gateway, è necessario specificare le informazioni sulla rete e sul gateway NAT:In order to configure the gateway, you will need to provide information about the network and NAT Gateway:

  • Name: corrisponde al nome della rete NAT.Name - This is the name of the NAT network.
  • InternalIPInterfaceAddressPrefix: il prefisso della subnet NAT descrive sia il prefisso IP del gateway NAT che la lunghezza del prefisso della subnet definiti in precedenza.InternalIPInterfaceAddressPrefix - The NAT subnet prefix describes both the NAT Gateway IP prefix from above as well as the NAT Subnet Prefix Length from above. Il formato generico è a.b.c.0/lunghezza del prefisso della subnet NAT.The generic form will be a.b.c.0/NAT Subnet Prefix Length.

In PowerShell creare una nuova rete NAT.In PowerShell, create a new NAT network.

New-NetNat -Name "InternalNat" -InternalIPInterfaceAddressPrefix 192.168.0.0/24

Creare la macchina virtuale guestCreate the guest virtual machine

Importante

L'agente guest di Azure non è supportato nelle VM annidate e può causare problemi sia nell'host che nelle VM nidificate.The Azure guest agent is not supported on nested VMs, and may cause issues on both the host and nested VMs. Non installare l'agente di Azure nelle VM annidate e non usare un'immagine per la creazione delle VM nidificate in cui è già installato l'agente guest di Azure.Don't install the Azure agent on nested VMs, and don't use an image for creating the nested VMs that already has the Azure guest agent installed.

  1. Aprire la console di gestione di Hyper-V e creare una nuova macchina virtuale.Open Hyper-V Manager and create a new virtual machine. Configurare la macchina virtuale per l'uso della nuova rete interna creata.Configure the virtual machine to use the new Internal network you created.

    NetworkConfig

  2. Installare un sistema operativo nella macchina virtuale guest.Install an operating system on the guest virtual machine.

    Nota

    Per installare un sistema operativo nella macchina virtuale, è necessario il relativo supporto di installazione.You need installation media for an operating system to install on the VM. In questo caso verrà usato Windows 10 Enterprise.In this case we are using Windows 10 Enterprise.

Assegnare un indirizzo IP alla macchina virtuale guestAssign an IP address to the guest virtual machine

Per assegnare un indirizzo IP alla macchina virtuale guest, è possibile impostare manualmente un indirizzo IP statico nella macchina virtuale guest oppure configurare DHCP nella macchina virtuale di Azure in modo che l'indirizzo IP venga assegnato dinamicamente.You can assign an IP address to the guest virtual machine either by manually setting a static IP address on the guest virtual machine or configuring DHCP on the Azure VM to assign the IP address dynamically.

Opzione 1: Configurare DHCP per l'assegnazione dinamica di un indirizzo IP alla macchina virtuale guestOption 1: Configure DHCP to dynamically assign an IP address to the guest virtual machine

Seguire la procedura seguente per configurare DHCP nella macchina virtuale host per l'assegnazione dinamica degli indirizzi.Follow the steps below to configure DHCP on the host virtual machine for dynamic address assignment.

Installare il server DHCP nella macchina virtuale di AzureInstall DHCP Server on the Azure VM

  1. Aprire Server Manager.Open Server Manager. Nel dashboard fare clic su Aggiungi ruoli e funzionalità.On the Dashboard, click Add roles and features. Verrà visualizzata l'Aggiunta guidata ruoli e funzionalità.The Add Roles and Features Wizard appears.

  2. Nella procedura guidata fare clic su Avanti finché non viene visualizzata la pagina Ruoli server.In wizard, click Next until the Server Roles page.

  3. Selezionare la casella di controllo Server DHCP, fare clic su Aggiungi funzionalità e quindi fare clic su Avanti fino a completare la procedura guidata.Click to select the DHCP Server checkbox, click Add Features, and then click Next until you complete the wizard.

  4. Fare clic su Installa.Click Install.

Configurare un nuovo ambito DHCPConfigure a new DHCP scope

  1. Aprire Gestore DHCP.Open DHCP Manager.

  2. Nel riquadro di spostamento, espandere il nome del server, fare clic con il pulsante destro del mouse su IPv4 e scegliere Nuovo ambito.In the navigation pane, expand the server name, right-click IPv4, and click New Scope. Viene visualizzata la Creazione guidata ambito. Fare clic su Avanti.The New Scope Wizard appears, click Next.

  3. Immettere un nome e una descrizione per l'ambito e quindi fare clic su Avanti.Enter a Name and Description for the scope and click Next.

  4. Definire un intervallo IP per il server DHCP, ad esempio 192.168.0.100 in 192.168.0.200.Define an IP Range for your DHCP Server (for example, 192.168.0.100 to 192.168.0.200).

  5. Fare clic su Avanti finché non viene visualizzata la pagina Gateway predefinito.Click Next until the Default Gateway page. Come gateway predefinito immettere l'indirizzo IP creato in precedenza, ad esempio 192.168.0.1, quindi fare clic su Aggiungi.Enter the IP Address you created earlier (for example, 192.168.0.1) as the Default Gateway, then click Add.

  6. Fare clic su Avanti fino al completamento della procedura guidata senza modificare i valori predefiniti e quindi fare clic su Fine.Click Next until the wizard completes, leaving all default values, then click Finish.

Opzione 2: Impostare manualmente un indirizzo IP statico nella macchina virtuale guestOption 2: Manually set a static IP address on the guest virtual machine

Se non è stato configurato DHCP per l'assegnazione dinamica di un indirizzo IP alla macchina virtuale guest, seguire questa procedura per impostare un indirizzo IP statico.If you did not configure DHCP to dynamically assign an IP address to the guest virtual machine, follow these steps to set a static IP address.

  1. Nella macchina virtuale di Azure aprire PowerShell come amministratore.On the Azure VM, open PowerShell as an Administrator.

  2. Fare clic con il pulsante destro del mouse sulla macchina virtuale guest e quindi su Connetti.Right-click the guest virtual machine and click Connect.

  3. Accedere alla macchina virtuale guest.Sign in to the guest virtual machine.

  4. Nella macchina virtuale guest aprire Centro connessioni di rete e condivisione.On the guest virtual machine, open the Network and Sharing Center.

  5. Configurare la scheda di rete per un indirizzo compreso nell'intervallo della rete NAT creato nella sezione precedente.Configure the network adapter for an address within the range of the NAT network you created in the previous section.

In questo esempio verrà usato un indirizzo compreso nell'intervallo 192.168.0.0/24.In this example you will use an address in the 192.168.0.0/24 range.

Testare la connettività in una macchina virtuale guestTest connectivity in guest virtual machine

Nella macchina virtuale guest aprire il browser e passare a una pagina Web.In the guest virtual machine, open your browser and navigate to a web page. GuestVMGuestVM

Per istruzioni su come abilitare la connettività trasparente tra le macchine virtuali guest e le macchine virtuali di Azure, fare riferimento a questo documento.For instructions on how to enable transparent connectivity between Guest VMs and Azure VMs, please reference this document.