Connettività privata

La connettività privata consente a Datastream di comunicare con le risorse della tua rete Virtual Private Cloud (VPC) utilizzando una connessione di peering della rete VPC alla rete VPC di Datastream.

La connessione in peering della rete VPC tra la tua rete VPC e la rete VPC di Datastream consente a Datastream di collegarsi a:

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:

Per stabilire la connettività tra Datastream e una risorsa accessibile solo dalla tua rete VPC, puoi utilizzare una VM di Network Address Translation (NAT) nella tua 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 una VM NAT che consente a Datastream di connettersi privatamente a un'istanza Cloud SQL.

Diagramma del flusso utente di Datastream

Configura una VM NAT

  1. Identifica l'indirizzo IP dell'istanza Cloud SQL a cui deve connettersi Datastream.

  2. Identifica la rete VPC. Si tratta della rete VPC connessa alla rete VPC Datastream tramite il peering di rete VPC.

  3. Se non l'hai ancora fatto, crea una configurazione di connettività privata in Datastream. Viene creata la connessione di peering della 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.

  4. 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 dai 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.

  5. Crea la VM NAT nella rete VPC. Se la tua rete VPC è una rete VPC condiviso, 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 condiviso.

    • Per ridurre al minimo tempo di round trip 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 dello script. 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
  6. 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
  7. 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
  8. Assicurati di aver configurato l'istanza Cloud SQL in modo che accetti 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.

  9. 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:

  1. 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.

  2. 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.

  3. Crea regole firewall e configura le reti autorizzate Cloud SQL come descritto 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.

  4. 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