Assegnare più indirizzi IP alle macchine virtuali usando l'interfaccia della riga di comando 1.0 di Azure

Una macchina virtuale di Azure può essere associata a una o più interfacce di rete. A ogni scheda di interfaccia di rete possono essere assegnati uno o più indirizzi IP pubblici o privati, statici e dinamici. L'assegnazione di più indirizzi IP a una VM consente di:

  • Ospitare più siti Web o servizi con indirizzi IP e certificati SSL diversi in un singolo server.
  • Fungere da appliance virtuale di rete, ad esempio un firewall o un servizio di bilanciamento del carico.
  • Aggiungere qualsiasi indirizzo IP per qualsiasi scheda di interfaccia di rete a un pool back-end di Azure Load Balancer. In passato, era possibile aggiungere a un pool di back-end solo gli indirizzi IP primari per la scheda di interfaccia di rete primaria. Per altre informazioni su come bilanciare il carico di più configurazioni IP, leggere l'articolo Load balancing multiple IP configurations (Bilanciamento del carico di più configurazioni IP).

Ogni scheda di interfaccia di rete collegata a una macchina virtuale dispone di una o più configurazioni IP associate. A ogni configurazione viene assegnato un indirizzo IP privato statico o dinamico. Ogni configurazione può anche avere una risorsa di indirizzo IP pubblico associata. Una risorsa indirizzo IP pubblico dispone di un indirizzo IP dinamico o statico pubblico assegnato. Per altre informazioni sugli indirizzi IP in Azure, leggere l'articolo sugli indirizzi IP in Azure.

Sono previsti limiti per il numero di indirizzi IP privati che possono essere assegnati a una scheda di rete e per il numero di indirizzi IP pubblici che possono essere usati in una sottoscrizione di Azure. Per informazioni dettagliate, vedere l'articolo Limiti di Azure.

Questo articolo spiega come creare una macchina virtuale (VM) tramite il modello di distribuzione Azure Resource Manager usando l'interfaccia della riga di comando 1.0 di Azure. Non è possibile a assegnare più indirizzi IP alle risorse create tramite il modello di distribuzione classica. Per altre informazioni sui modelli di distribuzione di Azure, leggere l'articolo Understand Azure deployment models (Informazioni sui modelli di distribuzione di Azure).

Scenario

Una macchina virtuale con una singola scheda di interfaccia di rete viene creata e collegata a una rete virtuale. La macchina virtuale richiede tre diversi indirizzi IP privati e due indirizzi IP pubblici. Gli indirizzi IP vengono assegnati alle configurazioni IP seguenti:

  • IPConfig-1: assegna un indirizzo IP privato statico e un indirizzo IP pubblico statico.
  • IPConfig-2: assegna un indirizzo IP privato statico e un indirizzo IP pubblico statico.
  • IPConfig-3: assegna un indirizzo IP privato statico e nessun indirizzo IP pubblico.

    Più indirizzi IP

Le configurazioni IP vengono associate alla scheda di interfaccia di rete al momento della creazione della stessa, mentre la scheda di interfaccia di rete viene collegata alla macchina virtuale al momento della creazione della macchina virtuale. I tipi di indirizzi IP usati per lo scenario sono a scopo illustrativo. È possibile assegnare qualsiasi tipo di assegnazione e indirizzo IP desiderato.

Nota

Sebbene la procedura illustrata in questo articolo assegni tutte le configurazioni IP a una singola scheda di interfaccia di rete, è possibile anche assegnare più configurazioni IP a una scheda di interfaccia di rete in una macchina virtuale con più schede di interfaccia di rete. Per informazioni su come creare una macchina virtuale con più schede di interfacce di rete, leggere l'articolo Creare una macchina virtuale con più schede di interfaccia di rete.

Creare una macchina virtuale con più indirizzi IP

