Configurazione dell'accesso privato ai servizi

L'accesso privato ai servizi è una connessione privata tra la tua rete VPC e una rete di proprietà di Google o di terze parti. Google o la terza parte, le entità che offrono servizi, sono anche note come produttori di servizi. La connessione privata consente alle istanze VM nella tua rete VPC e ai servizi a cui accedi di comunicare esclusivamente mediante indirizzi IP interni. Le istanze VM non hanno bisogno dell'accesso a internet o di indirizzi IP esterni per raggiungere i servizi disponibili tramite l'accesso privato ai servizi.

Per scoprire di più sull'accesso privato ai servizi e su altre opzioni di accesso privato, consulta Opzioni di accesso privato per i servizi.

A livello generale, per utilizzare l'accesso privato ai servizi, devi allocare un intervallo di indirizzi IP (blocco CIDR) nella tua rete VPC e quindi creare una connessione privata a un producer di servizi.

Prima di iniziare

Per stabilire una connessione privata, completa i seguenti prerequisiti:

  • Verifica che il servizio che utilizzi supporti l'accesso privato ai servizi.
  • Crea un Google Cloud progetto o scegline uno esistente. Per scoprire come creare un progetto Google Cloud , consulta la pagina Creare e gestire progetti.
  • Attiva l'API Service Networking nel tuo progetto. L'API è necessaria per creare una connessione privata.
  • Crea o scegli una rete VPC che utilizzerai per connetterti alla rete del producer di servizi. Le istanze VM devono utilizzare questa rete VPC per connettersi ai servizi tramite una connessione privata.
  • Installa gcloud CLI se vuoi eseguire gli esempi di riga di comando gcloud in questa guida.

Autorizzazioni

I proprietari del progetto e i membri IAM con il ruolo Amministratore rete Compute (roles/compute.networkAdmin) possono creare intervalli di indirizzi IP allocati e gestire le connessioni private.

Per ulteriori informazioni sui ruoli, consulta la documentazione relativa ai ruoli IAM VPC.

Scenario VPC condiviso

Se utilizzi il VPC condiviso, crea l'intervallo IP allocato e la connessione privata nel progetto host. In genere, queste attività devono essere eseguite da un amministratore di rete nel progetto host. Una volta configurato il progetto host, le istanze VM nei progetti di servizio possono utilizzare la connessione privata.

Quote e limiti

Poiché una connessione privata viene implementata come connessione di peering VPC, si applicano anche le stesse quote e gli stessi limiti che si applicano al peering di rete VPC.

Intervalli di indirizzi IP allocati per i servizi

Prima di creare una connessione privata, devi allocare un intervallo di indirizzi IPv4 da utilizzare dalla rete VPC del producer di servizi. In questo modo si garantisce che non si verifichi una collisione di indirizzi IP tra la tua rete VPC e la rete deproducer di servizier. Crea un intervallo allocato per ogni produttore di servizi.

Quando allochi un intervallo nella rete VPC, questo non è idoneo per le subnet (intervalli primari e secondari) e le destinazioni delle route statiche personalizzate.

L'utilizzo di intervalli di indirizzi IPv6 con l'accesso ai servizi privati non è supportato.

Dimensione dell'intervallo di indirizzi IP

Intervalli di accesso privato ai servizi.
Intervalli di accesso ai servizi privati (fai clic per ingrandire).

Quando un producer di servizi crea una subnet sul proprio lato della connessione, viene selezionato un intervallo aperto dall'allocazione per l'intervallo di indirizzi IP della subnet.

Ogni producer di servizi richiede dimensioni minime per l'intervallo di indirizzi IP. Per Google, la dimensione minima è un singolo blocco /24 (256 indirizzi), ma la dimensione consigliata è un blocco /16 (65.536 indirizzi).

Le dimensioni che scegli dipendono da diversi fattori, ad esempio:

  • Il numero di servizi e regioni che utilizzi.
  • I requisiti per i servizi che utilizzi.
    • La dimensione minima dell'intervallo di indirizzi IP per i servizi.
    • Se il fornitore di servizi richiede intervalli IP separati per ogni istanza del servizio che crei o se può utilizzare lo stesso intervallo IP per più istanze del servizio.

Se non hai un blocco /16 contiguo, puoi iniziare con un'allocazione più piccola e aggiungerne di nuovi se hai bisogno di più indirizzi IP in un secondo momento.

Informazioni sulla subnet del producer di servizi

