Configurare gli indirizzi IP interni statici


Questa pagina mostra come configurare e gestire indirizzi IPv4 o IPv6 interni statici 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 la VM utilizzando una delle seguenti opzioni:

Per scoprire come gestire gli indirizzi IP interni secondari, consulta Intervalli IP di 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 indirizzi IP esterni statici.

Prima di iniziare

  • Scopri di più sugli indirizzi IP.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. Terraform

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

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Per ulteriori informazioni, consulta Set up authentication for a local development environment.

      REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Per saperne di più, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Ruoli obbligatori

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

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

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

Autorizzazioni obbligatorie

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

  • compute.instances.update nell'istanza VM
  • compute.instances.updateNetworkInterface nell'istanza VM
  • compute.instances.addAccessConfig nell'istanza VM
  • compute.instances.deleteAccessConfig nell'istanza VM
  • compute.networks.list sulla rete
  • compute.subnetworks.use nella subnet
  • compute.subnetworks.list nella subnet
  • Per creare le VM:
    • compute.instances.create sul progetto
    • Per utilizzare un'immagine personalizzata per creare la VM: compute.images.useReadOnly sull'immagine
    • Per utilizzare uno snapshot per creare la VM: compute.snapshots.useReadOnly nello snapshot
    • Per utilizzare un modello di istanza per creare la VM: compute.instanceTemplates.useReadOnly nel modello di istanza
    • Per assegnare una rete legacy alla VM: compute.networks.use nel progetto
    • Per specificare un indirizzo IP statico per la VM: compute.addresses.use nel progetto
    • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete precedente: 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
    • Per impostare i metadati dell'istanza VM per la VM: compute.instances.setMetadata nel progetto
    • Per impostare i tag per la VM: compute.instances.setTags sulla VM
    • Per impostare le etichette per la VM: compute.instances.setLabels sulla VM
    • Per impostare un account di servizio per l'utilizzo di: compute.instances.setServiceAccount sulla VM
    • Per creare un nuovo disco per la VM: compute.disks.create nel progetto
    • Per collegare un disco esistente in modalità di sola lettura o di lettura e scrittura: compute.disks.use sul disco
    • Per collegare un disco esistente in modalità di sola lettura: compute.disks.useReadOnly sul disco

Potresti anche ottenere queste autorizzazioni con 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 interrotta. Tuttavia, puoi promuovere l'indirizzo IP interno temporaneo di una risorsa a un indirizzo IP interno statico in modo che rimanga prenotato anche dopo l'eliminazione della risorsa.

  • Il numero di indirizzi IP statici interni che puoi prenotare non può superare la quota del progetto. Per ulteriori informazioni, consulta le quote per progetto nella documentazione 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 li necessiti più.

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

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

Come configurare un indirizzo IP interno statico

Puoi prenotare un indirizzo IP interno statico, quindi specificare l'indirizzo riservato quando crei una VM. Puoi anche creare la VM con un indirizzo IP interno temporaneo e poi promuoverlo a un indirizzo IP interno statico.

Per utilizzare un indirizzo IP interno statico, devi avere una rete VPC per il tuo progetto. Per visualizzare le reti VPC nel tuo progetto, consulta Visualizzare le reti VPC.

Prenota un indirizzo IPv4 o IPv6 interno statico e poi associalo a una VM specifica

In questo scenario, prenoti separatamente un indirizzo IP interno statico e poi 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 e poi promuovilo

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. Crea un'istanza VM con un indirizzo IPv4 o IPv6 temporaneo allocato automaticamente o un indirizzo IPv4 specifico.

  3. Esegui la promozione dell'indirizzo IP interno temporaneo a un indirizzo statico.

I due metodi sono descritti nella Figura 1.

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

Visualizzare 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 a 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

Come vengono assegnati gli indirizzi IP interni

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

Gli indirizzi IPv4 interni possono essere assegnati nei seguenti modi:

  • Compute Engine assegna automaticamente un singolo indirizzo IPv4 dall'intervallo della 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 assegnarlo a un'interfaccia di rete VM.

Gli indirizzi IPv6 interni possono essere assegnati nei seguenti modi:

Utilizza indirizzi IP interni statici prenotati quando crei risorse

Dopo aver prenotato un indirizzo IP interno statico, puoi assegnare l'indirizzo riservato quando crei una VM o un bilanciatore del carico interno.

Le procedure riportate di seguito descrivono come utilizzare indirizzi IP interni statici при создании ресурсов:

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

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 VM.

    Vai a Crea un'istanza VM

  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 che contenga una subnet IPv6.
    2. Seleziona una subnet dual-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 la procedura di creazione della VM.

  8. Fai clic su Crea.

gcloud

  • Utilizza il comando instances create per creare un'istanza VM con un indirizzo IPv4 interno riservato e utilizza il flag --private-network-ip per specificare l'indirizzo IP:

    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 IP:

    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 riservato prima di poter essere utilizzato.
    • ZONE: la zona della 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 la proprietà networkInterfaces[].networkIP con 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 VM con un indirizzo IP temporaneo, l'indirizzo torna nel pool di indirizzi non allocati. Se hai bisogno di un indirizzo IP interno che persista oltre la durata dell'istanza, puoi prenotare un indirizzo IP interno statico.

Assegna un indirizzo interno statico all'interfaccia di rete secondaria di una VM

Quando crei un'istanza VM con più interfacce di rete, puoi utilizzare un indirizzo IPv4 o IPv6 interno statico riservato sia per le interfacce di rete principali che per quelle 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.

Modificare o assegnare un indirizzo IPv6 interno a una VM esistente

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

Se all'istanza è già stato assegnato un indirizzo IPv6 interno, devi prima annullarne l'assegnazione. Quindi, 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 Allocato 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 della 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 di internalIpv6PrefixLength.

Gestire gli indirizzi IP interni statici

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

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

Gli indirizzi IP interni statici e temporanei si comportano e appaiono 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 la ricrei. In genere, un indirizzo IP temporaneo viene rilasciato se interrompi o elimini la risorsa.

Per determinare se un indirizzo è statico o temporaneo:

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

    Vai a indirizzi IP

  2. Individua l'indirizzo nell'elenco e controlla la colonna Tipo per conoscere il tipo di indirizzo IP.

Annullare l'assegnazione di un indirizzo IPv6 interno statico

Puoi annullare l'assegnazione di un indirizzo IPv6 interno statico da un'istanza VM a doppio stack aggiornando il tipo di stack per 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. In un secondo momento, puoi riassegnare l'indirizzo a un'altra risorsa.

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

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 di cui vuoi aggiornare l'interfaccia di rete.
  • NIC: il nome dell'interfaccia di rete da aggiornare.
  • ZONE: la zona della VM.

Verifica che l'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 dell'istanza 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.

Rilasciare un indirizzo IP interno statico

Se non hai più bisogno di un indirizzo IP IPv4 o IPv6 interno statico, puoi rilasciarlo eliminando la risorsa indirizzo IP. L'eliminazione di una VM non comporta il rilascio automatico di un indirizzo IP esterno statico. Devi rilasciare manualmente gli indirizzi IP esterni statici quando non li utilizzi più.

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

Passaggi successivi