È possibile completare questa attività usando l'interfaccia della riga di comando di Azure 1.0 (questo articolo) o l'interfaccia della riga di comando di Azure 2.0. La procedura seguente illustra come creare una macchina virtuale di esempio con più indirizzi IP, come descritto nello scenario. Modificare i nomi delle variabili e i tipi di indirizzi IP come richiesto per l'implementazione.

  1. Per installare e configurare l'interfaccia della riga di comando di Azure 1.0, seguire la procedura riportata nell'articolo Installare e configurare l'interfaccia della riga di comando di Azure e accedere all'account Azure con il comando azure-login.

  2. Creare un gruppo di risorse:

    RgName=myResourceGroup
    Location=westcentralus
    azure group create --name $RgName --location $Location
    
  3. Creare una rete virtuale:

    azure network vnet create --resource-group $RgName --location $Location --name myVNet \
    --address-prefixes 10.0.0.0/16
    
  4. Creare una subnet nella rete virtuale:

    azure network vnet subnet create --name mySubnet --resource-group $RgName --vnet-name myVNet \
    --address-prefix 10.0.0.0/24
    
  5. Creare un account di archiviazione per la macchina virtuale. Prima di eseguire il comando seguente, sostituire mystorageaccount con un nome univoco. Il nome deve essere univoco in Azure:

    az storage account create --resource-group $RgName --location $Location --name mystorageaccount \
    --kind Storage --sku Standard_LRS
    
  6. Creare le configurazioni IP, una scheda di interfaccia di rete e assegnare le configurazioni IP alla scheda creata. È possibile aggiungere, rimuovere o modificare le configurazioni in base alle esigenze. Nello scenario vengono descritte le configurazioni seguenti:

    IPConfig-1

    Immettere i comandi seguenti per creare:

    • Una risorsa indirizzo IP pubblico con un indirizzo IP pubblico statico
    • Una scheda di interfaccia di rete alla quale assegnare l'indirizzo IP pubblico e un indirizzo IP privato.

      Sostituire mypublicdns con un nome che sia univoco nella località di Azure.

      azure network public-ip create --resource-group $RgName --location $Location --name myPublicIP1 \
      --domain-name-label mypublicdns --allocation-method Static
      
      azure network nic create --resource-group $RgName --location $Location --name myNic1 \
      --private-ip-address 10.0.0.4 --subnet-name mySubnet --subnet-vnet-name myVNet \
      --subnet-name mySubnet --public-ip-name myPublicIP1
      
      Nota

      Per gli indirizzi IP pubblici è prevista una tariffa nominale. Per altre informazioni sui prezzi degli indirizzi IP, vedere la pagina Prezzi per gli indirizzi IP . È previsto un limite per il numero di indirizzi IP pubblici che possono essere usati in una sottoscrizione. Per altre informazioni sui limiti, vedere l'articolo Limiti di Azure.

      IPConfig-2

      Immettere i comandi seguenti per creare una nuova risorsa indirizzo IP pubblico e una nuova configurazione IP con un indirizzo IP pubblico e un indirizzo IP privato statico:

      azure network public-ip create --resource-group $RgName --location $Location --name myPublicIP2
      --domain-name-label mypublicdns2 --allocation-method Static
      
      azure network nic ip-config create --resource-group $RgName --nic-name myNic1 --name IPConfig-2
      --private-ip-address 10.0.0.5 --public-ip-name myPublicIP2
      

      IPConfig-3

      Immettere i comandi seguenti per creare una configurazione IP con un indirizzo IP privato statico e nessun indirizzo IP pubblico:

      azure network nic ip-config create --resource-group $RgName --nic-name myNic1 --private-ip-address 10.0.0.6 \
      --name IPConfig-3
      
      Nota

      Sebbene questo articolo assegna tutte le configurazioni IP a una singola scheda di interfaccia di rete, è possibile anche assegnare più configurazioni IP a qualsiasi scheda di interfaccia di rete in una macchina virtuale. Per informazioni su come creare una VM con più interfacce di rete, leggere l'articolo Creare una macchina virtuale con più schede di interfaccia di rete usando PowerShell.

  7. Creare una macchina virtuale Linux

    az vm create --resource-group $RgName --name myVM1 --location $Location --nics myNic1 \
    --image UbuntuLTS --ssh-key-value ~/.ssh/id_rsa.pub --admin-username azureuser
    

    Per modificare le dimensioni della macchina virtuale alla versione 2 DS2 Standard, ad esempio, è sufficiente aggiungere la seguente proprietà --vm-size Standard_DS3_v2 al comando azure vm create nel passaggio 6.

  8. Immettere il comando seguente per visualizzare la scheda di interfaccia di rete e le configurazioni IP associate:

    azure network nic show --resource-group $RgName    --name myNic1
    
  9. Aggiungere gli indirizzi IP privati al sistema operativo della macchina virtuale seguendo la procedura per il proprio sistema operativo riportata nella sezione Aggiungere indirizzi IP a una macchina virtuale di questo articolo.

