Configurare indirizzi IP privati per una macchina virtuale usando l'interfaccia della riga di comando di Azure 2.0

Versioni dell'interfaccia della riga di comando per completare l'attività

È possibile completare l'attività usando una delle versioni seguenti dell'interfaccia della riga di comando:

Le macchine virtuali IaaS e le istanze del ruolo PaaS in una rete virtuale ricevono automaticamente un indirizzo IP privato da un intervallo specificato, in base alla subnet a cui sono connessi. Tale indirizzo viene mantenuto per le macchine virtuali e le istanze del ruolo, fino a quando non vengono rimosse. Disabilitare un'istanza di macchina virtuale o un ruolo interrompendolo da PowerShell, CLI Azure o dal portale di Azure. In questi casi, una volta che l'istanza di macchina virtuale o del ruolo viene riavviata, riceverà un indirizzo IP disponibile dall'infrastruttura di Azure, che potrebbe non essere lo stesso che aveva in precedenza. Se si arresta la macchina virtuale o l’istanza del ruolo dal sistema operativo guest, esso mantiene comunque il suo indirizzo IP.

In alcuni casi, si desidera che una macchina virtuale o istanza del ruolo disponga di un indirizzo IP statico, ad esempio, se la macchina virtuale eseguirà DNS o sarà un controller di dominio. È possibile farlo impostando un indirizzo IP statico privato.

Importante

Prima di iniziare a usare le risorse di Azure, è importante comprendere che Azure al momento offre due modelli di distribuzione, la distribuzione classica e Azure Resource Manager. È importante comprendere i modelli e strumenti di distribuzione prima di lavorare con le risorse di Azure. È possibile visualizzare la documentazione relativa a diversi strumenti facendo clic sulle schede nella parte superiore di questo articolo.

Questo articolo illustra il modello di distribuzione Gestione risorse. È anche possibile gestire un indirizzo IP statico privato nel modello di distribuzione classico.

Scenario

Per illustrare meglio come configurare un indirizzo IP statico per una macchina virtuale, in questo documento verrà utilizzato lo scenario seguente.

Scenario di una rete virtuale

In questo scenario si creerà una macchina virtuale denominata DNS01 nella subnet FrontEnd e la si imposterà in modo che usi l'indirizzo IP statico 192.168.1.101.

Nota

I comandi di esempio dell'interfaccia della riga di comando di Azure 2.0 seguenti prevedono un ambiente semplice già creato. Se si desidera eseguire i comandi illustrati in questo documento, creare innanzitutto l'ambiente di prova descritto in creare una rete virtuale.

Specificare un indirizzo IP statico privato durante la creazione di una macchina virtuale

Per creare una VM denominata DNS01 nella subnet FrontEnd di una rete virtuale denominata TestVNet con un indirizzo IP statico privato di 192.168.1.101, seguire la procedura seguente:

  1. Se questa operazione non è stata ancora eseguita, installare e configurare l'interfaccia della riga di comando di Azure 2.0 e accedere a un account Azure usando il comando az login.

  2. Creare un IP pubblico per la VM con il comando azure network public-ip create. Nell'elenco riportato dopo l'output sono indicati i parametri usati.

    Nota

    Potrebbe essere possibile o necessario usare valori diversi per gli argomenti in questo passaggio e nei passaggi successivi, a seconda dell'ambiente.

    az network public-ip create \
    --name TestPIP \
    --resource-group TestRG \
    --location centralus \
    --allocation-method Static
    

    Output previsto:

    {
         "publicIp": {
             "idleTimeoutInMinutes": 4,
             "ipAddress": "52.176.43.167",
             "provisioningState": "Succeeded",
             "publicIPAllocationMethod": "Static",
             "resourceGuid": "79e8baa3-33ce-466a-846c-37af3c721ce1"
         }
     }
    
    • --resource-group: nome del gruppo di risorse in cui creare l'indirizzo IP pubblico.
    • --name: nome dell'indirizzo IP pubblico.
    • --location: area di Azure in cui creare l'indirizzo IP pubblico.
  3. Eseguire il comando az network nic create per creare una scheda di interfaccia di rete con indirizzo IP privato statico. Nell'elenco riportato dopo l'output sono indicati i parametri usati.

    az network nic create \
    --resource-group TestRG \
    --name TestNIC \
    --location centralus \
    --subnet FrontEnd \
    --private-ip-address 192.168.1.101 \
    --vnet-name TestVNet
    

    Output previsto:

    {
        "newNIC": {
            "dnsSettings": {
            "appliedDnsServers": [],
            "dnsServers": []
            },
            "enableIPForwarding": false,
            "ipConfigurations": [
            {
                "etag": "W/\"<guid>\"",
                "id": "/subscriptions/<guid>/resourceGroups/TestRG/providers/Microsoft.Network/networkInterfaces/TestNIC/ipConfigurations/ipconfig1",
                "name": "ipconfig1",
                "properties": {
                "primary": true,
                "privateIPAddress": "192.168.1.101",
                "privateIPAllocationMethod": "Static",
                "provisioningState": "Succeeded",
                "subnet": {
                    "id": "/subscriptions/<guid>/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/TestVNet/subnets/FrontEnd",
                    "resourceGroup": "TestRG"
                }
                },
                "resourceGroup": "TestRG"
            }
            ],
            "provisioningState": "Succeeded",
            "resourceGuid": "<guid>"
        }
    }
    

    Parametri

    • --private-ip-address: indirizzo IP privato statico per la scheda di interfaccia di rete.
    • --vnet-name: nome della rete virtuale in cui creare la scheda di interfaccia di rete.
    • --subnet: nome della subnet in cui creare la scheda di interfaccia di rete.
  4. Eseguire il comando azure vm create per creare la VM usando l'indirizzo IP pubblico e il gruppo NIC creati in precedenza. Nell'elenco riportato dopo l'output sono indicati i parametri usati.

    az vm create \
    --resource-group TestRG \
    --name DNS01 \
    --location centralus \
    --image Debian \
    --admin-username adminuser \
    --ssh-key-value ~/.ssh/id_rsa.pub \
    --nics TestNIC
    

    Output previsto:

    {
        "fqdns": "",
        "id": "/subscriptions/<guid>/resourceGroups/TestRG/providers/Microsoft.Compute/virtualMachines/DNS01",
        "location": "centralus",
        "macAddress": "00-0D-3A-92-C1-66",
        "powerState": "VM running",
        "privateIpAddress": "192.168.1.101",
        "publicIpAddress": "",
        "resourceGroup": "TestRG"
    }
    

    Parametri diversi dai parametri di base az vm create.

    • --nics: nome della scheda di interfaccia di rete a cui è collegata la VM.

