Puoi utilizzare il peering di rete VPC per consentire a Datastream di comunicare in privato con le risorse della tua rete Virtual Private Cloud (VPC). La connessione in peering della rete VPC tra la tua rete VPC e la rete VPC di Datastream consente a Datastream di connettersi a:
- Risorse come macchine virtuali (VM) e bilanciatori del carico interni nella rete VPC.
- Risorse in altre reti connesse alla tua rete VPC utilizzando tunnel Cloud VPN, collegamenti VLAN di interconnessione dedicati, collegamenti VLAN di interconnessione con partner, e router cloud Network Connectivity Center.
La connessione in peering della rete VPC tra la tua rete VPC e la rete VPC di Datastream non consente a Datastream di connettersi a:
- Endpoint di Private Service Connect situati nella rete VPC.
- Risorse situate in un'altra rete VPC, in peering con la tua rete VPC, ma non in peering con la rete VPC di Datastream. Questo perché il peering di rete VPC non fornisce il routing transitivo.
Per stabilire la connettività tra Datastream e una risorsa accessibile solo dalla rete VPC, puoi utilizzare una VM di Network Address Translation (NAT) nella rete VPC. Un caso d'uso comune per una VM NAT è quando Datastream deve connettersi a un'istanza Cloud SQL.
Questa pagina descrive un esempio di configurazione di VM NAT che consente a Datastream di connettersi privatamente a un'istanza Cloud SQL.
Prerequisiti per il peering VPC
Prima di creare una configurazione di connettività privata, devi eseguire i passaggi riportati di seguito affinché Datastream possa creare la connessione in peering VPC al tuo progetto:
- Assicurati di avere una rete VPC in grado di connettersi alla rete privata di Datastream e che soddisfi i requisiti descritti nella pagina Peering di rete VPC. Per ulteriori informazioni sulla creazione di questa rete, consulta Utilizzare il peering di rete VPC.
- Identifica un intervallo IP disponibile (con un blocco CIDR di /29) nella rete VPC. Non può essere un intervallo IP esistente come subnet, un intervallo IP preallocato per l'accesso ai servizi privati o qualsiasi route (diversa dalla route predefinita 0.0.0.0) che include l'intervallo IP. Datastream utilizza questo intervallo IP per creare una sottorete in modo da poter comunicare con il database di origine. La tabella seguente descrive gli intervalli IP validi.
Intervallo | Descrizione |
---|---|
10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
|
Indirizzi IP privati RFC 1918 |
100.64.0.0/10 |
Spazio indirizzi condiviso RFC 6598 |
192.0.0.0/24 |
Assegnazioni di protocollo IETF RFC 6890 |
192.0.2.0/24 (TEST-NET-1)198.51.100.0/24 (TEST-NET-2)203.0.113.0/24 (TEST-NET-3) |
Documentazione RFC 5737 |
192.88.99.0/24 |
Relay da IPv6 a IPv4 (non più supportato) RFC 7526 |
198.18.0.0/15 |
Test di benchmark RFC 2544 |
Verifica che Google Cloud e il firewall on-premise consentano il traffico dall'intervallo IP selezionato. Google Cloud In caso contrario, crea una regola firewall in entrata che consenta il traffico sulla porta del database di origine e assicurati che l'intervallo di indirizzi IPv4 nella regola firewall corrisponda a quello allocato durante la creazione della risorsa di connettività privata:
gcloud compute firewall-rules create FIREWALL-RULE-NAME \ --direction=INGRESS \ --priority=PRIORITY \ --network=PRIVATE_CONNECTIVITY_VPC \ --project=VPC_PROJECT \ --action=ALLOW \ --rules=FIREWALL_RULES \ --source-ranges=IP-RANGE
Sostituisci quanto segue:
- FIREWALL-RULE-NAME: il nome della regola firewall da creare.
- PRIORITY: la priorità della regola, espressa come numero intero compreso tra 0 e 65535. Il valore deve essere inferiore a quello impostato per la regola di blocco del traffico, se esistente. I valori di priorità più bassi implicano una precedenza maggiore.
- PRIVATE_CONNECTIVITY_VPC: la rete VPC che può eseguire il peering con la rete privata di Datastream e che soddisfa i requisiti descritti nella pagina Peering di rete VPC. Si tratta del VPC specificato quando crei la configurazione di connettività privata.
- VPC_PROJECT: il progetto della rete VPC.
- FIREWALL_RULES: l'elenco di protocolli e porte a cui si applica la regola firewall, ad esempio
tcp:80
. La regola deve consentire il traffico TCP all'indirizzo IP e alla porta del database di origine o del proxy. Poiché la connettività privata può supportare più database, la regola deve prendere in considerazione l'utilizzo effettivo della configurazione. IP-RANGE: l'intervallo di indirizzi IP utilizzati da Datastream per comunicare con il database di origine. Si tratta dello stesso intervallo indicato nel campo Alloca un intervallo IP quando crei la configurazione di connettività privata.
Potresti anche dover creare una regola firewall di uscita identica per consentire il ritorno del traffico a Datastream.
Sono assegnati a un ruolo che contiene l'autorizzazione
compute.networks.list
. Questa autorizzazione ti fornisce le autorizzazioni IAM necessarie per elencare le reti VPC nel tuo progetto. Per sapere quali ruoli contengono questa autorizzazione, consulta il riferimento alle autorizzazioni IAM.
Prerequisiti del VPC condiviso
Se utilizzi VPC condiviso, devi completare le seguenti azioni oltre ai passaggi descritti nella sezione Prerequisiti VPC:
Nel progetto di servizio:
- Attiva l'API Datastream.
Recupera l'indirizzo email utilizzato per l'account di servizio Datastream. Gli account di servizio Datastream vengono creati quando esegui una delle seguenti operazioni:
- Crea una risorsa Datastream, ad esempio un profilo di connessione o uno stream.
- Crea una configurazione di connettività privata, seleziona il tuo VPC condiviso e fai clic su Crea account di servizio Datastream. L'account di servizio viene creato nel progetto host.
Per ottenere l'indirizzo email utilizzato per l'account di servizio Datastream, individua il numero di progetto nella Google Cloud home page della console. L'indirizzo email dell'account di servizio è
service-[project_number]@gcp-sa-datastream.iam.gserviceaccount.com
.
Nel progetto host:
Concedi all'account di servizio Datastream l'autorizzazione del ruolo
compute.networkAdmin
Identity and Access Management (IAM). Questo ruolo è obbligatorio solo quando crei il peering VPC. Una volta stabilito il peering, non avrai più bisogno del ruolo.Se la tua organizzazione non consente la concessione dell'autorizzazione, crea un ruolo personalizzato con le seguenti autorizzazioni minime per creare ed eliminare risorse di connessione privata:
Per ulteriori informazioni sui ruoli personalizzati, vedi Creare e gestire i ruoli personalizzati.
Configura una VM NAT
Identifica l'indirizzo IP dell'istanza Cloud SQL a cui deve connettersi Datastream.
Identifica la rete VPC. Si tratta della rete VPC connessa alla rete VPC Datastream tramite il peering di rete VPC.
Se non l'hai ancora fatto, crea una configurazione di connettività privata in Datastream. Viene creata la connessione di peering di rete VPC che connette la tua rete VPC e la rete VPC di Datastream. Prendi nota dell'intervallo di indirizzi IP utilizzato dalla configurazione della connettività privata di Datastream.
Scegli un tipo di macchina da utilizzare per la VM NAT che crei nel passaggio successivo. Google Cloud applica un limite di larghezza di banda in uscita massima per istanza, per i pacchetti instradati dagli hop successivi all'interno di una rete VPC, in base al tipo di macchina dell'istanza VM. Per ulteriori informazioni, consulta Egress verso destinazioni indirizzabili all'interno di una rete VPC e Larghezza di banda massima in uscita per istanza.
Crea la VM NAT nella rete VPC. Se la tua rete VPC è una rete VPC condivisa, puoi creare la VM NAT nel progetto host o in qualsiasi progetto di servizio, a condizione che l'interfaccia di rete della VM NAT si trovi nella rete VPC condivisa.
- Per ridurre al minimo il tempo di percorrenza della rete, crea la VM NAT nella stessa regione di Datastream.
- Questo esempio presuppone che la VM NAT abbia una singola interfaccia di rete.
- Esegui lo script in una distribuzione Linux, ad esempio Debian 12.
- Utilizza il seguente script di avvio. Lo script di avvio viene eseguito da root ogni volta che la VM si avvia. Questo script include commenti che spiegano la funzione di ogni riga. Nello script, sostituisci CLOUD_SQL_INSTANCE_IP con l'indirizzo IP dell' istanza Cloud SQL e DATABASE_PORT con la porta di destinazione utilizzata dal software del database.
#! /bin/bash export DB_ADDR=CLOUD_SQL_INSTANCE_IP export DB_PORT=DATABASE_PORT # Enable the VM to receive packets whose destinations do # not match any running process local to the VM echo 1 > /proc/sys/net/ipv4/ip_forward # Ask the Metadata server for the IP address of the VM nic0 # network interface: md_url_prefix="http://169.254.169.254/computeMetadata/v1/instance" vm_nic_ip="$(curl -H "Metadata-Flavor: Google" ${md_url_prefix}/network-interfaces/0/ip)" # Clear any existing iptables NAT table entries (all chains): iptables -t nat -F # Create a NAT table entry in the prerouting chain, matching # any packets with destination database port, changing the destination # IP address of the packet to the SQL instance IP address: iptables -t nat -A PREROUTING \ -p tcp --dport $DB_PORT \ -j DNAT \ --to-destination $DB_ADDR # Create a NAT table entry in the postrouting chain, matching # any packets with destination database port, changing the source IP # address of the packet to the NAT VM's primary internal IPv4 address: iptables -t nat -A POSTROUTING \ -p tcp --dport $DB_PORT \ -j SNAT \ --to-source $vm_nic_ip # Save iptables configuration: iptables-save
Crea una regola firewall di autorizzazione in entrata (o una regola in un criterio firewall di rete globale, un criterio firewall di rete regionale o un criterio firewall gerarchico) con queste caratteristiche:
- Direzione: ingresso
- Azione: consenti
- Parametro target: almeno la VM NAT
- Parametro source: l'intervallo di indirizzi IP utilizzato dalla configurazione della connettività privata di Datastream
- Protocollo: TCP
- Porta: deve includere almeno DATABASE_PORT
La regola firewall di uscita consentita implicita consente alla VM NAT di inviare pacchetti a qualsiasi destinazione. Se la tua rete VPC utilizza regole firewall di rifiuto in uscita, potresti dover creare una regola firewall di autorizzazione in uscita per consentire alla VM NAT di inviare pacchetti all'istanza Cloud SQL. Se è necessaria una regola di autorizzazione in uscita, utilizza questi parametri:
- Direzione: in uscita
- Azione: consenti
- Parametro target: almeno la VM NAT
- Parametro Destination: l'indirizzo IP dell'istanza Cloud SQL
- Protocollo: TCP
- Porta: deve includere almeno DATABASE_PORT
Assicurati di aver configurato l'istanza Cloud SQL in modo da accettare connessioni dall'indirizzo IPv4 interno principale utilizzato dall'interfaccia di rete della VM NAT. Per indicazioni, consulta Autorizzazione con reti autorizzate nella documentazione di Cloud SQL.
Crea un profilo di connessione in Datastream. Nei dettagli di connessione del profilo, specifica l'indirizzo IPv4 interno principale della VM NAT che hai creato. Inserisci la porta del database di origine nel campo della porta del profilo di connessione.
Configura una coppia di VM NAT e un bilanciatore del carico di rete passthrough interno
Per migliorare l'affidabilità di una soluzione di VM NAT, considera la seguente architettura, che utilizza una coppia di VM NAT e un bilanciatore del carico di rete passthrough interno:
Crea due VM NAT in zone diverse della stessa regione. Segui le istruzioni per la configurazione di una VM NAT per creare ogni VM e posizionala nel proprio gruppo di istanze non gestite zonale.
In alternativa, puoi creare un gruppo di istanze gestite regionale. Nel modello di gruppo di istanze gestite, includi uno script di avvio come lo script di avvio di esempio nelle istruzioni per la configurazione di una VM NAT.
Crea un bilanciatore del carico di rete passthrough interno il cui servizio di backend utilizza il gruppo o i gruppi di istanze del passaggio precedente come backend. Per un esempio di bilanciatore del carico di rete passthrough interno, consulta Configura un bilanciatore del carico di rete passthrough interno con backend di gruppi di istanze VM.
Quando configuri il controllo di integrità del bilanciatore del carico, puoi utilizzare un controllo di integrità TCP che utilizza una porta TCP di destinazione corrispondente a DATABASE_PORT. I pacchetti di controllo di integrità vengono instradati al CLOUD_SQL_INSTANCE_IP in base alla configurazione della VM NAT. In alternativa, puoi eseguire un processo locale sulla VM NAT che risponda a un controllo di integrità TCP o HTTP su una porta personalizzata.
Crea regole firewall e configura le reti autorizzate Cloud SQL come описано nelle istruzioni per la configurazione di una VM NAT. Assicurati che le reti autorizzate Cloud SQL includano l'indirizzo IPv4 interno principale di entrambe le VM NAT.
Quando crei un profilo di connessione Datastream, specifica l'indirizzo IP della regola di inoltro del bilanciatore del carico di rete passthrough interno nei dettagli di connessione del profilo.
Passaggi successivi
- Scopri come creare una configurazione di connettività privata.
- Scopri come visualizzare la configurazione di connettività privata.
- Scopri come eliminare una configurazione di connettività privata.