Aggiungere indirizzi IP a una macchina virtuale

È possibile aggiungere indirizzi IP privati e pubblici a una scheda di interfaccia di rete esistente completando la procedura seguente. Gli esempi si basano sullo scenario descritto in questo articolo.

  1. Aprire l'interfaccia della riga di comando di Azure e completare i passaggi rimanenti in questa sezione all'interno di una singola sessione dell'interfaccia della riga di comando. Se l'interfaccia della riga di comando di Azure non è installata e configurata, completare la procedura riportata nell'articolo Installare e configurare l'interfaccia della riga di comando di Azure e accedere all'account Azure.

  2. Completare i passaggi in una delle sezioni seguenti, a seconda delle esigenze:

    • Aggiungere un indirizzo IP privato

      Per aggiungere un indirizzo IP privato a una scheda di interfaccia di rete, è necessario creare una configurazione IP tramite il comando seguente. L'indirizzo statico deve essere un indirizzo non usato per la subnet.

      azure network nic ip-config create --resource-group myResourceGroup --nic-name myNic1 \
      --private-ip-address 10.0.0.7 --name IPConfig-4
      

      Creare tutte le configurazioni usando nomi di configurazione univoci e indirizzi IP privati (per le configurazioni con indirizzi IP statici).

    • Aggiungere un indirizzo IP pubblico

      L'indirizzo IP pubblico viene aggiunto associandolo a una nuova configurazione IP o a una configurazione IP esistente. Completare i passaggi in una delle sezioni che seguono, a seconda del caso.

      Nota

      Per gli indirizzi IP pubblici è prevista una tariffa nominale. Per altre informazioni sui prezzi degli indirizzi IP, vedere la pagina Prezzi per gli indirizzi IP . È previsto un limite per il numero di indirizzi IP pubblici che possono essere usati in una sottoscrizione. Per altre informazioni sui limiti, vedere l'articolo Limiti di Azure.

      Associare la risorsa a una nuova configurazione IP

      Ogni volta che si aggiunge un indirizzo IP pubblico a una nuova configurazione IP, è necessario aggiungere anche un indirizzo IP privato, perché tutte le configurazioni IP devono avere un indirizzo IP privato. È possibile aggiungere una risorsa indirizzo IP pubblico esistente o crearne una nuova. Per crearne una nuova, usare il comando seguente:

      azure network public-ip create --resource-group myResourceGroup --location westcentralus --name myPublicIP3 \
      --domain-name-label mypublicdns3
      

      Per creare una nuova configurazione IP con un indirizzo IP privato statico e la risorsa indirizzo IP pubblico myPublicIP3 associata, immettere il comando seguente:

      azure network nic ip-config create --resource-group myResourceGroup --nic-name myNic --name IPConfig-4 \
      --private-ip-address 10.0.0.8 --public-ip-name myPublicIP3
      

      Associare la risorsa a una nuova configurazione IP

      Una risorsa indirizzo IP pubblico può essere associata a una configurazione IP cui non ne sia associata alcuna. È possibile stabilire se una configurazione IP dispone di un indirizzo IP pubblico associato immettendo il comando seguente:

      azure network nic ip-config list --resource-group myResourceGroup --nic-name myNic1
      

      Cercare una riga simile a quella che segue per IPConfig-3 nell'output restituito:

      Name               Provisioning state  Primary  Private IP allocation Private IP version  Private IP address  Subnet    Public IP
      default-ip-config  Succeeded           true     Static                IPv4                10.0.0.4            mySubnet  myPublicIP
      IPConfig-2         Succeeded           false    Static                IPv4                10.0.0.5            mySubnet  myPublicIP2
      IPConfig-3         Succeeded           false    Static                IPv4                10.0.0.6            mySubnet
      

      Poiché la colonna IP pubblico per IpConfig-3 è vuota, nessuna risorsa di indirizzo IP pubblico è attualmente associata. È possibile aggiungere una risorsa indirizzo IP pubblico esistente a IpConfig-3 o immettere il comando seguente per crearne una:

      azure network public-ip create --resource-group  myResourceGroup --location westcentralus \
      --name myPublicIP3 --domain-name-label mypublicdns3 --allocation-method Static
      

      Immettere il comando seguente per associare la risorsa indirizzo IP pubblico alla configurazione IP esistente denominata IPConfig-3:

      azure network nic ip-config set --resource-group myResourceGroup --nic-name myNic1 --name IPConfig-3 \
      --public-ip-name myPublicIP3
      
  3. Visualizzare le risorse indirizzo IP privato e indirizzo IP pubblico assegnate alla scheda di interfaccia di rete immettendo il comando seguente:

    azure network nic ip-config list --resource-group myResourceGroup --nic-name myNic1
    

    L'output restituito è simile al seguente:

    Name               Provisioning state  Primary  Private IP allocation Private IP version  Private IP address  Subnet    Public IP
    
    default-ip-config  Succeeded           true     Static                IPv4                10.0.0.4            mySubnet  myPublicIP
    IPConfig-2         Succeeded           false    Static                IPv4                10.0.0.5            mySubnet  myPublicIP2
    IPConfig-3         Succeeded           false    Static                IPv4                10.0.0.6            mySubnet  myPublicIP3
    
  4. Aggiungere al sistema operativo della macchina virtuale gli indirizzi IP privati aggiunti alla scheda di interfaccia di rete seguendo le istruzioni disponibili nella sezione Aggiungere indirizzi IP a una macchina virtuale di questo articolo. Non aggiungere gli indirizzi IP pubblici al sistema operativo.

