Informazioni sui servizi pubblicati
Questo documento fornisce una panoramica sull'utilizzo di Private Service Connect per rendere un servizio disponibile ai consumatori di servizi.
In qualità di producer di servizi, puoi utilizzare Private Service Connect per pubblicare servizi utilizzando indirizzi IP interni nella tua rete VPC. I servizi pubblicati sono accessibili ai consumer di servizi utilizzando indirizzi IP interni nelle loro reti VPC.
Per rendere disponibile un servizio ai consumatori, crea una o più subnet dedicate. Poi crei un allegato di servizio che fa riferimento a queste subnet. L'allegato di servizio può avere preferenze di connessione diverse.
Tipi di consumer del servizio
Esistono due tipi di consumer che possono connettersi a un servizio Private Service Connect:
Gli endpoint si basano su una regola di forwarding.
Un endpoint consente ai consumer di servizi di inviare traffico dalla rete VPC del consumer ai servizi nella rete VPC del producer di servizi (fai clic per ingrandire).
I backend si basano su un bilanciatore del carico.
Un backend che utilizza un bilanciatore del carico delle applicazioni esterno globale consente ai consumer di servizi con accesso a internet di inviare traffico ai servizi nella rete VPC del producer di servizi (fai clic per ingrandire).
Subnet NAT
I collegamenti ai servizi Private Service Connect sono configurati con una o più subnet NAT (chiamate anche subnet Private Service Connect). I pacchetti provenienti dalla rete VPC consumer vengono tradotti utilizzando il source NAT (SNAT), in modo che gli indirizzi IP di origine originali vengano convertiti in indirizzi IP di origine dalla subnet NAT nella rete VPC del producer.
Gli allegati di servizio possono avere più subnet NAT. È possibile aggiungere subnet NAT aggiuntive all'allegato di servizio in qualsiasi momento senza interrompere il traffico.
Anche se un collegamento di servizio può avere configurate più subnet NAT, una subnet NAT non può essere utilizzata in più di un collegamento di servizio.
Le subnet NAT di Private Service Connect non possono essere utilizzate per risorse come le istanze di macchine virtuali (VM) o le regole di forwarding. Le subnet vengono utilizzate solo per fornire indirizzi IP per SNAT delle connessioni consumer in entrata.
Dimensionamento della subnet NAT
La dimensione della subnet determina il numero di consumer che possono connettersi al tuo servizio. Se tutti gli indirizzi IP nella subnet NAT vengono utilizzati, tutte le connessioni Private Service Connect aggiuntive non vanno a buon fine. Considera quanto segue:
Un indirizzo IP viene utilizzato dalla subnet NAT per ogni endpoint o backend connesso al collegamento al servizio.
Il numero di connessioni TCP o UDP, client o reti VPC consumer non influisce sul consumo di indirizzi IP dalla subnet NAT.
Se i consumer utilizzano la propagazione della connessione, viene utilizzato un indirizzo IP aggiuntivo per ogni spoke VPC a cui vengono propagate le connessioni, per ogni endpoint.
Puoi controllare il numero di connessioni propagate create configurando il limite di connessioni propagate.
Quando stimi il numero di indirizzi IP necessari per endpoint e backend, tieni conto di eventuali servizi multi-tenant o consumer che utilizzano l'accesso multipunto per Private Service Connect.
Monitoraggio delle subnet NAT
Per assicurarti che le connessioni Private Service Connect non non vadano a buon fine a causa di indirizzi IP non disponibili in una subnet NAT, ti consigliamo di:
- Monitora la
private_service_connect/producer/used_nat_ip_addressesmetrica del collegamento servizio. Assicurati che il numero di indirizzi IP NAT utilizzati non superi la capacità delle subnet NAT di un collegamento del servizio. - Monitora lo stato della connessione delle connessioni di collegamento del servizio. Se una connessione ha lo stato Richiede attenzione, potrebbero non essere disponibili altri indirizzi IP nelle subnet NAT dell'allegato.
- Per i servizi multi-tenant, puoi utilizzare Limiti di connessione per assicurarti che un singolo consumer non esaurisca la capacità delle subnet NAT di un collegamento del servizio.
Se necessario, le subnet NAT possono essere aggiunte all'allegato di servizio in qualsiasi momento senza interrompere il traffico.
Specifiche NAT
Quando progetti il servizio che stai pubblicando, tieni presente le seguenti caratteristiche di Private Service Connect NAT:
Il timeout di inattività della mappatura UDP è di 30 secondi e non può essere configurato.
Il timeout inattività connessione TCP stabilita è di 20 minuti e non può essere configurato.
Per evitare problemi di timeout delle connessioni client, procedi in uno dei seguenti modi:
Assicurati che tutte le connessioni durino meno di 20 minuti.
Assicurati che parte del traffico venga inviato più spesso di una volta ogni 20 minuti. Puoi utilizzare un heartbeat o un keepalive nella tua applicazione oppure keepalive TCP. Ad esempio, puoi configurare un keepalive nel proxy di destinazione di un bilanciatore del carico delle applicazioni interno regionale o di un bilanciatore del carico di rete proxy interno regionale.
Il timeout di inattività della connessione transitoria TCP è di 30 secondi e non può essere configurato.
Prima che qualsiasi 5 tuple (indirizzo IP di origine e porta di origine della subnet NAT più protocollo, indirizzo IP e porta di destinazione) possa essere riutilizzato, devono trascorrere due minuti.
SNAT per Private Service Connect non supporta i frammenti IP.
Numero massimo di connessioni
Una singola VM producer può accettare un massimo di 64.512 connessioni TCP simultanee e 64.512 connessioni UDP da un singolo consumer (endpoint o backend) Private Service Connect. Non esiste un limite al numero totale di connessioni TCP e UDP che un endpoint Private Service Connect può ricevere in totale su tutti i backend del producer. Le VM client possono utilizzare tutte le 65.536 porte di origine quando avviano connessioni TCP o UDP a un endpoint Private Service Connect. Tutta la Network Address Translation viene eseguita localmente sull'host produttore, il che non richiede un pool di porte NAT allocato centralmente.
Collegamenti di servizi
I producer di servizi espongono il proprio servizio tramite un collegamento di servizio.
- Per esporre un servizio, un producer di servizi crea un collegamento di servizio che
fa riferimento a un servizio di destinazione. Il servizio di destinazione può essere uno dei seguenti:
- La regola di forwarding di un bilanciatore del carico
- Un'istanza di Secure Web Proxy
L'URI del collegamento al servizio ha questo formato:
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
Un collegamento di servizio può avere un solo servizio di destinazione. Tuttavia, più service attachment possono condividere lo stesso servizio di destinazione.
Gli allegati di servizio ti consentono di controllare l'accesso al servizio pubblicato, visualizzare le connessioni e configurare i limiti di connessione. Per saperne di più, consulta Informazioni sul controllo dell'accesso ai servizi pubblicati.
Stati della connessione
I collegamenti al servizio hanno stati di connessione che descrivono lo stato delle loro connessioni. Per saperne di più, vedi Stati della connessione.
Configurazione DNS
Per informazioni sulla configurazione DNS per i servizi e gli endpoint pubblicati che si connettono ai servizi pubblicati, consulta Configurazione DNS per i servizi.
Configurazione di più regioni per il failover
Puoi rendere disponibile un servizio in più regioni creando le seguenti configurazioni.
Configurazione del produttore:
- Esegui il deployment del servizio in ogni regione. Ogni istanza regionale del servizio deve essere configurata su un bilanciatore del carico regionale che supporta l'accesso da parte di un backend.
- Crea un collegamento al servizio per pubblicare ogni istanza regionale del servizio.
Configurazione del consumer:
- Crea un backend di Private Service Connect per accedere ai servizi pubblicati. Il backend
deve basarsi su un
bilanciatore del carico che supporta il failover tra regioni
e include la seguente configurazione:
- Un NEG Private Service Connect in ogni regione che punta al collegamento del servizio di quella regione
- Un servizio di backend globale che contiene i backend NEG
Questa configurazione supporta il failover automatico tra regioni. Con il failover automatico, se un'istanza di servizio in una regione diventa non integra, il bilanciatore del carico del consumer interrompe l'instradamento del traffico a quel servizio e lo instrada invece a un'istanza di servizio integra in una regione alternativa.
Per ulteriori informazioni, consulta le seguenti risorse:
- Informazioni sullo stato di Private Service Connect
- Failover automatico tra regioni per i consumatori
L'utilizzo di un bilanciatore del carico delle applicazioni esterno globale consente ai consumer di servizi con accesso a internet di inviare traffico ai servizi nella rete VPC del producer di servizi. Poiché il servizio viene implementato in più regioni, il bilanciatore del carico consumer può instradare il traffico a un'istanza di servizio integra in una regione alternativa (fai clic per ingrandire).
Traduzione della versione IP
Per gli endpoint Private Service Connect che si connettono a servizi pubblicati (collegamenti di servizio), la versione IP dell'indirizzo IP della regola di forwarding del consumer determina la versione IP dell'endpoint e del traffico in uscita dall'endpoint. L'indirizzo IP può provenire da una subnet solo IPv4, solo IPv6 o dual-stack. La versione IP dell'endpoint può essere IPv4 o IPv6, ma non entrambe.
Per i servizi pubblicati, la versione IP dell'allegato di servizio è determinata dall'indirizzo IP della regola di forwarding o dell'istanza Secure Web Proxy associata. Questo indirizzo IP deve essere compatibile con il tipo di stack della subnet NAT del collegamento del servizio. La subnet NAT può essere una subnet solo IPv4, solo IPv6 o a doppio stack. Se la subnet NAT è una subnet a doppio stack, viene utilizzato l'intervallo di indirizzi IPv4 o IPv6, ma non entrambi.
Private Service Connect non supporta la connessione di un endpoint IPv4 con un collegamento del servizio IPv6. In questo caso, la creazione dell'endpoint non va a buon fine e viene visualizzato il seguente messaggio di errore:
Private Service Connect forwarding rule with an IPv4 address
cannot target an IPv6 service attachment.
Sono possibili le seguenti combinazioni per le configurazioni supportate:
- Endpoint IPv4 all'allegato di servizio IPv4
- Endpoint IPv6 all'allegato del servizio IPv6
-
Endpoint IPv6 all'allegato di servizio IPv4
In questa configurazione, Private Service Connect esegue automaticamente la conversione tra le due versioni IP.
Per le connessioni tra i backend Private Service Connect e i collegamenti di servizio, le regole di forwarding consumer e producer devono utilizzare entrambe IPv4.
Funzionalità e compatibilità
Nelle tabelle seguenti, un segno di spunta indica che una funzionalità è supportata, mentre un simbolo di divieto indica che non è supportata.
A seconda del bilanciatore del carico del producer scelto, il servizio producer può supportare l'accesso tramite endpoint, backend o entrambi.
Supporto per gli endpoint
Questa sezione riepiloga le opzioni di configurazione disponibili per consumer e produttori quando utilizzano gli endpoint per accedere ai servizi pubblicati.
Configurazione del consumatore
Questa tabella riassume le opzioni di configurazione e le funzionalità supportate degli endpoint che accedono ai servizi pubblicati in base al tipo di produttore di destinazione.
Configurazione del producer
Questa tabella riassume le opzioni di configurazione e le funzionalità supportate dei servizi pubblicati a cui si accede tramite gli endpoint.
| Tipo di produttore | Configurazione del producer (servizio pubblicato) | |||
|---|---|---|---|---|
| Backend del produttore supportati | Protocollo PROXY (solo traffico TCP) | Versione IP | ||
| Bilanciatore del carico delle applicazioni interno tra regioni |
|
|
||
| Bilanciatore del carico di rete passthrough interno |
|
|
||
| Forwarding del protocollo interno (istanza di destinazione) |
|
|
||
| Servizi di mappatura delle porte |
|
|
||
| Bilanciatore del carico delle applicazioni interno regionale |
|
|
||
| Bilanciatore del carico di rete proxy interno regionale |
|
|
||
| Secure Web Proxy |
|
|
||
I diversi bilanciatori del carico supportano configurazioni di porte diverse: alcuni supportano una singola porta, altri un intervallo di porte e altri ancora tutte le porte. Per ulteriori informazioni, vedi Specifiche della porta.
Supporto per i backend
Un backend di Private Service Connect per i servizi pubblicati richiede due bilanciatori del carico: un bilanciatore del carico consumer e un bilanciatore del carico producer. Questa sezione riassume le opzioni di configurazione disponibili per consumatori e produttori quando utilizzano i backend per accedere ai servizi pubblicati.
Configurazione del consumatore
Questa tabella descrive i bilanciatori del carico consumer supportati dai backend di Private Service Connect per i servizi pubblicati, inclusi i protocolli di servizio di backend che possono essere utilizzati con ciascun bilanciatore del carico consumer. I bilanciatori del carico consumer possono accedere ai servizi pubblicati ospitati su bilanciatori del carico producer supportati.
| Bilanciatore del carico consumer | Protocolli | Versione IP | Failover tra regioni |
|---|---|---|---|
|
Bilanciatore del carico delle applicazioni interno tra regioni |
|
IPv4 | |
|
IPv4 | ||
|
Bilanciatore del carico delle applicazioni esterno globale Nota:il bilanciatore del carico delle applicazioni classico non è supportato. |
|
IPv4 | |
|
Bilanciatore del carico di rete proxy esterno globale Per associare questo bilanciatore del carico a un NEG di Private Service Connect, utilizza Google Cloud CLI o invia una richiesta API. Nota:il bilanciamento del carico di rete proxy classico non è supportato. |
|
IPv4 | |
|
Bilanciatore del carico delle applicazioni esterno regionale |
|
IPv4 | |
|
IPv4 | ||
|
Bilanciatore del carico delle applicazioni interno regionale |
|
IPv4 | |
|
IPv4 |
Configurazione del producer
Questa tabella descrive la configurazione dei bilanciatori del carico del producer supportati dai backend Private Service Connect per i servizi pubblicati.
| Tipo di produttore | Configurazione del producer (servizio pubblicato) | |||||
|---|---|---|---|---|---|---|
| Backend del produttore supportati | Protocolli delle regole di forwarding | Porte delle regole di forwarding | Protocollo PROXY | Versione IP | Supporto per l'integrità di Private Service Connect | |
| Bilanciatore del carico delle applicazioni interno tra regioni |
|
|
Supporta una, più o tutte le porte | IPv4 | ||
| Bilanciatore del carico di rete passthrough interno |
|
|
Consulta Configurazione della porta del producer. | IPv4 | ||
| Bilanciatore del carico delle applicazioni interno regionale |
|
|
Supporta una sola porta | IPv4 | ||
| Bilanciatore del carico di rete proxy interno regionale |
|
|
Supporta una sola porta | IPv4 | ||
| Secure Web Proxy |
|
|
Non applicabile | IPv4 | ||
Configurazione della porta del producer
Quando un bilanciatore del carico di rete passthrough interno viene pubblicato utilizzando Private Service Connect, i consumer che utilizzano i backend di Private Service Connect per accedere al servizio devono sapere quale porta utilizzare per comunicare con il servizio. Tieni presente quanto segue quando crei la regola di forwarding per il bilanciatore del carico di rete passthrough interno del produttore:
- Ti consigliamo di comunicare ai consumatori la porta utilizzata nella regola di forwardingo del produttore, in modo che possano specificarla quando creano un NEG.
Se i consumatori non specificano una porta del produttore quando creano i NEG, la porta del produttore viene determinata in base alla configurazione della regola di forwarding del produttore:
- Se la regola di forwarding del producer utilizza una singola porta, il backend consumer utilizza la stessa porta.
Se la regola di forwarding del producer utilizza più porte, si applica quanto segue:
- Se è inclusa la porta
443, il backend consumer utilizza la porta443. - Se la porta
443non è inclusa, il backend consumer utilizza la prima porta dell'elenco, dopo che l'elenco è stato ordinato alfabeticamente. Ad esempio, se specifichi la porta80e la porta1111, il backend consumer utilizza la porta1111. La modifica delle porte utilizzate dai backend producer potrebbe comportare un'interruzione del servizio per i consumatori.
Ad esempio, supponiamo di creare un servizio pubblicato con una regola di forwarding che utilizza le porte
443e8443e VM di backend che rispondono sulle porte443e8443. Quando un backend consumer si connette a questo servizio, utilizza la porta443per la comunicazione.Se modifichi le VM di backend in modo che rispondano solo sulla porta
8443, il backend consumer non può più raggiungere il servizio pubblicato.
- Se è inclusa la porta
Se la regola di forwarding del producer utilizza tutte le porte, il consumer di servizi deve specificare una porta del producer quando crea il NEG. Se non specificano una porta, il backend consumer utilizza la porta
1, che non funziona.
VPC condiviso
Gli amministratori dei progetti di servizio possono creare service attachment nei progetti di servizio VPC condiviso che si connettono alle risorse nelle reti VPC condiviso.
La configurazione è la stessa di un normale collegamento del servizio, ad eccezione di quanto segue:
- La regola di forwarding del bilanciatore del carico del producer è associata a un indirizzo IP della rete VPC condiviso. La subnet della regola di forwarding deve essere condivisa con il progetto di servizio.
- Il collegamento al servizio utilizza una subnet Private Service Connect dalla reteVPC condivisoa. Questa subnet deve essere condivisa con il progetto di servizio.
Logging
Puoi abilitare i log di flusso VPC nelle subnet che contengono le VM di backend. I log mostrano i flussi tra le VM di backend e gli indirizzi IP nella subnet Private Service Connect.
Controlli di servizio VPC
I Controlli di servizio VPC e Private Service Connect sono compatibili tra loro. Se la rete VPC in cui è deployato l'endpoint Private Service Connect si trova in un perimetro dei Controlli di servizio VPC, l'endpoint fa parte dello stesso perimetro. Tutti i servizi supportati dai Controlli di servizio VPC a cui si accede tramite l'endpoint sono soggetti ai criteri di quel perimetro Controlli di servizio VPC.
Quando crei un endpoint, vengono effettuate chiamate API del control plane tra i progetti consumer e producer per stabilire una connessione Private Service Connect. La creazione di una connessione Private Service Connect tra progetti consumer e producer che non si trovano nello stesso perimetro Controlli di servizio VPC non richiede un'autorizzazione esplicita con le policy in uscita. La comunicazione con i servizi supportati dai Controlli di servizio VPC tramite l'endpoint è protetta dal perimetro dei Controlli di servizio VPC.
Visualizzare le informazioni di connessione dei consumatori
Per impostazione predefinita, Private Service Connect traduce l'indirizzo IP di origine del consumer in un indirizzo in una delle subnet Private Service Connect nella rete VPC del producer di servizi. Se vuoi visualizzare l'indirizzo IP di origine originale del consumer, puoi attivare il protocollo PROXY quando pubblichi un servizio. Private Service Connect supporta il protocollo PROXY versione 2.
Non tutti i servizi supportano il protocollo PROXY. Per saperne di più, consulta Funzionalità e compatibilità.
Se il protocollo PROXY è attivato, puoi ottenere l'indirizzo IP di origine e l'ID connessione PSC (pscConnectionId) del consumer dall'intestazione del protocollo PROXY.
Il formato delle intestazioni del protocollo PROXY dipende dalla versione IP dell'endpoint consumer. Se il bilanciatore del carico dell'allegato di servizio ha un indirizzo IPv6, i consumer possono connettersi sia con indirizzi IPv4 che IPv6. Configura l'applicazione per ricevere e leggere le intestazioni del protocollo PROXY per la versione IP del traffico che deve ricevere.
Per il traffico consumer che passa attraverso una connessione propagata, l'indirizzo IP di origine del consumer e l'ID connessione PSC fanno riferimento all'endpoint Private Service Connect propagato.
Quando abiliti il protocollo PROXY per un collegamento del servizio, la modifica si applica solo alle nuove connessioni. Le connessioni esistenti non includono l'intestazione del protocollo PROXY.
Se abiliti il protocollo PROXY, consulta la documentazione del software del server web di backend per informazioni sull'analisi e l'elaborazione delle intestazioni del protocollo PROXY in entrata nei payload TCP della connessione client. Se il protocollo PROXY è attivato nell'allegato del servizio, ma il server web di backend non è configurato per elaborare le intestazioni del protocollo PROXY, le richieste web potrebbero essere malformate. Se le richieste non sono nel formato corretto, il server non può interpretarle.
L'ID connessione Private Service Connect (pscConnectionId) è
codificato nell'intestazione del protocollo PROXY nel
formato Type-Length-Value (TLV).
| Campo | Lunghezza campo | Valore campo |
|---|---|---|
| Tipo | 1 byte | 0xE0 (PP2_TYPE_GCP)
|
| Lunghezza | 2 byte | 0x8 (8 byte) |
| Valore | 8 byte | pscConnectionId di 8 byte in ordine di rete |
Puoi visualizzare il valore pscConnectionId di 8 byte dalla regola di inoltro
al consumatore o
dall'allegato del servizio
del produttore.
Il valore pscConnectionId è univoco a livello globale per tutte le connessioni attive in un
dato momento. Tuttavia, nel tempo, un pscConnectionId potrebbe essere riutilizzato in
questi scenari:
All'interno di una determinata rete VPC, se elimini un endpoint (regola di forwarding) e ne crei uno nuovo utilizzando lo stesso indirizzo IP, potrebbe essere utilizzato lo stesso valore
pscConnectionId.Se elimini una rete VPC che contiene endpoint (regole di forwarding), dopo un periodo di attesa di sette giorni, il valore
pscConnectionIdutilizzato per questi endpoint potrebbe essere utilizzato per un endpoint diverso in un'altra rete VPC.
Puoi utilizzare i valori pscConnectionId per il debug e per tracciare le origini dei
pacchetti.
Un ID collegamento di servizio Private Service Connect separato di 16 byte (pscServiceAttachmentId) è disponibile dal collegamento del servizio producer.
Il valore pscServiceAttachmentId è un ID univoco globale che identifica un
collegamento del servizio Private Service Connect. Puoi utilizzare il valore
pscServiceAttachmentId per la visibilità e il debug. Questo valore non è
incluso nell'intestazione del protocollo PROXY.
Prezzi
I prezzi di Private Service Connect sono descritti nella pagina dei prezzi di VPC.
Quote
Il numero totale di endpoint Private Service Connect e di connessioni propagate, da qualsiasi consumer, che possono accedere alla tua rete VPC del producer è controllato dalla quota PSC ILB consumer forwarding rules per producer VPC network.
Gli endpoint contribuiscono a questa quota finché non vengono eliminati, anche se il collegamento di servizio associato viene eliminato o configurato per rifiutare la connessione. Le connessioni propagate contribuiscono a questa quota finché l'endpoint associato non viene eliminato, anche se la propagazione della connessione è disattivata nell'hub Network Connectivity Center o se lo spoke della connessione propagata viene eliminato.
Accesso on-premise
I servizi Private Service Connect vengono resi disponibili tramite endpoint. È possibile accedere a questi endpoint da host on-premise connessi supportati. Per saperne di più, vedi Accedere all'endpoint da host on-premise.
Limitazioni
I servizi pubblicati presentano le seguenti limitazioni:
- I bilanciatori del carico configurati con
più protocolli, il cui protocollo è impostato su
L3_DEFAULT, non sono supportati. - Packet Mirroring non può eseguire il mirroring dei pacchetti per il traffico dei servizi pubblicati di Private Service Connect.
- Devi utilizzare Google Cloud CLI o l'API per creare un collegamento del servizio che punta a una regola di forwarding utilizzata per il forwarding del protocollo interno.
Per problemi e soluzioni alternative, vedi Problemi noti.