Configura indirizzi IP interni statici

Questa pagina mostra come configurare e gestire indirizzi IPv4 o IPv6 statici interni per le istanze di macchine virtuali (VM) Compute Engine.

Se un'istanza VM richiede un indirizzo IP interno fisso che non cambia, puoi ottenere un indirizzo IP interno statico per quella VM utilizzando una delle seguenti opzioni:

Per scoprire come gestire gli indirizzi IP interni secondari, consulta Intervalli IP alias.

In Compute Engine, ogni istanza VM può avere più interfacce di rete. Ogni interfaccia può avere un indirizzo IP esterno, un indirizzo IP interno principale e uno o più indirizzi IP interni secondari. Per saperne di più sugli indirizzi IP, leggi la documentazione relativa agli indirizzi IP.

Con gli indirizzi IP interni statici, puoi sempre utilizzare lo stesso indirizzo IP per una VM, anche se devi eliminarla e ricrearla.

Per configurare un indirizzo IP esterno statico anziché un indirizzo IP interno, consulta Configurare un indirizzo IP esterno statico.

Prima di iniziare

  • Ulteriori informazioni sugli indirizzi IP.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    Terraform

    Per utilizzare gli esempi Terraform in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.

    1. Installa Google Cloud CLI.
    2. Per initialize gcloud CLI, esegui questo comando:

      gcloud init
    3. Crea credenziali di autenticazione locali per il tuo Account Google:

      gcloud auth application-default login

    Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare e gestire gli indirizzi IP statici, chiedi all'amministratore di concederti i seguenti ruoli IAM sul tuo progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per configurare e gestire gli indirizzi IP statici. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per configurare e gestire gli indirizzi IP statici sono necessarie le seguenti autorizzazioni:

  • compute.instances.update sull'istanza VM
  • compute.instances.updateNetworkInterface sull'istanza VM
  • compute.instances.addAccessConfig sull'istanza VM
  • compute.instances.deleteAccessConfig sull'istanza VM
  • compute.networks.list sulla rete
  • compute.subnetworks.use sulla subnet
  • compute.subnetworks.list sulla subnet
  • Per creare delle VM:
    • compute.instances.create sul progetto
    • Per utilizzare un'immagine personalizzata per creare la VM&: compute.images.useReadOnly nell'immagine
    • a utilizzare uno snapshot per creare la VM con i due punti compute.snapshots.useReadOnly nello snapshot
    • a utilizzare un modello di istanza per creare la VM&: compute.instanceTemplates.useReadOnly nel modello di istanza
    • ad assegnare una rete legacy alla VM e ai due punti compute.networks.use del progetto
    • Per specificare un indirizzo IP statico per la VM&: compute.addresses.use nel progetto
    • Per assegnare un indirizzo IP esterno alla VM quando si utilizza una rete legacy&due punti compute.networks.useExternalIp nel progetto
    • Per specificare una subnet per la VM&: compute.subnetworks.use nel progetto o nella subnet scelta
    • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC&;compute.subnetworks.useExternalIp nel progetto o nella subnet scelta
    • a impostare i metadati dell'istanza VM per VM&: compute.instances.setMetadata nel progetto
    • a impostare i tag per la VM con i due punti compute.instances.setTags sulla VM
    • a impostare le etichette per la VM con i due punti compute.instances.setLabels sulla VM
    • Per impostare un account di servizio affinché la VM utilizzi i due punti compute.instances.setServiceAccount sulla VM
    • a creare un nuovo disco per la VM&: compute.disks.create nel progetto
    • Per collegare un disco esistente in modalità di sola lettura o lettura/scrittura&due punti, compute.disks.use sul disco
    • Per collegare un disco esistente in modalità di sola lettura&due punti compute.disks.useReadOnly sul disco

Potresti anche essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.