Add IP addresses to a VM operating system (Aggiungere indirizzi IP a un sistema operativo VM)

Connettersi e accedere alla VM creata con più indirizzi IP privati. È necessario aggiungere manualmente tutti gli indirizzi IP privati aggiunti alla VM, incluso l'indirizzo primario. Completare i passaggi seguenti per il sistema operativo VM:

Windows

  1. Da un prompt dei comandi digitare ipconfig /all. Viene visualizzato solo l'indirizzo IP privato Primary , tramite DHCP.
  2. Digitare ncpa.cpl nel prompt dei comandi per aprire la finestra Connessioni di rete.
  3. Visualizzare le proprietà per la scheda appropriata: Connessione alla rete locale (LAN).
  4. Fare doppio clic su Protocollo Intenret versione 4 (IPv4).
  5. Selezionare Utilizza il seguente indirizzo IP e immettere i valori seguenti:

    • Indirizzo IP: immettere l'indirizzo IP privato Primary .
    • Subnet mask: configurare questo valore in base alla subnet. Se, ad esempio, la subnet è di tipo /24, la subnet mask è 255.255.255.0.
    • Gateway predefinito: primo indirizzo IP nella subnet. Se la subnet è 10.0.0.0/24, l'indirizzo IP del gateway è 10.0.0.1.
    • Fare clic su Utilizza i seguenti indirizzi server DNS e immettere i valori seguenti:
      • Server DNS preferito: immettere 168.63.129.16 se non si usa il proprio server DNS. Se si usa il proprio server DNS, immettere il relativo indirizzo IP.
    • Fare clic sul pulsante Avanzate e aggiungere altri indirizzi IP. Aggiungere ogni indirizzo IP privato secondario elencato nel passaggio 8 all'interfaccia di rete con la stessa subnet specificata per l'indirizzo IP primario.

      Avviso

      Se non si segue correttamente la procedura precedente, è possibile che si perda la connettività alla macchina virtuale. Prima di continuare, assicurarsi che le informazioni immesse per il passaggio 5 siano corrette.

    • Fare clic su OK per chiudere le impostazioni TCP/IP e quindi di nuovo su OK per chiudere le impostazioni della scheda. Viene ristabilita la connessione RDP.

  6. Da un prompt dei comandi digitare ipconfig /all. Tutti gli indirizzi IP aggiunti vengono visualizzati e DHCP viene disattivato.

Convalida (Windows)

Per assicurarsi che sia possibile connettersi a Internet dalla configurazione dell'indirizzo IP secondaria tramite l'indirizzo IP ad essa associato, usare il comando seguente dopo averlo aggiunto correttamente seguendo la procedura precedente:

ping -S 10.0.0.5 hotmail.com
Nota

Per le configurazioni IP secondarie, è possibile effettuare il ping a Internet solo se alla configurazione è associato un indirizzo IP pubblico. Per le configurazioni IP primarie, non è necessario un indirizzo IP pubblico per il ping a Internet.

