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, ovvero le entità che offrono servizi, sono anche note come producer di servizi. La connessione privata consente alle istanze VM nella rete VPC e ai servizi a cui accedi di comunicare esclusivamente mediante indirizzi IP interni. Le istanze VM non hanno bisogno di accesso a internet o di indirizzi IP esterni per raggiungere i servizi disponibili tramite l'accesso privato ai servizi.
Per utilizzare l'accesso privato ai servizi, segui questi passaggi:
-
Un intervallo allocato riserva un intervallo di indirizzi IP per l'utilizzo da parte del producer, evitando sovrapposizioni di indirizzi IP tra le reti del consumer di servizi e del producer di servizi.
-
La connessione privata utilizza il peering di rete VPC per stabilire la connettività tra le reti consumer di servizi e producer di servizi.
Per informazioni su altre opzioni di accesso privato, consulta Opzioni di accesso privato per i servizi.
Prima di iniziare
Per stabilire una connessione privata, devi completare i seguenti prerequisiti:
- Leggi la panoramica dell'accesso privato ai servizi, inclusi i servizi supportati, la raggiungibilità delle istanze di servizio e le limitazioni.
- Crea un progetto Google Cloud o scegline uno esistente. Per scoprire come creare un progetto Google Cloud , consulta Creazione e gestione dei progetti.
- Abilita l'API Service Networking nel tuo progetto. L'API è necessaria per creare una connessione privata.
- Crea o scegli una rete VPC da utilizzare 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 Google Cloud CLI se vuoi eseguire gli esempi di riga di comando di gcloud CLI in questa guida.
Autorizzazioni
I Project Owner e i membri IAM con il ruolo Compute Network Admin (roles/compute.networkAdmin) possono creare intervalli di indirizzi IP allocati e gestire le connessioni private.
Per saperne di più sui ruoli di Compute Engine, consulta Ruoli e autorizzazioni IAM di Compute Engine.
Scegli un intervallo di indirizzi IP per l'intervallo allocato
La creazione di un intervallo allocato prenota un intervallo di indirizzi IP che verrà utilizzato dal producer di servizi. Quando scegli un intervallo per l'allocazione, tieni presente quanto segue:
Consulta la documentazione del producer di servizi per verificare se sono presenti requisiti o suggerimenti per le dimensioni dell'intervallo allocato.
Per i servizi Google, la dimensione minima è un singolo blocco
/24, ma la dimensione consigliata è un blocco/16.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 NCC.
Seleziona un intervallo che non corrisponda esattamente o non contenga le destinazioni di route statiche o dinamiche personalizzate.
Quando un producer di servizi seleziona una parte inutilizzata di un intervallo allocato da utilizzare come candidato per nuove risorse, esclude tutte le destinazioni delle route personalizzate che corrispondono esattamente o rientrano nell'intervallo allocato. Quando una rete VPC contiene un intervallo allocato e route personalizzate con destinazioni che corrispondono o rientrano nell'intervallo allocato, la parte 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 intervallo10.0.0.0/16viene 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 parte10.0.0.0/20dell'intervallo allocato10.0.0.0/16viene 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 allocato10.0.0.0/16.
Seleziona un intervallo che non sia in conflitto con le tue altre esigenze di indirizzi IP:
- Alcuni prodotti Google e di terze parti utilizzano
172.17.0.0/16per il routing all'interno del sistema operativo guest. Ad esempio, la rete bridge Docker predefinita utilizza questo intervallo. Se utilizzi un prodotto che utilizza172.17.0.0/16, non utilizzare172.17.0.0/16in un intervallo allocato per l'accesso privato ai servizi. - 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'intervallo10.128.0.0/9per le subnet create automaticamente, incluse quelle nelle regioni future.
- Alcuni prodotti Google e di terze parti utilizzano
Seleziona un blocco CIDR abbastanza grande da soddisfare le tue esigenze attuali e future.
Se in un secondo momento ti accorgi che l'intervallo non è sufficientemente ampio, espandilo, se possibile. Sebbene tu possa assegnare più allocazioni a un singolo producer di servizi, Google applica una quota sul numero di intervalli di indirizzi IP che puoi allocare, ma non sulla dimensione (netmask) di ciascun intervallo.
Crea un intervallo allocato
I passaggi seguenti descrivono come creare un intervallo di indirizzi IP allocato.
Quando un servizio Google alloca un intervallo per tuo conto, utilizza il seguente formato per assegnare un nome all'allocazione: google-managed-services-CONSUMER_NETWORK_NAME. Se questa allocazione esiste, i servizi Google utilizzano quella esistente anziché crearne un'altra. Puoi utilizzare la stessa convenzione di denominazione utilizzata da Google per segnalare ad altri utenti o servizi Google che esiste già un'allocazione per Google.
Console
Nella console Google Cloud , vai alla pagina Reti VPC.
Seleziona la rete VPC che si connetterà a un producer di servizi.
Seleziona la scheda Accesso privato ai servizi.
Nella scheda Accesso privato ai servizi, seleziona la scheda Intervalli IP allocati per i servizi.
Fai clic su Alloca intervallo IP.
Inserisci un nome e una descrizione per l'intervallo allocato.
Configura l'intervallo di indirizzi IP per l'allocazione:
- Per specificare un intervallo di indirizzi IP specifico, seleziona Personalizzato e poi inserisci un blocco CIDR, ad esempio
192.168.0.0/16. - Per consentire a Google di selezionare un intervallo disponibile, seleziona Automatico, quindi inserisci una lunghezza del prefisso, ad esempio
16.
- Per specificare un intervallo di indirizzi IP specifico, seleziona Personalizzato e poi inserisci un blocco CIDR, ad esempio
Fai clic su Alloca per creare l'intervallo allocato.
gcloud
Per creare un intervallo allocato nella tua rete VPC, utilizza il
comando
gcloud compute addresses create.
Per specificare un intervallo di indirizzi e una lunghezza del prefisso (subnet mask), utilizza i flag
--addressese--prefix-length. Ad esempio, per allocare il blocco CIDR192.168.0.0/16, specifica192.168.0.0per l'indirizzo e16per 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. Se ometti l'intervallo di indirizzi,Google Cloud seleziona automaticamente un intervallo di indirizzi inutilizzato nella tua rete VPC. L'esempio seguente seleziona un intervallo di indirizzi IP inutilizzato con una lunghezza del prefisso di16bit.
gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --description="DESCRIPTION" \ --network=VPC_NETWORKSostituisci quanto segue:
RESERVED_RANGE_NAME: un nome per l'intervallo allocato, ad esempiomy-allocated-range.DESCRIPTION: una descrizione dell'intervallo, ad esempioallocated for my-service.VPC_NETWORK: il nome della tua rete VPC, ad esempiomy-vpc-network.
L'esempio seguente crea una connessione privata a Google in modo che le istanze VM nella rete VPC
my-networkpossano 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- Per specificare solo una lunghezza del prefisso (subnet mask), utilizza il flag
Terraform
Per creare un intervallo allocato nella tua rete VPC, utilizza la
risorsa google_compute_global_address.
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 dei service account.
Elenca gli intervalli di indirizzi IP allocati
Per elencare gli intervalli di indirizzi IP allocati, utilizza il comando gcloud compute 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 tipo peering di rete VPC tra la tua rete VPC e la rete del producer di servizi.
Quando crei una connessione privata, tieni presente quanto segue:
- Se un singolo producer di servizi offre più servizi, è sufficiente 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 le diverse risorse dei servizi, puoi utilizzare più reti VPC, ciascuna 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.
Non riutilizzare lo stesso intervallo allocato per più producer di servizi. Se ti connetti a più producer di servizi, utilizza un intervallo allocato univoco per ogni producer di servizi. L'utilizzo di intervalli allocati diversi evita la sovrapposizione degli indirizzi IP e ti aiuta a gestire le impostazioni della rete, come route e regole firewall, per ogni producer di servizi.
Console
Nella console Google Cloud , vai alla pagina Reti VPC.
Seleziona la rete VPC che si connetterà a un producer di servizi.
Seleziona la scheda Accesso privato ai servizi.
Nella scheda Accesso privato ai servizi, seleziona la scheda Connessioni private ai servizi.
Fai clic su Crea connessione per creare una connessione privata tra la tua rete e un producer di servizi.
Per Allocazione assegnata, seleziona uno o più intervalli allocati esistenti che non sono utilizzati da altri producer di servizi.
Fai clic su Connetti per creare la connessione.
gcloud
Utilizza il comando
gcloud services vpc-peerings connect.gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORKSostituisci 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 di operazione.
Per verificare se l'operazione è andata a buon fine, utilizza il comando
gcloud services vpc-peerings operations describe.gcloud services vpc-peerings operations describe \ --name=OPERATION_NAMESostituisci
OPERATION_NAMEcon il nome dell'operazione restituito nel passaggio precedente.
Puoi specificare più di un intervallo allocato quando crei una connessione privata. Ad esempio, se un intervallo è stato esaurito, puoi assegnare altri intervalli allocati. Il servizio utilizza gli indirizzi IP di tutti gli intervalli forniti nell'ordine specificato.
Terraform
Per creare una connessione privata, utilizza la risorsa google_service_networking_connection.
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 ogni connessione. Ad esempio, se non ricordi quale intervallo allocato hai assegnato a una connessione, visualizza l'elenco per scoprirlo.
Console
Nella console Google Cloud , vai alla pagina Reti VPC.
Seleziona la rete VPC che contiene le connessioni.
Seleziona la scheda Accesso privato ai servizi.
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 gcloud services 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
Non puoi modificare un intervallo allocato, ma puoi aggiornare una connessione privata per aggiungere o rimuovere intervalli allocati senza interrompere il traffico.
Aggiungi intervalli: man mano che scali, potresti aggiungere o sostituire un intervallo allocato se stai per esaurire quello esistente. Se aggiungi un altro intervallo allocato a una connessione privata, il producer di servizi avrà a disposizione più indirizzi IP durante la creazione di nuove risorse di servizio per qualsiasi servizio fornito. Non puoi prenotare un intervallo allocato specifico all'interno di una connessione privata per l'utilizzo da parte di un servizio specifico.
Per saperne di più sull'aggiunta o sulla sostituzione di intervalli, consulta Esaurimento degli intervalli di indirizzi IP.
Rimozione di intervalli: 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.
- Se un intervallo rimosso non è più in uso, puoi eliminare l'allocazione.
Le risorse esistenti del producer di servizi potrebbero continuare a utilizzare l'intervallo rimosso.
L'accesso privato ai servizi non utilizza gli intervalli rimossi per allocare nuove subnet.
Console
Nella console Google Cloud , vai alla pagina Reti VPC.
Seleziona la rete VPC che contiene le connessioni.
Seleziona la scheda Accesso privato ai servizi.
Nella scheda Accesso privato ai servizi, seleziona la scheda Connessioni private ai servizi per visualizzare tutte le connessioni private della rete.
Fai clic sul nome di una connessione nell'elenco.
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.
Fai clic su OK.
gcloud
Per aggiungere o rimuovere intervalli di indirizzi IP allocati assegnati su una connessione privata esistente, utilizza il comando gcloud services 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_NAMEsostituisce l'elenco precedente di intervalli allocati. Se ometti un intervallo precedentemente associato a questa connessione privata, l'intervallo viene rimosso dalla connessione. Devi utilizzare il flag--forceper rimuovere un intervallo.VPC_NETWORK: il nome della tua rete VPC.
Elimina un intervallo di indirizzi IP allocato
Prima di eliminare un intervallo di indirizzi IP allocato, controlla se l'intervallo è utilizzato da una connessione privata.
Se l'intervallo di indirizzi IP allocato è in uso, prima modifica la connessione privata per rimuovere l'intervallo. Quindi 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 alla 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 esiste un 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 allocati in uso.
Console
Nella console Google Cloud , vai alla pagina Reti VPC.
Seleziona la rete VPC che contiene le allocazioni da eliminare.
Seleziona la scheda Accesso privato ai servizi.
Nella scheda Accesso privato ai servizi, seleziona la scheda Intervalli IP allocati per i servizi.
Seleziona l'allocazione da eliminare.
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.
Fai di nuovo clic su Sblocca per confermare l'eliminazione.
gcloud
Elimina l'allocazione specificandone il nome.
gcloud compute addresses delete NAME \
--global
Sostituisci NAME 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.
Il comportamento di eliminazione delle istanze di servizio può variare in base al servizio. Le risorse del servizio potrebbero essere eliminate immediatamente o dopo un periodo di attesa. Se è previsto un periodo di attesa, non puoi eliminare la connessione privata finché non è trascorso il periodo di attesa e non sono state eliminate le risorse del producer di servizi.
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 producer di servizi. Il periodo di attesa significa che se cambi idea sull'eliminazione del servizio, puoi richiedere di ripristinare le risorse. Se provi a eliminare la connessione durante il periodo di attesa, l'eliminazione non va a buon fine e viene visualizzato un messaggio che indica che le risorse sono ancora in uso da parte del producer di servizi.
Non puoi eliminare una connessione privata utilizzata da uno spoke VPC producer. Per eliminare la connessione, elimina prima lo spoke VPC del producer.
Console
Nella console Google Cloud , vai alla pagina Reti VPC.
Seleziona la rete VPC che contiene le connessioni da eliminare.
Seleziona la scheda Accesso privato ai servizi.
Nella scheda Accesso privato ai servizi, seleziona la scheda Connessione privata ai servizi.
Seleziona la connessione privata da eliminare.
Fai clic su Elimina per eliminare.
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 gcloud services 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.
Condividi le zone DNS private con i producer di servizi
Le zone private di 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 quel 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 attivare il peering DNS, devi abilitare l'API Cloud DNS nel tuo progetto.
Esegui il peering del DNS con un producer di servizi
gcloud
Per configurare il peering DNS tra la tua rete VPC e la rete del fornitore di servizi, utilizza il comando gcloud services 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 per cui vuoi eseguire il peering con il producer di servizi. 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 fornitore di servizi, utilizza la risorsa google_service_networking_peered_dns_domain.
Elenca le configurazioni di peering DNS
gcloud
Utilizza il comando gcloud services peered-dns-domains list.
gcloud services peered-dns-domains list \
--network=VPC_NETWORK
Sostituisci VPC_NETWORK con il nome della tua rete VPC.
Elimina una configurazione di peering DNS
gcloud
Utilizza il comando gcloud services 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.
Configura la connettività ibrida
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 ignorata dal producer di servizi.
Per configurare la connettività tra i tuoi host on-premise e la rete del producer di servizi, segui questi passaggi:
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 che si trovano 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 le importa automaticamente e può quindi inviare il traffico alla tua rete on-premise tramite la rete VPC.
Quando esporti route personalizzate nella rete del producer di servizi, la rete del producer di servizi apprende queste route. Se una di queste route apprese si sovrappone agli intervalli utilizzati per l'accesso privato Google, il traffico proveniente dalla rete del producer di servizi destinato ai servizi Google potrebbe essere instradato in modo errato sulla connessione in peering alla tua rete.
Per evitare conflitti di routing, esegui una delle seguenti operazioni:
- Evita di esportare route personalizzate che si sovrappongono agli intervalli utilizzati per l'accesso privato Google.
- Abilita i Controlli di servizio VPC per la tua connessione di accesso privato ai servizi. L'attivazione dei Controlli di servizio VPC configura il routing perimetrale per i servizi Google all'interno del perimetro, evitando conflitti di routing causati da route personalizzate sovrapposte.
Assicurati che i prefissi che includono gli intervalli IP allocati per l'accesso ai servizi privati vengano annunciati correttamente alla tua rete on-premise. Per capire come annunciare prefissi IPv4 personalizzati utilizzando il router Cloud, 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.
Risoluzione dei problemi
Le sezioni seguenti contengono informazioni sulla risoluzione dei problemi relativi all'accesso privato ai servizi.
Quanto spazio della mia allocazione viene utilizzato?
Quando crei una connessione privata con un producer di servizi, allochi un intervallo di indirizzi IP che il producer può utilizzare. Se utilizzi più servizi di un producer di servizi, ogni servizio prenota una porzione di indirizzi IP dall'intervallo allocato. Puoi controllare quali servizi utilizzano determinati indirizzi IP in modo, ad esempio, da vedere quali servizi utilizzano blocchi di indirizzi IP di grandi dimensioni ed evitare l'esaurimento degli indirizzi IP.
Per visualizzare il rapporto di allocazione per gli intervalli allocati, utilizza Network Analyzer. Per saperne di più, consulta 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:
- Elenca le tue connessioni private.
- Trova il nome della connessione di peering che ti connette al producer di servizi pertinente.
- Elenca le route per la tua rete VPC.
- Trova le route con un hop successivo che corrisponde al nome della connessione in 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 degli indirizzi IP allocato, Google Cloud restituisce 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 o perché una route statica o dinamica personalizzata impedisce l'utilizzo completo dell'intervallo allocato. Per saperne di più sulle considerazioni relative al routing, consulta Scegli un intervallo di indirizzi IP per l'intervallo allocato.
Puoi espandere l'allocazione esistente o aggiungerne di nuove. L'allocazione espansa deve essere un intervallo di indirizzi IP contiguo che include l'intervallo esistente. Ti consigliamo di espandere un'allocazione perché non esiste un limite alle dimensioni di un'allocazione, ma esiste un limite al numero di allocazioni che puoi creare per progetto e per connessione. Per saperne di più, consulta Indirizzi IPv4 interni globali statici e Intervalli di indirizzi IP allocati per connessione privata.
Per espandere un'allocazione esistente:
- Elenca le tue connessioni private e registra il nome dell'intervallo allocato che devi espandere.
- Elimina l'intervallo allocato esistente che vuoi espandere.
- 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 della tua rete VPC. Ad esempio, se l'intervallo allocato precedente era
192.168.0.0/20, crea un nuovo intervallo allocato
Per aggiungere intervalli allocati a una connessione privata esistente:
- Crea un nuovo intervallo allocato. Questo intervallo non deve essere contiguo agli intervalli allocati esistenti.
- Aggiungi l'intervallo allocato alla connessione privata esistente.
Autorizzazioni service account
Se visualizzi un errore relativo all'autorizzazione compute.globalAddresses.list per un progetto durante la creazione di un intervallo allocato o se si verificano errori come Error 400: Precondition check failed durante la creazione, l'elenco o la modifica di connessioni private, potrebbe trattarsi di un problema con i ruoli di 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. Il provisioning dell'account e la sua visualizzazione nella pagina IAM possono richiedere del tempo.
Console
Per assicurarti che il account di servizio abbia il ruolo IAM corretto, segui questi passaggi:
Nella console Google Cloud vai alla pagina IAM.
Seleziona la casella di controllo Includi concessioni di ruoli fornite da Google.
Nella colonna Nome, trova l'entità dell'agente Agente di servizio Service Networking, quindi fai clic su Modifica entità nella riga corrispondente.
Nel campo Ruolo, assicurati che sia presente il ruolo Agente di servizio per networking di servizi (
roles/servicenetworking.serviceAgent).Se il ruolo Agente di servizio networking non è presente, fai clic su Aggiungi ruolo o Aggiungi un altro ruolo.
Fai clic su Seleziona un ruolo.
Nella casella di testo Filtro, inserisci
Service Networking Service Agent.Seleziona Agente di servizio di networking dei servizi dall'elenco e fai clic su Salva.
gcloud
Per creare un account di servizio API Service Networking, utilizza il comando gcloud projects 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 subnet di peering persiste dopo l'aggiornamento dell'intervallo allocato
Dopo aver aggiornato l'intervallo di indirizzi IP allocato di una connessione di accesso privato ai servizi, la route della subnet di peering precedente potrebbe essere ancora visualizzata nella tabella di routing della rete VPC. La route persiste perché l'intervallo di indirizzi IP è ancora in uso.
Per risolvere il problema, segui questi passaggi:
- Se elimini un intervallo allocato, assicurati di aggiornare anche la connessione privata.
- Elimina o aggiorna le risorse che utilizzano il vecchio intervallo di indirizzi IP.
La route della subnet di peering viene rimossa automaticamente quando 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 l'intervallo di indirizzi IP precedente è 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 in peering viene rimossa al termine dell'eliminazione.
Impossibile creare una nuova connessione privata
Se provi a creare una nuova connessione privata dopo aver eliminato la connessione di peering di rete VPC associata a una connessione privata precedente, Google Cloudpotrebbe 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, segui questi passaggi:
Ricrea la connessione privata che hai eliminato e utilizza i nomi degli intervalli allocati restituiti dall'errore. Quando ricrei la connessione, devi utilizzare gli stessi nomi degli intervalli allocati, ma gli intervalli di indirizzi IP corrispondenti (blocchi CIDR) possono essere uguali o diversi.
Per creare la connessione privata, consulta Crea una connessione privata.
Se necessario, modifica la connessione privata per aggiungere o rimuovere gli 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, consulta Modifica 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 ricevi questo errore, contatta l'assistenza Cloud.
Vincolo della policy dell'organizzazione constraints/compute.restrictVpcPeering violato
Se applichi il vincolo della policy dell'organizzazione constraints/compute.restrictVpcPeering alla tua organizzazione, cartella o progetto, la creazione di una connessione privata non va a buon fine e viene visualizzato un errore simile al seguente:
Constraint constraints/compute.restrictVpcPeering violated for project PROJECT_ID. Peering with network 'servicenetworking' is not allowed.
Per risolvere il problema, aggiungi l'organizzazione del producer di servizi Google (under:organizations/433637338589) all'elenco allowedValues della policy constraints/compute.restrictVpcPeering nel progetto, nella cartella o nell'organizzazione proprietaria della rete VPC consumer.