Quando stabilisci una connessione privata e crei una risorsa con un indirizzo IP privato, il servizio crea una subnet in cui eseguire il provisioning della risorsa. Il servizio seleziona un intervallo di indirizzi IP disponibile dall'intervallo allocato. Non puoi selezionare o modificare l'intervallo di indirizzi IP della subnet del producer di servizi. La subnet viene eliminata dal servizio solo quando elimini tutte le risorse nella subnet.

Man mano che esegui il provisioning di risorse aggiuntive, il servizio le esegue nelle subnet regionali esistenti che ha creato in precedenza. Se una subnet è piena, il servizio ne crea una nuova in quella regione.

Considerazioni

Prima di allocare un intervallo di indirizzi IP, considera quanto segue:

  • Seleziona un intervallo allocato completamente separato dagli intervalli di subnet attuali e futuri, inclusi gli intervalli di subnet delle reti connesse tramite il peering di rete VPC e gli intervalli di subnet degli spoke VPC connessi allo stesso hub Network Connectivity Center.
  • Seleziona un intervallo che non corrisponda esattamente o non contenga le destinazioni di nessun percorso statico o dinamico personalizzato.

    Quando un producer di servizi seleziona una parte inutilizzata di un intervallo allocato da utilizzare come candidato per le nuove risorse, esclude tutte le destinazioni di route personalizzate che corrispondono esattamente all'intervallo allocato o rientrano al suo interno. Quando una rete VPC contiene un intervallo allocato e route personalizzate con destinazioni che corrispondono o rientrano nell'intervallo allocato, la porzione utilizzabile dell'intervallo allocato viene ridotta. Questa configurazione può causare errori imprevisti di allocazione esaurita.

    Ad esempio, se crei un intervallo allocato per 10.0.0.0/16, si applica quanto segue:

    • Se esiste o viene creata in un secondo momento una route personalizzata con una destinazione per 10.0.0.0/16, l'intero intervallo 10.0.0.0/16 viene considerato non disponibile. Se un producer di servizi tenta di utilizzare l'intervallo allocato, Google Cloud restituisce un errore di allocazione esaurita.

    • Se esiste o viene creata in un secondo momento una route personalizzata con una destinazione per 10.0.0.0/20, la parte 10.0.0.0/20 dell'intervallo allocato 10.0.0.0/16 è considerata non disponibile. Se un producer di servizi tenta di utilizzare l'intervallo allocato e la parte disponibile dell'intervallo allocato non è sufficiente per un producer di servizi, Google Cloud restituisce un errore di allocazione esaurita.

    • Se esiste o viene creata in un secondo momento una route personalizzata con una destinazione per 10.0.0.0/8, ciò non influisce sulla disponibilità dell'intervallo allocato 10.0.0.0/16.

  • Seleziona un intervallo che non sia in conflitto con le altre esigenze di indirizzi IP:

    • Alcuni prodotti Google e di terze parti utilizzano 172.17.0.0/16 per il routing all'interno del sistema operativo guest. Ad esempio, la rete bridge Docker predefinita utilizza questo intervallo. Se utilizzi un prodotto che usa 172.17.0.0/16, non utilizzare 172.17.0.0/16 in un intervallo allocato per l'accesso ai servizi privati.
    • Se utilizzi una rete VPC in modalità automatica, non puoi creare un intervallo allocato che corrisponda o si sovrapponga a 10.128.0.0/9. Google utilizza l'intervallo 10.128.0.0/9 per le subnet create automaticamente, incluse quelle nelle regioni future.
  • Seleziona un blocco CIDR sufficientemente grande da soddisfare le tue esigenze attuali e future. Se in un secondo momento scopri che l'intervallo non è sufficiente, espandilo, se possibile. Sebbene tu possa assegnare più allocazioni a un singolo producer di servizi, Google applica una quota al numero di intervalli di indirizzi IP che puoi allocare, ma non alle dimensioni (netmask) di ogni intervallo.

  • Se aggiungi un intervallo allocato aggiuntivo a una connessione privata, l'intervallo di indirizzi IP a disposizione del producer di servizi viene ampliato quando crea nuove risorse di servizio per qualsiasi servizio fornito. Non puoi riservare un intervallo allocato specifico all'interno di una connessione privata per l'utilizzo da parte di un servizio particolare.

  • Non riutilizzare lo stesso intervallo allocato per più produttori di servizi. Anche se è possibile, questa operazione può causare la sovrapposizione degli indirizzi IP. Ogni producer di servizi ha visibilità solo sulla propria rete e non può sapere quali indirizzi IP utilizzano gli altri produttori di servizi.

  • Puoi assegnare un solo blocco CIDR a un intervallo allocato quando crei l'allocazione. Se devi espandere l'intervallo di indirizzi IP, non puoi aggiungere altri blocchi a un'allocazione. Puoi invece creare un'altra allocazione o ricreare quella esistente utilizzando un blocco più grande che comprenda gli intervalli nuovi ed esistenti.

  • Se crei l'allocazione autonomamente anziché farla creare da Google (ad esempio tramite Cloud SQL), puoi utilizzare la stessa convenzione di denominazione per segnalare ad altri utenti o servizi Google che esiste già un'allocazione per Google. Quando un servizio Google alloca un intervallo per tuo conto, utilizza il seguente formato per denominare l'allocazione: google-managed-services-[your network name]. Se questa allocazione esiste, i servizi Google utilizzano quella esistente anziché crearne un'altra.

  • Poiché una connessione privata viene implementata come connessione peering di rete VPC, anche i comportamenti e i vincoli delle connessioni peering si applicano alle connessioni private, ad esempio i limiti del peering di rete VPC.

  • Se prevedi di modificare l'indirizzo IP interno di un'istanza di servizio esistente che utilizza VPC, valuta se questa azione potrebbe essere interruttiva, ad esempio se richiede l'eliminazione e la ricreazione dell'istanza di servizio. Per saperne di più, consulta la documentazione del servizio gestito associato. Ad esempio, se utilizzi Cloud SQL, consulta Modificare l'indirizzo IP privato di un'istanza Cloud SQL esistente.