Linux (Ubuntu)

  1. Aprire una finestra del terminale.
  2. Assicurarsi di essere l'utente ROOT. In caso contrario, immettere il comando seguente:

    sudo -i
    
  3. Aggiornare il file di configurazione dell'interfaccia di rete, presupponendo 'eth0'.

    • Mantenere la voce esistente per dhcp. L'indirizzo IP primario conserva la configurazione precedente.
    • Aggiungere una configurazione per un indirizzo IP statico aggiuntivo con i comandi seguenti:

      cd /etc/network/interfaces.d/
      ls
      

      Dovrebbe essere visualizzato un file con estensione cfg.

  4. Open the file. Dovrebbero essere visualizzate le righe seguenti alla fine del file:

    auto eth0
    iface eth0 inet dhcp
    
  5. Aggiungere le righe seguenti dopo le righe esistenti nel file:

    iface eth0 inet static
    address <your private IP address here>
    netmask <your subnet mask>
    
  6. Salvare il file usando il comando seguente:

    :wq
    
  7. Reimpostare l'interfaccia di rete con il comando seguente:

    sudo ifdown eth0 && sudo ifup eth0
    
    Importante

    Eseguire ifdown e ifup nella stessa riga se si usa una connessione remota.

  8. Verificare che l'indirizzo IP venga aggiunto all'interfaccia di rete con il comando seguente:

    ip addr list eth0
    

    L'indirizzo IP aggiunto dovrebbe essere incluso nell'elenco.

Linux (Redhat, CentOS e altro)

  1. Aprire una finestra del terminale.
  2. Assicurarsi di essere l'utente ROOT. In caso contrario, immettere il comando seguente:

    sudo -i
    
  3. Immettere la password e seguire le istruzioni visualizzate. Quando si è l'utente ROOT, passare alla cartella degli script di rete con il comando seguente:

    cd /etc/sysconfig/network-scripts
    
  4. Elencare i file ifcfg correlati usando il comando seguente:

    ls ifcfg-*
    

    Uno dei file visualizzati dovrebbe essere ifcfg-eth0 .

  5. Per aggiungere un indirizzo IP, creare un file di configurazione come illustrato di seguito. Si noti che è necessario creare un file per ogni configurazione IP.

    touch ifcfg-eth0:0
    
  6. Aprire il file ifcfg-eth0:0 con il comando seguente:

    vi ifcfg-eth0:0
    
  7. Aggiungere contenuto al file, in questo caso eth0:0, con il comando seguente. Assicurarsi di aggiornare le informazioni in base all'indirizzo IP.

    DEVICE=eth0:0
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=192.168.101.101
    NETMASK=255.255.255.0
    
  8. Salvare il file usando il comando seguente:

    :wq
    
  9. Riavviare i servizi di rete e assicurarsi che le modifiche siano riuscite eseguendo i comandi seguenti:

    /etc/init.d/network restart
    ifconfig
    

    L'indirizzo IP aggiunto, eth0:0, dovrebbe essere incluso nell'elenco restituito.

Convalida (Linux)

Per assicurarsi che sia possibile connettersi a Internet dalla configurazione dell'indirizzo IP secondaria tramite l'indirizzo IP ad essa associato, usare il comando seguente:

ping -I 10.0.0.5 hotmail.com
Nota

Per le configurazioni IP secondarie, è possibile effettuare il ping a Internet solo se alla configurazione è associato un indirizzo IP pubblico. Per le configurazioni IP primarie, non è necessario un indirizzo IP pubblico per il ping a Internet.

Per le macchine virtuali Linux, quando si prova a convalidare la connettività in uscita da una scheda di interfaccia di rete secondaria, potrebbe essere necessario aggiungere le route appropriate. Per eseguire questa operazione è possibile procedere in molti modi. Per informazioni sulla distribuzione Linux, vedere la documentazione appropriata. Ecco un metodo per ottenere questo risultato:

echo 150 custom >> /etc/iproute2/rt_tables 

ip rule add from 10.0.0.5 lookup custom
ip route add default via 10.0.0.1 dev eth2 table custom
  • Assicurarsi di sostituire:
    • 10.0.0.5 con l'indirizzo IP privato a cui è associato un indirizzo IP pubblico
    • 10.0.0.1 con il gateway predefinito
    • eth2 con il nome della scheda di interfaccia di rete secondaria