Configurare indirizzi IP privati per una macchina virtuale usando l'interfaccia della riga di comando di AzureConfigure private IP addresses for a virtual machine using the Azure CLI

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.Your IaaS virtual machines (VMs) and PaaS role instances in a virtual network automatically receive a private IP address from a range that you specify, based on the subnet they are connected to. Tale indirizzo viene mantenuto per le macchine virtuali e le istanze del ruolo, fino a quando non vengono rimosse.That address is retained by the VMs and role instances, until they are decommissioned. Disabilitare un'istanza di macchina virtuale o un ruolo interrompendolo da PowerShell, CLI Azure o dal portale di Azure.You decommission a VM or role instance by stopping it from PowerShell, the Azure CLI, or the Azure portal. 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.In those cases, once the VM or role instance starts again, it will receive an available IP address from the Azure infrastructure, which might not be the same it previously had. Se si arresta la macchina virtuale o l’istanza del ruolo dal sistema operativo guest, esso mantiene comunque il suo indirizzo IP.If you shut down the VM or role instance from the guest operating system, it retains the IP address it had.

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.In certain cases, you want a VM or role instance to have a static IP address, for example, if your VM is going to run DNS or will be a domain controller. È possibile farlo impostando un indirizzo IP statico privato.You can do so by setting a static private IP address.

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.Before you work with Azure resources, it's important to understand that Azure currently has two deployment models: Azure Resource Manager and classic. È importante comprendere i modelli e strumenti di distribuzione prima di lavorare con le risorse di Azure.Make sure you understand deployment models and tools before you work with any Azure resource. È possibile visualizzare la documentazione relativa a diversi strumenti facendo clic sulle schede nella parte superiore di questo articolo.You can view the documentation for different tools by clicking the tabs at the top of this article.

Questo articolo illustra il modello di distribuzione Gestione risorse.This article covers the Resource Manager deployment model. È anche possibile gestire un indirizzo IP statico privato nel modello di distribuzione classico.You can also manage static private IP address in the classic deployment model.

ScenarioScenario

Per illustrare meglio come configurare un indirizzo IP statico per una macchina virtuale, in questo documento verrà utilizzato lo scenario seguente.To better illustrate how to configure a static IP address for a VM, this document will use the scenario below.

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.In this scenario you will create a VM named DNS01 in the FrontEnd subnet, and set it to use a static IP address of 192.168.1.101.

Nota

I comandi di esempio dell'interfaccia della riga di comando di Azure riportati di seguito prevedono un ambiente semplice esistente.The following sample Azure CLI commands expect an existing simple environment. Se si desidera eseguire i comandi illustrati in questo documento, creare innanzitutto l'ambiente di prova descritto in creare una rete virtuale.If you want to run the commands as they are displayed in this document, first build the test environment described in create a vnet.

Specificare un indirizzo IP statico privato durante la creazione di una macchina virtualeSpecify a static private IP address when creating a VM

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:To create a VM named DNS01 in the FrontEnd subnet of a VNet named TestVNet with a static private IP of 192.168.1.101, complete the following steps:

  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.If you haven't yet, install and configure the latest Azure CLI 2.0 and log in to an Azure account using az login.

  2. Creare un IP pubblico per la VM con il comando azure network public-ip create.Create a public IP for the VM with the az network public-ip create command. Nell'elenco riportato dopo l'output sono indicati i parametri usati.The list shown after the output explains the parameters used.

    Nota

    Potrebbe essere possibile o necessario usare valori diversi per gli argomenti in questo passaggio e nei passaggi successivi, a seconda dell'ambiente.You may want or need to use different values for your arguments in this and subsequent steps, depending upon your environment.

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

    Output previsto:Expected output:

    {
         "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.--resource-group: Name of the resource group in which to create the public IP.
    • --name: nome dell'indirizzo IP pubblico.--name: Name of the public IP.
    • --location: area di Azure in cui creare l'indirizzo IP pubblico.--location: Azure region in which to create the public IP.
  3. Eseguire il comando az network nic create per creare una scheda di interfaccia di rete con indirizzo IP privato statico.Run the az network nic create command to create a NIC with a static private IP. Nell'elenco riportato dopo l'output sono indicati i parametri usati.The list shown after the output explains the parameters used.

    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:Expected output:

    {
        "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>"
        }
    }
    

    ParametriParameters:

    • --private-ip-address: indirizzo IP privato statico per la scheda di interfaccia di rete.--private-ip-address: Static private IP address for the NIC.
    • --vnet-name: nome della rete virtuale in cui creare la scheda di interfaccia di rete.--vnet-name: Name of the VNet in which to create the NIC.
    • --subnet: nome della subnet in cui creare la scheda di interfaccia di rete.--subnet: Name of the subnet in which to create the NIC.
  4. Eseguire il comando azure vm create per creare la VM usando l'indirizzo IP pubblico e il gruppo NIC creati in precedenza.Run the azure vm create command to create the VM using the public IP and NIC created previously. Nell'elenco riportato dopo l'output sono indicati i parametri usati.The list shown after the output explains the parameters used.

    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:Expected output:

    {
        "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.Parameters other than the basic az vm create parameters.

    • --nics: nome della scheda di interfaccia di rete a cui è collegata la VM.--nics: Name of the NIC to which the VM is attached.

Recuperare le informazioni relative all'indirizzo IP privato statico per una macchina virtualeRetrieve static private IP address information for a VM

Eseguire il comando seguente dell'interfaccia della riga di comando di Azure per osservare i valori di Private IP alloc-method e Private IP address:Run the following Azure CLI command to observe the values for Private IP alloc-method and Private IP address:

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

Output previsto:Expected output:

"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:To display the specific IP information of the NIC for that VM, query the NIC specifically:

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:The output is something like:

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

Rimuovere un indirizzo IP statico privato da una macchina virtualeRemove a static private IP address from a VM

Non è possibile rimuovere un indirizzo IP privato statico da una scheda di interfaccia di rete nell'interfaccia della riga di comando di Azure per le distribuzioni di Azure Resource Manager.You cannot remove a static private IP address from a NIC in Azure CLI for Azure Resource Manager deployments. È necessario:You must:

  • Creare una nuova scheda di interfaccia di rete che usa un indirizzo IP dinamicoCreate a new NIC that uses a dynamic IP
  • Impostare la scheda di rete della VM sulla scheda di rete appena creata.Set the NIC on the VM do the newly created NIC.

Per cambiare la scheda di interfaccia di rete per la VM usata nei comandi precedenti, seguire questa procedura:To change the NIC for the VM used in the previous commands, complete the following steps:

  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.Run the azure network nic create command to create a new NIC using dynamic IP allocation with a new IP address. Poiché non è specificato alcun indirizzo IP, il metodo di allocazione è dinamico.Because no IP address is specified, the allocation method is Dynamic.

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

    Output previsto:Expected output:

    {
        "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.Run the azure vm set command to change the NIC used by the VM.

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

    Output previsto:Expected output:

    [
        {
            "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.If the VM is large enough to have more than one NIC, run the azure network nic delete command to delete the old NIC.

Passaggi successiviNext steps