Limitazioni

  • Non puoi annullare l'assegnazione o modificare l'indirizzo IPv4 interno di una risorsa esistente. Ad esempio, non puoi assegnare un nuovo indirizzo IP interno statico a un'istanza VM in esecuzione o arrestata. Tuttavia, puoi promuovere l'indirizzo IP interno temporaneo di una risorsa a un indirizzo IP interno statico in modo che l'indirizzo rimanga riservato anche dopo l'eliminazione della risorsa.

  • Il numero di indirizzi IP interni statici che puoi prenotare non può superare la quota del progetto. Per ulteriori informazioni, consulta le quotas per progetto nella documentazione di VPC.

  • Solo una risorsa alla volta può utilizzare un indirizzo IP interno statico.

  • La prenotazione di un indirizzo IP interno statico è supportata solo per le reti VPC. Non è supportato per le reti in modalità legacy.

  • L'eliminazione di una risorsa non rilascia automaticamente un indirizzo IP interno statico. Devi rilasciare manualmente gli indirizzi IP interni statici quando non sono più necessari.

  • Non puoi modificare il nome di un indirizzo IP statico.

  • Gli indirizzi IP interni statici sono a livello di regione, ovvero sono limitati alla regione in cui sono prenotati. Ad esempio, se esiste un indirizzo IP interno statico riservato in Region A, puoi utilizzare solo l'indirizzo IP in Region A.

Come configurare un indirizzo IP interno statico

Puoi prenotare un indirizzo IP interno statico e quindi specificare l'indirizzo riservato durante la creazione di una VM. Puoi anche creare la VM con un indirizzo IP interno temporaneo e quindi promuovere questo indirizzo IP temporaneo a un indirizzo IP interno statico.

Per utilizzare un indirizzo IP interno statico, devi disporre di una rete VPC per il tuo progetto. Per visualizzare le reti VPC nel progetto, consulta Visualizzazione delle reti VPC.

Prenotare un indirizzo IPv4 o IPv6 interno statico e associarlo a una VM specifica

In questo scenario, prenoti separatamente un indirizzo IP interno statico e lo assegni a una VM:

  1. Scegli una subnet nella rete VPC. Per gli indirizzi IPv6, assicurati che si tratti di una subnet a doppio stack.

  2. Prenota un indirizzo IP interno dall'intervallo IP principale della subnet. Questo passaggio crea una risorsa di indirizzo IP interno denominato contenente l'indirizzo IP interno specifico. La prenotazione dell'indirizzo IP impedisce a Google Cloud di allocarlo automaticamente come indirizzo temporaneo.

  3. Utilizza l'indirizzo IP interno riservato associandolo a un'istanza VM quando crei la risorsa VM.

Specifica un indirizzo IPv4 o IPv6 interno temporaneo per una VM, quindi promuovi l'indirizzo

In questo scenario, promuovi un indirizzo IPv4 o IPv6 interno temporaneo che è ancora collegato a una VM:

  1. Scegli una subnet nella rete VPC. Per gli indirizzi IPv6, assicurati che si tratti di una subnet a doppio stack.

  2. Creare un'istanza VM con un indirizzo IPv4 o IPv6 temporaneo allocato automaticamente oppure con un indirizzo IPv4 specifico.

  3. Promuovi l'indirizzo IP interno temporaneo a un indirizzo statico.

I due metodi sono descritti nella Figura 1.

Stati di prenotazione dell'indirizzo IP interno.
Figura 1. Stati di prenotazione degli indirizzi IP interni (fai clic per ingrandire).

Visualizza gli indirizzi IP interni statici disponibili

Per visualizzare tutti gli indirizzi IP interni statici esistenti, completa i seguenti passaggi.

Console

  1. Nella console Google Cloud, vai alla pagina Indirizzi IP.

    Vai agli indirizzi IP

  2. Fai clic su Indirizzi IP interni.

gcloud

Utilizza il comando gcloud compute addresses list:

gcloud compute addresses list

API

Utilizza il metodo addresses.list:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per questa richiesta
  • REGION: il nome della regione per questa richiesta

Per elencare tutti gli indirizzi in tutte le regioni, utilizza il metodo addresses.aggregatedList:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/addresses

Configura indirizzi IP interni statici

Alle interfacce VM vengono assegnati indirizzi IP dalla subnet a cui sono connesse. Ogni interfaccia VM ha un indirizzo IPv4 interno principale che viene assegnato dall'intervallo IPv4 principale della subnet. Se la VM è connessa a una subnet a doppio stack con un intervallo IPv6 interno, puoi assegnare un indirizzo IPv6 interno a ciascuna interfaccia di rete.

Gli indirizzi IPv4 interni possono essere assegnati nei seguenti modi:

  • Compute Engine assegna automaticamente un singolo indirizzo IPv4 dall'intervallo di subnet IPv4 principale.
  • Puoi assegnare un indirizzo IPv4 interno specifico quando crei un'istanza VM oppure puoi prenotare un indirizzo IPv4 interno statico per il tuo progetto e assegnare questo indirizzo all'interfaccia di rete di una VM.

Gli indirizzi IPv6 interni possono essere assegnati nei seguenti modi:

Le seguenti procedure consentono di configurare indirizzi IP interni statici per le VM:

Crea un'istanza VM con un indirizzo IPv4 o IPv6 interno riservato

Dopo aver prenotato un indirizzo IP interno statico, puoi assegnare l'indirizzo riservato a un'istanza VM quando crei l'istanza.

Quando crei una VM connessa a una subnet a doppio stack con un intervallo IPv6 interno senza specificare un indirizzo IPv6 interno statico riservato, Compute Engine assegna automaticamente alla VM un indirizzo IPv6 interno temporaneo dall'intervallo IPv6 della subnet.

Console

  1. Nella console Google Cloud, vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

  2. Espandi la sezione Opzioni avanzate.

  3. Espandi la sezione Networking.

  4. Per assegnare un indirizzo IPv4 interno:

    1. Seleziona una rete e una subnet.
    2. Seleziona un indirizzo IPv4 interno riservato dall'elenco Indirizzo IPv4 interno principale.

    In alternativa, seleziona Prenota indirizzo IP interno statico e prenota un nuovo indirizzo IPv4 interno statico.

  5. Per assegnare un indirizzo IPv6 interno:

    1. Seleziona una rete contenente una subnet IPv6.
    2. Seleziona una subnet a doppio stack dall'elenco Subnet. La subnet deve avere il tipo di accesso IPv6 INTERNAL.
    3. Per Tipo di stack IP, seleziona IPv4 e IPv6 (stack doppio).
    4. Seleziona un indirizzo IPv6 interno riservato dall'elenco Indirizzo IPv6 interno principale.

    In alternativa, seleziona Prenota indirizzo IPv6 interno statico e prenota un nuovo indirizzo IPv6 interno statico.

  6. Per completare la modifica dell'interfaccia di rete predefinita, fai clic su Fine.

  7. Continua con il processo di creazione della VM.

  8. Fai clic su Crea.

gcloud

  • Per creare un'istanza con un indirizzo IPv4 interno riservato, utilizza il flag --private-network-ip per specificare un indirizzo IPv4 interno riservato quando crei l'istanza:

    gcloud compute instances create VM_NAME
        --private-network-ip IP_ADDRESS
    

    Sostituisci quanto segue:

    • VM_NAME: il nome della VM che vuoi creare.
    • IP_ADDRESS: l'indirizzo IP che vuoi assegnare.

    Se utilizzi una rete in modalità subnet personalizzata, devi specificare anche la subnet utilizzando il parametro --subnet SUBNET.

  • Per creare un'istanza con un indirizzo IPv6 interno riservato, utilizza il flag --internal-ipv6-address per specificare l'indirizzo IPv6 interno riservato quando crei l'istanza:

    gcloud compute instances create VM_NAME
        --subnet SUBNETWORK
        --stack-type IPV4_IPV6
        --internal-ipv6-address INTERNAL_IPV6_ADDRESS
        --zone ZONE
    

    Sostituisci quanto segue:

    • VM_NAME: il nome della VM che vuoi creare.
    • SUBNETWORK: la subnet per l'indirizzo IPv6 interno.
    • INTERNAL_IPV6_ADDRESS: l'indirizzo IPv6 /96, il nome dell'indirizzo IP o l'URI della risorsa indirizzo. L'indirizzo IP deve essere prenotato prima di poter essere utilizzato.
    • ZONE: la zona per la VM.

REST