Recuperare le informazioni relative all'indirizzo IP privato statico per una macchina virtuale

Per visualizzare l'indirizzo IP privato statico creato, eseguire il comando seguente dell'interfaccia della riga di comando di Azure e osservare i valori di Private IP alloc-method e Private IP address:

az vm show -g TestRG -n DNS01 --show-details --query 'privateIps'

Output previsto:

"192.168.1.101"

Per visualizzare informazioni sull'IP specifico della scheda di interfaccia di rete, eseguire una query sulla scheda di interfaccia di rete specifica:

az network nic show \
-g testrg \
-n testnic \
--query 'ipConfigurations[0].{PrivateAddress:privateIpAddress,IPVer:privateIpAddressVersion,IpAllocMethod:p
rivateIpAllocationMethod,PublicAddress:publicIpAddress}'

Il risultato sarà simile al seguente:

{
    "IPVer": "IPv4",
    "IpAllocMethod": "Static",
    "PrivateAddress": "192.168.1.101",
    "PublicAddress": null
}

Rimuovere un indirizzo IP statico privato da una macchina virtuale

Non è possibile rimuovere un indirizzo IP privato statico da una scheda di interfaccia di rete nell'interfaccia della riga di comando per le distribuzioni di Resource Manager. È necessario:

  • Creare una nuova scheda di interfaccia di rete che usa un indirizzo IP dinamico
  • Impostare la scheda di rete della VM sulla scheda di rete appena creata.

Per cambiare la scheda di interfaccia di rete per la VM usata nei comandi precedenti, seguire questa procedura.

  1. Eseguire il comando azure network nic create per creare una nuova scheda di interfaccia di rete usando l'allocazione di IP dinamica con un nuovo indirizzo IP. Si noti che poiché non è specificato alcun indirizzo IP, il metodo di allocazione è dinamico.

    az network nic create     \
    --resource-group TestRG     \
    --name TestNIC2     \
    --location centralus     \
    --subnet FrontEnd    \
    --vnet-name TestVNet
    

    Output previsto:

    {
        "newNIC": {
            "dnsSettings": {
            "appliedDnsServers": [],
            "dnsServers": []
            },
            "enableIPForwarding": false,
            "ipConfigurations": [
            {
                "etag": "W/\"<guid>\"",
                "id": "/subscriptions/<guid>/resourceGroups/TestRG/providers/Microsoft.Network/networkInterfaces/TestNIC2/ipConfigurations/ipconfig1",
                "name": "ipconfig1",
                "properties": {
                "primary": true,
                "privateIPAddress": "192.168.1.4",
                "privateIPAllocationMethod": "Dynamic",
                "provisioningState": "Succeeded",
                "subnet": {
                    "id": "/subscriptions/<guid>/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/TestVNet/subnets/FrontEnd",
                    "resourceGroup": "TestRG"
                }
                },
                "resourceGroup": "TestRG"
            }
            ],
            "provisioningState": "Succeeded",
            "resourceGuid": "0808a61c-476f-4d08-98ee-0fa83671b010"
        }
    }
    
  2. Eseguire il comando azure vm set per cambiare il gruppo NIC usato dalla VM.

    azure vm set -g TestRG -n DNS01 -N TestNIC2
    

    Output previsto:

    [
        {
            "id": "/subscriptions/0e220bf6-5caa-4e9f-8383-51f16b6c109f/resourceGroups/TestRG/providers/Microsoft.Network/networkInterfaces/TestNIC3",
            "primary": true,
            "resourceGroup": "TestRG"
        }
    ]
    

    Nota

    Se le dimensioni della VM consentono di includere più schede di interfacce di rete, eseguire il comando azure network nic delete per eliminare la vecchia scheda.

Passaggi successivi