Crea un'allocazione IP

I seguenti passaggi descrivono come creare un intervallo di indirizzi IP allocato.

Console

  1. Nella console Google Cloud , vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Seleziona la rete VPC che si connetterà a un service producer.

  3. Seleziona la scheda Accesso ai servizi privati.

  4. Nella scheda Accesso ai servizi privati, seleziona la scheda Intervalli IP allocati per i servizi.

  5. Fai clic su Assegna intervallo IP.

  6. Inserisci un nome e una descrizione per l'intervallo allocato.

  7. Specifica un intervallo IP per l'allocazione:

    • Per specificare un intervallo di indirizzi IP, seleziona Personalizzato e poi inserisci un blocco CIDR, ad esempio 192.168.0.0/16.
    • Per specificare una lunghezza del prefisso e consentire a Google di selezionare un intervallo disponibile, seleziona Automatico e poi inserisci una lunghezza del prefisso, ad esempio 16.
  8. Fai clic su Alloca per creare l'intervallo allocato.

gcloud

Per creare un intervallo allocato nella tua rete VPC, utilizza il comando addresses create.

  • Per specificare un intervallo di indirizzi e una lunghezza del prefisso (subnet mask), utilizza i flag addresses e prefix-length. Ad esempio, per allocare il blocco CIDR 192.168.0.0/16, specifica 192.168.0.0 per l'indirizzo e 16 per la lunghezza del prefisso.

    gcloud compute addresses create RESERVED_RANGE_NAME \
        --global \
        --purpose=VPC_PEERING \
        --addresses=192.168.0.0 \
        --prefix-length=16 \
        --description="DESCRIPTION" \
        --network=VPC_NETWORK
    
  • Per specificare solo una lunghezza del prefisso (subnet mask), utilizza il flag prefix-length. Quando ometti l'intervallo di indirizzi, Google Cloud viene selezionato automaticamente un intervallo di indirizzi non utilizzato nella rete VPC. L'esempio seguente seleziona un intervallo di indirizzi IP non utilizzato con una lunghezza del prefisso di 16 bit.

    gcloud compute addresses create RESERVED_RANGE_NAME \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --description="DESCRIPTION" \
        --network=VPC_NETWORK
    

Sostituisci quanto segue:

  • RESERVED_RANGE_NAME: un nome per l'intervallo allocato, ad esempio my-allocated-range.

  • DESCRIPTION: una descrizione dell'intervallo, ad esempio allocated for my-service.

  • VPC_NETWORK: il nome della tua rete VPC, ad esempio my-vpc-network.

Il seguente esempio crea una connessione privata a Google in modo che le istanze VM nella rete VPC my-network possano utilizzare l'accesso privato ai servizi per raggiungere i servizi Google che lo supportano.

gcloud compute addresses create google-managed-services-my-network \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=16 \
    --description="peering range for Google" \
    --network=my-network

Terraform