Per creare un'istanza VM con un indirizzo IP interno statico, utilizza il metodo instances.insert.

  • Per gli indirizzi IPv4 interni, fornisci esplicitamente alla proprietà networkInterfaces[].networkIP l'indirizzo IPv4 interno che vuoi assegnare alla VM.

    Ad esempio:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    
    {
    "name": "VM_NAME",
    "machineType": "zones/us-central1-f/machineTypes/e2-micro",
    "networkInterfaces": [{
      "accessConfigs": [{
        "type": "ONE_TO_ONE_NAT",
        "name": "External NAT",
      }],
      "network": "global/networks/default",
      "networkIP": "IPV4_ADDRESS"
    }],
    "disks": [{
      "autoDelete": "true",
      "boot": "true",
      "type": "PERSISTENT",
      "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/v20150818"
      }
    }]
    }

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto in cui creare la VM.
    • ZONE: la zona in cui creare la VM.
    • VM_NAME: il nome della macchina virtuale.
    • IPV4_ADDRESS: l'indirizzo IPv4 interno da assegnare alla VM.
  • Per gli indirizzi IPv6 interni, specifica esplicitamente i valori per le seguenti proprietà:

    • networkInterfaces[].stackType
    • networkInterfaces[].ipv6Address
    • networkInterfaces[].internalIpv6PrefixLength
    • networkInterfaces[].ipv6AccessType

    Ad esempio:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
    "name": "VM_NAME",
    "machineType": "zones/us-central1-f/machineTypes/e2-micro",
    "networkInterfaces": [{
      "accessConfigs": [{
        "type": "ONE_TO_ONE_NAT",
        "name": "External NAT",
      }],
      "network": "global/networks/default",
      "stackType": "IPV4_IPV6"
      "ipv6Address": ""IPV6_ADDRESS"",
      "internalIpv6PrefixLength": 96
      "ipv6AccessType": INTERNAL,
    }],
    "disks": [{
      "autoDelete": "true",
      "boot": "true",
      "type": "PERSISTENT",
      "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/v20150818"
      }
    }]
    }

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto in cui creare la VM.
    • ZONE: la zona in cui creare la VM.
    • VM_NAME: il nome della VM.
    • IPV6_ADDRESS: l'indirizzo IPv6 interno da assegnare alla VM.

Se elimini un'istanza con un indirizzo IP specificato, l'indirizzo torna nel pool di indirizzi non allocato. Se hai bisogno di un indirizzo IP interno che resisti oltre la durata dell'istanza, puoi prenotare un indirizzo IP interno statico.

Utilizza un indirizzo IPv4 o IPv6 interno statico per un'interfaccia di rete secondaria

Quando crei un'istanza VM con più interfacce di rete, puoi utilizzare un indirizzo IPv4 o IPv6 interno statico riservato per le interfacce di rete principali e secondarie.

Per utilizzare un indirizzo IPv4 o IPv6 interno statico per un'interfaccia di rete secondaria, consulta Creare istanze VM con più interfacce di rete.

Modifica o assegna un indirizzo IPv6 interno a una VM esistente

Puoi modificare o assegnare un indirizzo IPv6 interno a un'istanza VM esistente.

Se all'istanza è già assegnato un indirizzo IPv6 interno, devi prima annullare l'assegnazione di quell'indirizzo. Poi, assegna un nuovo indirizzo all'istanza utilizzando l'interfaccia di rete dell'istanza.

Per modificare o assegnare un indirizzo IPv6 interno statico a un'istanza VM esistente, completa i seguenti passaggi.

Console

  1. Prenota un indirizzo IPv6 interno statico.
  2. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  3. Fai clic sul nome dell'istanza di cui vuoi modificare l'indirizzo IPv6 interno.
  4. Nella pagina Dettagli istanza, completa i seguenti passaggi:

    1. Fai clic su Modifica.
    2. Espandi Interfacce di rete.
    3. Nell'elenco Indirizzo IPv6 interno principale, seleziona Assegnato automaticamente (/96) o un indirizzo IPv6 interno statico riservato.
    4. Fai clic su Fine.
  5. Fai clic su Salva.

gcloud

Utilizza il comando compute instances network-interfaces update.

gcloud compute instances network-interfaces update VM_NAME \
    --network-interface NIC \
    --ipv6-network-tier PREMIUM \
    --stack-type IPV4_IPV6 \
    --internal-ipv6-address INTERNAL_IPV6_ADDRESS \
    --zone ZONE

Sostituisci quanto segue:

  • VM_NAME: il nome della VM che vuoi creare.
  • NIC: il nome dell'interfaccia di rete da aggiornare.
  • INTERNAL_IPV6_ADDRESS: l'indirizzo IPv6 interno /96 da assegnare all'interfaccia, il nome dell'indirizzo IP o l'URI della risorsa indirizzo.
  • ZONE: la zona per la VM.

REST

Utilizza il metodo instances.update. Aggiorna la proprietà networkInterfaces[].ipv6Address con l'indirizzo IPv6 interno che vuoi assegnare.

