Configura indirizzi IP interni statici


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

Se un'istanza VM richiede un indirizzo IP interno fisso 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 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. Autenticazione è Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    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 dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura 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 ulteriori informazioni, vedi Esegui 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 sull'istanza VM
  • compute.instances.deleteAccessConfig nell'istanza VM
  • compute.networks.list sulla rete
  • compute.subnetworks.use sulla subnet
  • compute.subnetworks.list nella subnet
  • Per creare le VM:
    • compute.instances.create nel 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 nel progetto viene utilizzata una rete precedente: compute.networks.useExternalIp
    • 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 consentire alla VM di utilizzare: 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 lettura/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 interni statici che puoi prenotare non può superare della quota del tuo 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 reti VPC. Non è supportato per le reti in modalità legacy.

  • L'eliminazione di una risorsa non rilascia automaticamente un 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 esiste un indirizzo IP interno statico riservato in Region A, può usare 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 con una VM specifica

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

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

  2. Prenotare un indirizzo IP interno dall'intervallo IP principale della subnet. Questo passaggio crea una risorsa di indirizzo IP interno denominata che contiene quella specifica all'indirizzo IP interno. La prenotazione dell'indirizzo IP impedisce a Google Cloud di allocarlo automaticamente come indirizzo temporaneo.

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

Specifica un indirizzo IPv4 o IPv6 interno temporaneo per una VM e 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. Crea un'istanza VM con un'istanza un indirizzo IPv4 o IPv6 temporaneo allocato automaticamente oppure un indirizzo IPv4 specifico .

  3. Promuovi dall'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 dell'indirizzo IP interno (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 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 connessi. Ogni interfaccia di rete ha un indirizzo IPv4 interno primario assegnato dall'intervallo IPv4 principale della subnet. Se la VM viene utilizzata connessa a una subnet a doppio stack con un intervallo IPv6 interno, puoi assegnare un indirizzo IPv6 interno a ogni rete a riga di comando.

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 una VM oppure prenotare un indirizzo IPv4 interno statico per il tuo progetto e assegna quell'indirizzo a un'interfaccia di rete VM.

Gli indirizzi IPv6 interni possono essere assegnati nei seguenti modi:

Utilizza indirizzi IP interni statici prenotati durante la creazione delle 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 seguenti procedure descrivono come utilizzare l'IP interno statico indirizzi IP durante la creazione delle risorse:

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 prenotare un nuovo indirizzo IPv4 interno statico.

  5. Per assegnare un indirizzo IPv6 interno:

    1. Seleziona una rete che contiene 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 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 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 indietro 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 l'istanza principale che per quella secondaria interfacce di rete.

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à assegnato un indirizzo IPv6 interno, devi annulla l'assegnazione dell'indirizzo. Poi assegna un nuovo indirizzo a utilizzando l'interfaccia di rete dell'istanza.

Per modificare o assegnare un indirizzo IPv6 interno statico a una 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 inserire l'indirizzo IPv6 interno modifica.
  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.

Gestisci indirizzi IP interni statici

Le seguenti procedure consentono di gestire gli indirizzi IP interni statici indirizzi IP 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 hanno lo stesso aspetto nella maggior parte i contesti. Tuttavia, con gli indirizzi IP interni statici puoi utilizzare per la stessa risorsa anche se la elimini e la crei nuovamente. In generale, se interrompi o elimini il comando, viene rilasciato risorsa.

Per determinare se un indirizzo è statico o temporaneo:

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

    Vai a indirizzi IP

  2. Trova l'indirizzo nell'elenco e controlla nella colonna Tipo 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 ma mantiene l'indirizzo riservato per il 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 la 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 la 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 per la 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 rilascia automaticamente un indirizzo IP esterno statico. Devi rilasciare manualmente 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 VPC.

Passaggi successivi