Per creare un intervallo allocato nella tua rete VPC, utilizza la risorsa google_compute_global_address.

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

Se visualizzi un errore relativo all'autorizzazione compute.globalAddresses.list per il progetto, consulta Autorizzazioni del service account.

Elenca gli intervalli di indirizzi IP allocati

Per elencare gli intervalli di indirizzi IP allocati, utilizza il comando addresses list.

gcloud compute addresses list --global --filter="purpose=VPC_PEERING"

Crea una connessione privata

Dopo aver creato un intervallo allocato, puoi creare una connessione privata a un producer di servizi. La connessione privata stabilisce una connessione di peering di rete VPC tra la tua rete VPC e la rete del producer di servizi.

Le connessioni private sono una relazione one-to-one tra la tua rete VPC e un producer di servizi. Se un singolo producer di servizi offre più servizi, è necessaria una sola connessione privata per tutti i servizi del producer.

Se un singolo producer di servizi offre più servizi e vuoi controllare quali intervalli allocati vengono utilizzati per risorse di servizi diversi, puoi utilizzare più reti VPC, ognuna con le proprie connessioni private. Questa configurazione ti consente di selezionare una rete specifica quando crei una nuova risorsa di servizio gestito per assicurarti che gli intervalli allocati associati vengano utilizzati per la nuova risorsa.

Se ti connetti a più producer di servizi, utilizza un'allocazione univoca per ciascun producer di servizi. Questa pratica ti aiuta a gestire le impostazioni di rete, come le route e le regole firewall, per ogniproducer di servizii.

Console

  1. Nella console Google Cloud , vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Seleziona la rete VPC che si connetterà a un service producer.

  3. Seleziona la scheda Accesso ai servizi privati.

  4. Nella scheda Accesso privato ai servizi, seleziona la scheda Connessioni private ai servizi.

  5. Fai clic su Crea connessione per creare una connessione privata tra la tua rete e un producer di servizi.

  6. Per l'allocazione assegnata, seleziona uno o più intervalli allocati esistenti che non vengono utilizzati da altri produttori di servizi.

  7. Fai clic su Connetti per creare la connessione.

gcloud

  1. Utilizza il comando vpc-peerings connect.

    gcloud services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=RESERVED_RANGE_NAME \
        --network=VPC_NETWORK
    

    Sostituisci quanto segue:

    • RESERVED_RANGE_NAME: il nome di uno o più intervalli allocati.

    • VPC_NETWORK: il nome della tua rete VPC.

    Il comando avvia un'operazione a lunga esecuzione, restituendo un nome operazione.

  2. Per verificare se l'operazione è andata a buon fine, utilizza il comando vpc-peerings operations describe.

    gcloud services vpc-peerings operations describe \
        --name=OPERATION_NAME
    

    Sostituisci OPERATION_NAME con il nome dell'operazione restituito dal passaggio precedente.

Puoi specificare più di un intervallo allocato quando crei una connessione privata. Ad esempio, se un intervallo è esaurito, puoi assegnare intervalli allocati aggiuntivi. Il servizio utilizzerà gli indirizzi IP di tutti gli intervalli forniti nell'ordine specificato.

Terraform

Per creare una connessione privata, utilizza la risorsa google_service_networking_connection.

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

Elenca le connessioni private

Dopo aver creato una connessione privata, puoi elencarla per verificare che esista. L'elenco mostra anche l'elenco degli intervalli allocati associati a ciascuna connessione. Ad esempio, se non ricordi quale intervallo allocato hai assegnato a una connessione, visualizza l'elenco per scoprirlo.

Console

  1. Nella console Google Cloud , vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Seleziona la rete VPC che contiene le connessioni.

  3. Seleziona la scheda Accesso ai servizi privati.

  4. Nella scheda Accesso privato ai servizi, seleziona la scheda Connessioni private ai servizi per visualizzare tutte le connessioni private della rete.

gcloud

Utilizza il comando vpc-peerings list.

gcloud services vpc-peerings list \
    --network=VPC_NETWORK

Sostituisci VPC_NETWORK con il nome della tua rete VPC.

Modifica una connessione privata

Per le connessioni private esistenti, puoi aggiungere o rimuovere intervalli di indirizzi IP allocati senza interrompere il traffico. Ad esempio, man mano che aumenti le dimensioni, potresti aggiungere un intervallo allocato se stai per esaurire quello esistente.