Ad esempio:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
  {
    ...
    "networkInterfaces": [{
      "accessConfigs": [{
        "type": "ONE_TO_ONE_NAT",
        "name": "External NAT",
      }],
      "stackType": "IPV4_IPV6"
      "ipv6Address": "IPV6_ADDRESS",
      "internalIpv6PrefixLength": 96
      "subnetwork": "regions/REGION/subnetworks/SUBNETWORK",
    }],
    "disks": [{
      "autoDelete": "true",
      "boot": "true",
      "type": "PERSISTENT",
      "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/v20150818"
      }
    }]
  }
 

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova la VM.
  • ZONE: la zona in cui creare la VM.
  • VM_NAME: il nome della VM.
  • IPV6_ADDRESS: l'indirizzo IPv6 interno da assegnare alla VM.

    Se specifichi l'URI della risorsa indirizzo IPv6 interno o un intervallo di indirizzi IPv6 come valore per IPV6_ADDRESS, devi lasciare vuoto il valore internalIpv6PrefixLength.

Gestisci indirizzi IP interni statici

Le seguenti procedure consentono di gestire gli indirizzi IP interni statici per le VM:

Determinare se un indirizzo IPv4 o IPv6 interno è temporaneo o statico

Gli indirizzi IP interni statici e temporanei si comportano e vengono visualizzati allo stesso modo nella maggior parte dei contesti. Tuttavia, con gli indirizzi IP interni statici, puoi utilizzare lo stesso indirizzo IP per la stessa risorsa anche se la elimini e ricrei. In generale, un indirizzo IP temporaneo viene rilasciato se arresti o elimini la risorsa.

Per determinare se un indirizzo è statico o temporaneo:

  1. Nella console Google Cloud, vai alla pagina Indirizzi IP.

    Vai agli indirizzi IP

  2. Trova l'indirizzo nell'elenco e verifica il tipo di indirizzo IP nella colonna Type (Tipo).

Annulla l'assegnazione di un indirizzo IPv6 interno statico

Puoi annullare l'assegnazione di un indirizzo IPv6 interno statico a un'istanza VM aggiornando l'interfaccia di rete dell'istanza o eliminando l'istanza a cui è assegnato l'indirizzo.

Quando annulli l'assegnazione di un indirizzo IPv6 interno, il sistema lo rimuove dalla risorsa, ma mantiene l'indirizzo riservato per il tuo progetto. Puoi riassegnare l'indirizzo a un'altra risorsa in un secondo momento.

Per annullare l'assegnazione di un indirizzo IPv6 interno statico a un'istanza VM, completa i passaggi seguenti.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic sul nome dell'istanza di cui vuoi annullare l'assegnazione dell'indirizzo IPv6 interno.
  3. Nella pagina Dettagli istanza, completa i seguenti passaggi:

    1. Fai clic su Modifica.
    2. Espandi Interfacce di rete.
    3. Per Tipo di stack IP, seleziona IPv4 (stack singolo).
    4. Fai clic su Fine.
  4. Fai clic su Salva.

gcloud

Utilizza il comando compute instances network-interfaces update con il flag --stack-type impostato su IPV4_ONLY:

gcloud compute instances network-interfaces update VM_NAME \
    --network-interface NIC \
    --stack-type IPV4_ONLY \
    --zone ZONE

Sostituisci quanto segue:

  • VM_NAME: il nome della VM la cui interfaccia di rete vuoi aggiornare.
  • NIC: il nome dell'interfaccia di rete da aggiornare.
  • ZONE: la zona per la VM.

Controlla che il tuo indirizzo IPv6 interno statico sia ora disponibile e contrassegnato come RESERVED anziché IN_USE:

gcloud compute addresses list \
    --filter="region=REGION AND name=NAME"

REST

Aggiorna il tipo di stack di istanze dell'interfaccia di rete a cui è collegato l'indirizzo IPv6 interno:

  1. Invia una richiesta PATCH al metodo instances.updateNetworkInterface.
  2. Nel corpo della richiesta, aggiorna il valore del campo stackType in IPV4_ONLY.

    Ad esempio:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateNetworkInterface
    {
      "networkInterfaces": [{
        ...
        "stackType" : "IPV4_ONLY"
        ...
        }]
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto in cui si trova la VM.
    • ZONE: la zona in cui creare la VM.
    • VM_NAME: il nome della VM.

Rilascia un indirizzo IP interno statico

Se non hai più bisogno di un indirizzo IPv4 o IPv6 esterno statico, puoi rilasciare l'indirizzo IP eliminando la risorsa indirizzo IP. L'eliminazione di una VM non rilascia automaticamente un indirizzo IP esterno statico. Devi rilasciare manualmente gli indirizzi IP esterni statici quando non sono più necessari.

Per rilasciare un indirizzo IP interno statico, consulta Rilasciare un indirizzo IPv4 o IPv6 interno statico nella documentazione di VPC.

Passaggi successivi