Private Verbindung

Über eine private Verbindung kann Datastream über eine VPC-Netzwerk-Peering-Verbindung mit Ressourcen in Ihrem VPC-Netzwerk (Virtual Private Cloud) kommunizieren.

Über die VPC-Netzwerk-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und dem VPC-Netzwerk von Datastream kann Datastream eine Verbindung zu folgenden Elementen herstellen:

Über die VPC-Netzwerk-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und dem VPC-Netzwerk von Datastream kann Datastream keine Verbindung zu folgenden Ressourcen herstellen:

  • Private Service Connect-Endpunkte in Ihrem VPC-Netzwerk
  • Ressourcen in einem anderen VPC-Netzwerk, das mit Ihrem VPC-Netzwerk, aber nicht mit dem VPC-Netzwerk von Datastream per Peering verbunden ist. Das liegt daran, dass das VPC-Netzwerk-Peering kein transitives Routing bietet.

Wenn Sie eine Verbindung zwischen Datastream und einer Ressource herstellen möchten, auf die nur über Ihr VPC-Netzwerk zugegriffen werden kann, können Sie eine NAT-VM (Network Address Translation) in Ihrem VPC-Netzwerk verwenden. Ein häufiger Anwendungsfall für eine NAT-VM ist, wenn Datastream eine Verbindung zu einer Cloud SQL-Instanz herstellen muss.

Auf dieser Seite wird eine Beispielkonfiguration für eine NAT-VM beschrieben, mit der Datastream eine private Verbindung zu einer Cloud SQL-Instanz herstellen kann.

Diagramm: Datastream-Nutzerfluss

NAT-VM einrichten

  1. Geben Sie die IP-Adresse der Cloud SQL-Instanz an, zu der Datastream eine Verbindung herstellen muss.

  2. Geben Sie Ihr VPC-Netzwerk an. Das ist das VPC-Netzwerk, das über VPC-Netzwerk-Peering mit dem VPC-Netzwerk von Datastream verbunden ist.

  3. Erstellen Sie in Datastream eine Konfiguration für private Verbindungen, falls noch nicht geschehen. Dadurch wird die VPC-Netzwerk-Peering-Verbindung erstellt, die Ihr VPC-Netzwerk mit dem VPC-Netzwerk von Datastream verbindet. Notieren Sie sich den IP-Adressbereich, der von der Konfiguration für die private Datastream-Verbindung verwendet wird.

  4. Wählen Sie einen Maschinentyp für die NAT-VM aus, die Sie im nächsten Schritt erstellen.Google Cloud erzwingt eine maximale ausgehende Bandbreitenbeschränkung pro Instanz für Pakete, die von nächsten Hops innerhalb eines VPC-Netzwerks weitergeleitet werden, entsprechend dem Maschinentyp der VM-Instanz. Weitere Informationen finden Sie unter Ausgehende Verbindungen zu Zielen, die innerhalb eines VPC-Netzwerks routbar sind und Maximale ausgehende Bandbreite pro Instanz.

  5. Erstellen Sie die NAT-VM in Ihrem VPC-Netzwerk. Wenn Ihr VPC-Netzwerk ein freigegebene VPC-Netzwerk ist, können Sie die NAT-VM entweder im Hostprojekt oder in einem beliebigen Dienstprojekt erstellen, solange sich die Netzwerkschnittstelle der NAT-VM im freigegebene VPC-Netzwerk befindet.

    • Erstellen Sie die NAT-VM in derselben Region wie Datastream, um die Netzwerk-Rücklaufzeit zu minimieren.
    • In diesem Beispiel wird davon ausgegangen, dass die NAT-VM eine einzelne Netzwerkschnittstelle hat.
    • Führen Sie das Script in einer Linux-Distribution aus, z. B. Debian 12.
    • Verwenden Sie das folgende Startskript. Das Startskript wird jedes Mal vom Root-Nutzer ausgeführt, wenn die VM gestartet wird. Dieses Script enthält Kommentare, in denen erläutert wird, was die einzelnen Zeilen des Scripts tun. Ersetzen Sie im Script CLOUD_SQL_INSTANCE_IP durch die IP-Adresse der Cloud SQL-Instanz und DATABASE_PORT durch den Zielport, der von der Datenbanksoftware verwendet wird.
    #! /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. Erstellen Sie eine Firewallregel zum Zulassen von eingehenden Verbindungen (oder eine Regel in einer globalen Netzwerk-Firewallrichtlinie, regionalen Netzwerk-Firewallrichtlinie oder hierarchischen Firewallrichtlinie) mit den folgenden Eigenschaften:

    • Richtung: Eingehend
    • Aktion: Zulassen
    • Zielparameter: mindestens die NAT-VM
    • Quellparameter: IP-Adressbereich, der von der Konfiguration der privaten Konnektivität von Datastream verwendet wird
    • Protokoll: TCP
    • Port: muss mindestens die DATABASE_PORT enthalten
  7. Die implizierte Firewallregel zum Zulassen von ausgehendem Traffic ermöglicht es der NAT-VM, Pakete an jedes Ziel zu senden. Wenn in Ihrem VPC-Netzwerk Firewallregeln für abzulehnenden ausgehenden Traffic verwendet werden, müssen Sie möglicherweise eine Firewallregel zum Zulassen von ausgehendem Traffic erstellen, damit die NAT-VM Pakete an die Cloud SQL-Instanz senden kann. Wenn eine Regel für ausgehende Verbindungen erforderlich ist, verwenden Sie die folgenden Parameter:

    • Richtung: ausgehend
    • Aktion: Zulassen
    • Zielparameter: mindestens die NAT-VM
    • Zielparameter: IP-Adresse der Cloud SQL-Instanz
    • Protokoll: TCP
    • Port: muss mindestens die DATABASE_PORT enthalten
  8. Ihre Cloud SQL-Instanz muss so konfiguriert sein, dass Verbindungen von der primären internen IPv4-Adresse akzeptiert werden, die von der Netzwerkschnittstelle Ihrer NAT-VM verwendet wird. Eine Anleitung finden Sie in der Cloud SQL-Dokumentation unter Mit autorisierten Netzwerken autorisieren.

  9. Erstellen Sie ein Verbindungsprofil in Datastream. Geben Sie in den Verbindungsdetails des Profils die primäre interne IPv4-Adresse der von Ihnen erstellten NAT-VM an. Geben Sie den Port der Quelldatenbank in das Portfeld des Verbindungsprofils ein.