Quando rimuovi un intervallo da una connessione privata, si applica quanto segue:

  • L'intervallo allocato non è più associato alla connessione privata, ma non viene eliminato.

  • Le risorse del producer di servizi esistenti potrebbero continuare a utilizzare l'intervallo rimosso.

  • L'accesso privato ai servizi non utilizza gli intervalli rimossi per allocare nuove subnet.

Console

  1. Nella console Google Cloud , vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Seleziona la rete VPC che contiene le connessioni.

  3. Seleziona la scheda Accesso ai servizi privati.

  4. Nella scheda Accesso privato ai servizi, seleziona la scheda Connessioni private ai servizi per visualizzare tutte le connessioni private della rete.

  5. Fai clic sul nome di una connessione nell'elenco.

  6. Nell'elenco Allocazione assegnata, seleziona gli intervalli allocati che vuoi associare alla connessione privata. Deseleziona le caselle di controllo per gli intervalli allocati che vuoi rimuovere dalla connessione privata.

  7. Fai clic su OK.

gcloud

Per aggiungere o rimuovere intervalli di indirizzi IP allocati assegnati a una connessione privata esistente, utilizza il comando vpc-peerings update.

gcloud services vpc-peerings update \
    --service=servicenetworking.googleapis.com \
    --ranges=RESERVED_RANGE_NAME \
    --network=VPC_NETWORK \
    [--force]

Sostituisci quanto segue:

  • RESERVED_RANGE_NAME: un elenco di uno o più nomi di intervalli allocati da assegnare alla connessione privata.

    RESERVED_RANGE_NAME sostituisce l'elenco precedente di intervalli allocati. Se ometti un intervallo precedentemente associato a questa connessione privata, l'intervallo viene rimosso dalla connessione. Devi utilizzare l'opzione --force per rimuovere un intervallo.

  • VPC_NETWORK: il nome della tua rete VPC.

Eliminare un intervallo di indirizzi IP allocato

Prima di eliminare un intervallo di indirizzi IP allocato, controlla se l'intervallo è in uso da una connessione privata.

Se l'intervallo di indirizzi IP allocato è in uso, prima modifica la connessione privata per rimuovere l'intervallo. Poi elimina l'intervallo di indirizzi IP allocato.

Se elimini un indirizzo IP allocato in uso e non modifichi la connessione privata, si applica quanto segue:

  • Le connessioni esistenti rimangono attive, ma non c'è nulla che impedisca alla tua rete VPC di utilizzare indirizzi IP che si sovrappongono a quelli della rete del producer di servizi.

  • Se elimini l'unico intervallo di indirizzi IP allocato associato a una connessione privata, il servizio non può creare nuove subnet perché non è presente alcun intervallo di indirizzi IP allocato da selezionare.

  • Se in un secondo momento crei un intervallo di indirizzi IP allocato che corrisponde o si sovrappone all'intervallo eliminato, l'aggiunta dell'intervallo a una connessione privata non va a buon fine.

Per evitare questi problemi, modifica sempre le connessioni private quando elimini un intervallo di indirizzi IP allocato in uso.

Console

  1. Nella console Google Cloud , vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Seleziona la rete VPC che contiene le allocazioni da eliminare.

  3. Seleziona la scheda Accesso ai servizi privati.

  4. Nella scheda Accesso ai servizi privati, seleziona la scheda Intervalli IP allocati per i servizi.

  5. Seleziona l'assegnazione da eliminare.

  6. Fai clic su Rilascia per restituire l'intervallo di indirizzi IP allocato al pool di indirizzi IP interni disponibili della rete.

    Se l'intervallo di indirizzi IP allocato è ancora assegnato a una connessione esistente, devi inserire un'ulteriore conferma prima di poter rilasciare l'allocazione.

  7. Fai di nuovo clic su Rilascia per confermare l'eliminazione.

gcloud

Elimina l'allocazione specificandone il nome.

gcloud compute addresses delete NAME \
    --global

SostituisciNAME con il nome dell'intervallo allocato che vuoi eliminare.

Elimina una connessione privata

Per eliminare una connessione privata, completa la procedura descritta in questa sezione. Non tentare di eliminare una connessione privata eliminando direttamente la connessione di peering di rete VPC associata.

