Assegnare più indirizzi IP a una macchina virtuale usando un modello di Azure Resource Manager

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 un modello di Resource Manager. È impossibile assegnare più indirizzi IP pubblici e privati alla stessa NIC quando si distribuisce una macchina virtuale tramite il modello di distribuzione classico. 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.

Descrizione modello

La distribuzione di un modello consente di creare rapidamente e in modo coerente le risorse di Azure con diversi valori di configurazione. Se non si ha familiarità con i modelli di Azure Resource Manager, leggere l'articolo Resource Manager template walkthrough (Guida dettagliata sul modello di Resource Manager). In questo articolo viene usato il modello Deploy a VM with multiple IP addresses (Distribuire una macchina virtuale con più indirizzi IP).

La distribuzione del modello consente di creare le risorse seguenti:

Risorsa Nome Descrizione
Interfaccia di rete myNic1 Le tre configurazioni IP descritte nella sezione scenario di questo articolo vengono create e assegnate a questa NIC.
Risorsa indirizzo IP pubblico ne vengono creati 2: myPublicIP e myPublicIP2 A queste risorse vengono assegnati indirizzi IP pubblici statici e vengono assegnate le configurazioni IP descritte nello scenario IPConfig-1 e IPConfig-2.
VM myVM1 Macchina virtuale Standard DS3.
Rete virtuale myVNet1 Rete virtuale con una subnet denominata mySubnet.
Account di archiviazione Univoco per la distribuzione Account di archiviazione.

Quando si distribuisce il modello, è necessario specificare i valori dei parametri seguenti:

Nome Descrizione
adminUsername Nome utente amministratore. Il nome utente deve essere conforme ai requisiti per il nome utente di Azure.
adminPassword Password amministratore. La password deve essere conforme ai requisiti per la password di Azure.
dnsLabelPrefix Nome DNS per PublicIPAddressName1. Il nome DNS viene risolto con uno degli indirizzi IP pubblici assegnati alla VM. Il nome deve essere univoco all'interno dell'area di Azure (percorso) in cui è stata creata la VM.
dnsLabelPrefix1 Nome DNS per PublicIPAddressName2. Il nome DNS viene risolto con uno degli indirizzi IP pubblici assegnati alla VM. Il nome deve essere univoco all'interno dell'area di Azure (percorso) in cui è stata creata la VM.
OSVersion La versione di Windows/Linux per la VM. Il sistema operativo è un'immagine con patch completa della specifica versione di Windows/Linux selezionata.
imagePublisher Editor di immagini Windows/Linux per la VM selezionata.
imageOffer Immagine Windows/Linux per la VM selezionata.

Tutte le risorse distribuite dal modello sono configurate con diverse impostazioni predefinite. È possibile visualizzare queste impostazioni tramite uno dei metodi seguenti:

  • Visualizzare il modello su GitHub:. se si ha familiarità con i modelli, è possibile visualizzare le impostazioni all'interno del modello.
  • Visualizzare le impostazioni dopo la distribuzione: se non si ha familiarità con i modelli, è possibile distribuire il modello usando la procedura in una delle sezioni seguenti e quindi visualizzare le impostazioni dopo la distribuzione.

È possibile usare il portale di Azure, PowerShell o l'interfaccia della riga di comando (CLI) di Azure per distribuire il modello. Tutti i metodi producono lo stesso risultato. Per distribuire il modello, completare la procedura in una delle sezioni seguenti:

Distribuire tramite il portale di Azure

Per distribuire il modello tramite il portale di Azure, completare la procedura seguente:

  1. Modificare il modello se necessario. Il modello consente di distribuire le risorse e le impostazioni elencate nella sezione risorse di questo articolo. Per altre informazioni sui modelli e sulle modalità di creazione, leggere l'articolo Creazione di modelli di Azure Resource Manager.
  2. Distribuire il modello con uno dei metodi seguenti:
    • Selezionare il modello nel portale: completare la procedura riportata nell'articolo Deploy resources from custom template (Distribuire le risorse da un modello personalizzato). Scegliere il modello preesistente denominato 101-vm-multiple-ipconfig.
    • Direttamente: fare clic sul pulsante seguente per aprire il modello direttamente nel portale:

Indipendentemente dal metodo scelto, è necessario fornire i valori dei parametri elencati in precedenza in questo articolo. Dopo aver distribuito la VM, connettersi alla VM e aggiungere gli indirizzi IP privati al sistema operativo che si è distribuito completando la procedura riportata nella sezione di questo articolo Add IP addresses to a VM operating system (Aggiungere indirizzi IP al sistema operativo di una VM). Non aggiungere gli indirizzi IP pubblici al sistema operativo.

Distribuire tramite PowerShell

Per distribuire il modello tramite Powershell, completare la procedura seguente:

  1. Distribuire il modello completando i passaggi indicati nell'articolo Deploy a template with PowerShell (Distribuire un modello con Powershell). L'articolo descrive più opzioni per la distribuzione di un modello. Se si desidera distribuire tramite il -TemplateUri parameter, l'URI per questo modello è https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/101-vm-multiple-ipconfig/azuredeploy.json. Se si desidera distribuire usando il parametro -TemplateFile, copiare il contenuto del file modello da GitHub in un nuovo file nel computer. Modificare il contenuto del modello se necessario. Il modello consente di distribuire le risorse e le impostazioni elencate nella sezione risorse di questo articolo. Per altre informazioni sui modelli e sulle modalità di creazione, leggere Creazione di modelli di Azure Resource Manager.

    Indipendentemente dall'opzione scelta per distribuire il modello, è necessario fornire i valori dei parametri elencati nella sezione parametri di questo articolo. Se si desidera specificare i parametri usando un file dei parametri, copiare il contenuto del file dei parametri da GitHub in un nuovo file nel computer. Modificare i valori nel file. Usare come valore per il parametro -TemplateParameterFile il file che è stato creato.

    Per determinare i valori validi per i parametri di OSVersion, ImagePublisher e imageOffer, completare la procedura riportata nell'articolo Esplorare e selezionare immagini di macchine virtuali Windows.

    Suggerimento

    Se non si è sicuri di avere un dnslabelprefix disponibile, immettere il comando Test-AzureRmDnsAvailability -DomainNameLabel <name-you-want-to-use> -Location <location> per verificarlo. Se è disponibile, il comando restituirà True.

  2. Dopo aver distribuito la VM, connettersi alla VM e aggiungere gli indirizzi IP privati al sistema operativo che si è distribuito completando la procedura riportata nella sezione di questo articolo Add IP addresses to a VM operating system (Aggiungere indirizzi IP al sistema operativo di una VM). Non aggiungere gli indirizzi IP pubblici al sistema operativo.

Distribuire tramite l'interfaccia della riga di comando di Azure

Per distribuire il modello usando l'interfaccia della riga di comando di Azure 1.0, completare la procedura seguente:

  1. Distribuire il modello completando i passaggi indicati nell'articolo Deploy a template with the Azure CLI (Distribuire un modello con l'interfaccia della riga di comando di Azure). L'articolo descrive più opzioni per la distribuzione del modello. Se si desidera distribuire usando il --template-uri (-f), l'URI per questo modello è https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/101-vm-multiple-ipconfig/azuredeploy.json. Se si desidera distribuire usando il parametro --template-file (-f), copiare il contenuto del file modello da GitHub in un nuovo file nel computer. Modificare il contenuto del modello se necessario. Il modello consente di distribuire le risorse e le impostazioni elencate nella sezione risorse di questo articolo. Per altre informazioni sui modelli e sulle modalità di creazione, leggere Creazione di modelli di Azure Resource Manager.

    Indipendentemente dall'opzione scelta per distribuire il modello, è necessario fornire i valori dei parametri elencati nella sezione parametri di questo articolo. Se si desidera specificare i parametri usando un file dei parametri, copiare il contenuto del file dei parametri da GitHub in un nuovo file nel computer. Modificare i valori nel file. Usare come valore per il parametro --parameters-file (-e) il file che è stato creato.

    Per determinare i valori validi per i parametri di OSVersion, ImagePublisher e imageOffer, completare la procedura riportata nell'articolo Esplorare e selezionare immagini di macchine virtuali Windows.

  2. Dopo aver distribuito la VM, connettersi alla VM e aggiungere gli indirizzi IP privati al sistema operativo che si è distribuito completando la procedura riportata nella sezione di questo articolo Add IP addresses to a VM operating system (Aggiungere indirizzi IP al sistema operativo di una VM). 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