Ein Paar NAT-VMs und einen internen Passthrough-Network Load Balancer einrichten

Um die Zuverlässigkeit einer NAT-VM-Lösung zu verbessern, sollten Sie die folgende Architektur in Betracht ziehen, bei der zwei NAT-VMs und ein interner Passthrough-Network Load Balancer verwendet werden:

  1. Erstellen Sie zwei NAT-VMs in verschiedenen Zonen derselben Region. Folgen Sie der Anleitung unter NAT-VM einrichten, um die einzelnen VMs zu erstellen, und platzieren Sie jede VM in einer eigenen zonalen nicht verwalteten Instanzgruppe.

    Alternativ können Sie auch eine regionale verwaltete Instanzgruppe erstellen. Fügen Sie der Vorlage für die verwaltete Instanzgruppe ein Startskript hinzu, z. B. das Beispielstartskript in der Anleitung NAT-VM einrichten.

  2. Erstellen Sie einen internen Passthrough-Network Load Balancer, dessen Backend-Dienst die Instanzgruppe oder ‑gruppen aus dem vorherigen Schritt als Backends verwendet. Ein Beispiel für einen internen Passthrough-Network Load Balancer finden Sie unter Internen Passthrough-Network Load Balancer mit VM-Instanzgruppen-Back-Ends einrichten.

    Wenn Sie die Systemdiagnose des Load Balancers konfigurieren, können Sie eine TCP-Systemdiagnose verwenden, die einen Ziel-TCP-Port verwendet, der mit der DATABASE_PORT übereinstimmt. Systemdiagnosepakete werden gemäß der NAT-VM-Konfiguration an die CLOUD_SQL_INSTANCE_IP weitergeleitet. Alternativ können Sie einen lokalen Prozess auf der NAT-VM ausführen, der eine TCP- oder HTTP-Systemdiagnose an einem benutzerdefinierten Port beantwortet.

  3. Erstellen Sie Firewallregeln und konfigurieren Sie Cloud SQL-autorisierte Netzwerke wie in der Anleitung NAT-VM einrichten beschrieben. Die autorisierten Cloud SQL-Netzwerke müssen die primäre interne IPv4-Adresse beider NAT-VMs enthalten.

  4. Wenn Sie ein Datastream-Verbindungsprofil erstellen, geben Sie in den Verbindungsdetails des Profils die IP-Adresse der Weiterleitungsregel des internen Passthrough-Network Load Balancers an.

Nächste Schritte