Prima di eliminare una connessione privata, devi eliminare tutte le istanze di servizio a cui accedi tramite la connessione. Ad esempio, se vuoi eliminare una connessione privata utilizzata per accedere a Cloud SQL, devi prima eliminare le istanze Cloud SQL che utilizzano quella connessione. Dopo aver eliminato le istanze di servizio, le risorse delproducer di servizii vengono eliminate, ma questa eliminazione potrebbe non avvenire immediatamente. Alcuni produttori di servizi ritardano l'eliminazione fino al termine di un periodo di attesa. Non puoi eliminare la connessione privata durante il periodo di attesa. Devi attendere l'eliminazione delle risorse del producer di servizi prima di poter eliminare la connessione.

Ad esempio, se elimini un'istanza Cloud SQL, ricevi una risposta di esito positivo, ma il servizio attende quattro giorni prima di eliminare le risorse del produttore del servizio. Il periodo di attesa ti consente di richiedere il reintegro delle risorse se cambi idea in merito all'eliminazione del servizio. Se provi a eliminare la connessione durante il periodo di attesa, l'eliminazione non riesce e viene visualizzato un messaggio che indica che le risorse sono ancora in uso dal producer di servizi.

Console

  1. Nella console Google Cloud , vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Seleziona la rete VPC che contiene le connessioni da eliminare.

  3. Seleziona la scheda Accesso ai servizi privati.

  4. Nella scheda Accesso privato ai servizi, seleziona la scheda Connessione privata ai servizi.

  5. Seleziona la connessione privata da eliminare.

  6. Fai clic su Elimina per eliminare.

  7. Fai di nuovo clic su Elimina per confermare l'eliminazione.

gcloud

Per eliminare la connessione di peering di rete VPC di una connessione privata, utilizza il comando vpc-peerings delete.

gcloud services vpc-peerings delete \
    --service=servicenetworking.googleapis.com \
    --network=VPC_NETWORK

Sostituisci VPC_NETWORK con il nome della tua rete VPC.

Condividere zone DNS private con i produttori di servizi

Le zone private Cloud DNS sono private per la tua rete VPC. Se vuoi consentire a una rete di producer di servizi di risolvere i nomi dalla tua zona privata, puoi configurare il peering DNS tra le due reti.

Quando configuri il peering DNS, fornisci una rete VPC e un suffisso DNS. Se il producer di servizi deve risolvere un indirizzo con questo suffisso DNS, inoltra le query alla tua rete VPC per la risoluzione.

Questi servizi supportati supportano il peering DNS, ad eccezione di Cloud SQL.

Se vuoi abilitare il peering DNS, devi abilitare l'API Cloud DNS nel tuo progetto.

Peering DNS con un producer di servizi

gcloud

Per configurare il peering DNS tra la tua rete VPC e la rete del service provider, utilizza il comando peered-dns-domains create.

gcloud services peered-dns-domains create PEERING_NAME \
    --network=VPC_NETWORK \
    --dns-suffix=DNS_SUFFIX

Sostituisci quanto segue:

  • PEERING_NAME: un nome per questa configurazione di peering DNS.

  • VPC_NETWORK: il nome della tua rete VPC connessa al producer di servizi tramite l'accesso privato ai servizi.

  • DNS_SUFFIX: il suffisso DNS con cui vuoi eseguire il peering con il produttore del servizio. Devi fornire un nome di dominio DNS completo, incluso il punto. Ad esempio, example.com. è un suffisso DNS valido.

Terraform

Per configurare il peering DNS tra la tua rete VPC e la rete del service provider, utilizza la risorsa google_service_networking_peered_dns_domain.


## Uncomment this block after adding a valid DNS suffix

# resource "google_service_networking_peered_dns_domain" "default" {
#   name       = "example-com"
#   network    = google_compute_network.peering_network.name
#   dns_suffix = "example.com."
#   service    = "servicenetworking.googleapis.com"
# }

Elenca le configurazioni di peering DNS

gcloud

Utilizza il comando peered-dns-domains list.

gcloud services peered-dns-domains list \
    --network=VPC_NETWORK

Sostituisci VPC_NETWORK con il nome della tua rete VPC.

Eliminare una configurazione di peering DNS

gcloud

Utilizza il comando peered-dns-domains delete.

gcloud services peered-dns-domains delete PEERING_NAME \
    --network=VPC_NETWORK

Sostituisci quanto segue:

  • PEERING_NAME: il nome della configurazione del peering DNS.

  • VPC_NETWORK: il nome della tua rete VPC.

Risoluzione dei problemi

Quanto spazio di archiviazione viene utilizzato della mia allocazione?

Quando crei una connessione privata con un producer di servizi, allochi un intervallo di indirizzi IP da utilizzare. Se utilizzi più servizi di un produttore di servizi, ogni servizio riserverà un blocco di indirizzi IP dall'intervallo allocato. Puoi controllare quali servizi utilizzano quali indirizzi IP in modo da, ad esempio, vedere quali servizi utilizzano grandi blocchi di indirizzi IP ed evitare l'esaurimento degli indirizzi IP.

Per visualizzare il rapporto di allocazione per gli intervalli allocati, utilizza Network Analyzer. Per ulteriori informazioni, vedi Riepilogo dell'utilizzo degli indirizzi IP per l'accesso privato ai servizi.

In alternativa, per visualizzare quale servizio utilizza un determinato intervallo di indirizzi IP:

  1. Elenca le tue connessioni private.
  2. Trova il nome della connessione di peering che ti connette al produttore di servizi pertinente.
  3. Elenca le route per la tua rete VPC.
  4. Trova le route con un hop successivo che corrisponde al nome della connessione di peering. L'intervallo di destinazione delle route indica gli indirizzi IP utilizzati da ciascun servizio.

Esaurimento dell'intervallo di indirizzi IP

Per una determinata connessione privata, se esaurisci lo spazio di indirizzi IP allocato, Google Cloud viene restituito questo errore: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges.

Potresti visualizzare questo errore perché l'intervallo allocato non è sufficiente per il tuo utilizzo oppure perché una route statica o dinamica personalizzata impedisce l'utilizzo completo dell'intervallo allocato. Per ulteriori informazioni sulle considerazioni sul routing, vedi Considerazioni.

Puoi espandere l'allocazione esistente o aggiungerne di nuove. L'allocazione espansa deve essere un intervallo di indirizzi IP contiguo che includa l'intervallo esistente. L'espansione di un'allocazione è consigliata perché non esiste un limite alle dimensioni di un'allocazione, ma esiste un limite al numero di allocazioni che puoi creare.

Per espandere un'allocazione esistente:

  1. Elenca le tue connessioni private e registra il nome dell'intervallo allocato che devi espandere.
  2. Elimina l'intervallo allocato esistente.
  3. Crea un nuovo intervallo allocato utilizzando lo stesso nome dell'intervallo eliminato. Specifica un intervallo di indirizzi IP che includa l'intervallo di indirizzi IP eliminato. In questo modo, le risorse in peering esistenti che utilizzano il vecchio intervallo allocato possono continuare a utilizzare gli stessi indirizzi IP senza entrare in conflitto con le risorse nella tua rete VPC. Ad esempio, se l'intervallo allocato precedente era 192.168.0.0/20, crea un nuovo intervallo allocato come 192.168.0.0/16.

Per aggiungere intervalli allocati a una connessione privata esistente:

  1. Crea un nuovo intervallo allocato. Questo intervallo non deve essere contiguo agli intervalli allocati esistenti.
  2. Aggiungi l'intervallo allocato alla connessione privata esistente.

Gli host on-premise non possono comunicare con la rete del producer di servizi

La rete del producer di servizi potrebbe non avere le route corrette per indirizzare il traffico alla tua rete on-premise. Per impostazione predefinita, la rete del producer di servizi apprende solo le route di subnet dalla tua rete VPC. Pertanto, qualsiasi richiesta che non proviene da un intervallo IP di subnet viene eliminata dal produttore del servizio.

Per configurare la connettività tra gli host on-premise e la rete del producer di servizi:

  • Nella tua rete VPC, aggiorna la connessione di peering per esportare le route personalizzate nella rete del producer di servizi. L'esportazione delle route invia tutte le route statiche e dinamiche idonee presenti nella tua rete VPC, ad esempio le route alla tua rete on-premise, alla rete del producer di servizi. La rete del producer di servizi li importa automaticamente e poi può inviare il traffico alla tua rete on-premise tramite la rete VPC.

  • Assicurati che i prefissi che includono gli intervalli IP allocati per l'accesso ai servizi privati vengano pubblicizzati correttamente alla tua rete on-premise. Per capire come puoi annunciare prefissi IPv4 personalizzati utilizzandorouter Cloudr, consulta Route annunciate.

  • Verifica che il collegamento VLAN o il tunnel Cloud VPN termini nella stessa rete VPC (o rete VPC condiviso) della connessione privata, perché il peering di rete VPC non fornisce il routing transitivo.

Autorizzazioni service account

Se viene visualizzato un errore relativo all'autorizzazione compute.globalAddresses.list per un progetto durante la creazione di un'allocazione IP o se si verificano errori come Error 400: Precondition check failed durante la creazione, l'elenco o la modifica delle connessioni private, potrebbe trattarsi di un problema con i ruoli Identity and Access Management (IAM) per il service account dell'API Service Networking. Questo account di servizio viene creato automaticamente dopo l'abilitazione dell'API Service Networking. Potrebbe essere necessario del tempo prima che l'account venga sottoposto al provisioning e visualizzato nella pagina IAM.

Console

Per assicurarti che il account di servizio abbia il ruolo IAM corretto:

  1. Nella console Google Cloud , vai alla pagina IAM.

    Vai a IAM

  2. Seleziona la casella di controllo Includi concessioni di ruoli fornite da Google.

  3. Nella colonna Nome, trova l'entità Service Networking Service Agent e fai clic su Modifica entità nella riga corrispondente.

  4. Nel campo Ruolo, assicurati che sia presente il ruolo Agente di servizio Service Networking (roles/servicenetworking.serviceAgent).

  5. Se il ruolo Agente di servizio Service Networking non è presente, fai clic su Aggiungi ruolo o Aggiungi un altro ruolo.

  6. Fai clic su Seleziona un ruolo.

  7. Nella casella di testo Filtro, inserisci Service Networking Service Agent.

  8. Seleziona Service Networking Service Agent dall'elenco e fai clic su Salva.

gcloud

Per creare un account di servizio API Service Networking, utilizza il comando add-iam-policy-binding.

gcloud projects add-iam-policy-binding HOST_PROJECT_NAME \
    --member=serviceAccount:service-HOST_PROJECT_NUMBER@service-networking.iam.gserviceaccount.com \
    --role=roles/servicenetworking.serviceAgent

Sostituisci quanto segue:

  • HOST_PROJECT_NAME: il nome del progetto host.
  • HOST_PROJECT_NUMBER: il numero del progetto host.

La route di subnet di peering persiste dopo l'aggiornamento dell'allocazione IP

Dopo aver aggiornato l'intervallo di indirizzi IP allocato di una connessione ai servizi privati, la vecchia route di subnet di peering potrebbe ancora essere visualizzata nella tabella di routing della tua rete VPC. La route persiste perché l'intervallo di indirizzi IP è ancora in uso.

Per risolvere il problema, segui questi passaggi:

La route di subnet di peering viene rimossa automaticamente dopo che l'intervallo di indirizzi IP non è più in uso. Potrebbe esserci un ritardo tra l'eliminazione della risorsa e l'eliminazione completa della risorsa da parte del producer di servizi. Ad esempio, se il vecchio intervallo di indirizzi IP viene utilizzato da un'istanza Cloud SQL, il producer di servizi potrebbe impiegare fino a quattro giorni per eliminare completamente l'istanza. La route della subnet di peering viene rimossa al termine dell'eliminazione.

Impossibile creare una nuova connessione privata

Se tenti di creare una nuova connessione privata dopo aver eliminato la connessione di peering di rete VPC associata a una connessione privata precedente, Google Cloud potrebbe restituire un errore. Per informazioni sulla risoluzione dei problemi, consulta i seguenti messaggi di errore.

Per evitare che si verifichi questo problema, segui la procedura per eliminare una connessione privata anziché eliminare direttamente la connessione di peering di rete VPC associata.

  • Errore Impossibile modificare gli intervalli allocati:

    ERROR: Cannot modify allocated ranges in CreateConnection. Please use UpdateConnection. Existing allocated IP ranges: ALLOCATED_RANGE_NAMES.

    Se ricevi questo errore, procedi nel seguente modo:

    1. Ricrea la connessione privata che hai eliminato e utilizza i nomi degli intervalli allocati restituiti dall'errore. Devi utilizzare gli stessi nomi degli intervalli allocati quando ricrei la connessione, ma gli intervalli di indirizzi IP (blocchi CIDR) corrispondenti possono essere uguali o diversi.

      Per creare la connessione privata, consulta Crea una connessione privata.

    2. Se necessario, modifica la connessione privata per aggiungere o rimuovere intervalli allocati. Potresti voler utilizzare intervalli allocati diversi da quelli specificati quando hai ricreato la connessione privata nel passaggio precedente.

      Per modificare la connessione privata, vedi Modificare una connessione privata.

  • Errore interno temporaneo:

    ERROR: (gcloud.services.vpc-peerings.connect) The operation "operations/OPERATION_ID"
    resulted in a failure "encountered some transient internal error, please try again later"

    Se viene visualizzato questo errore, contatta l'assistenza Cloud.