专用连接

概览

专用连接是 Virtual Private Cloud (VPC) 网络与 Datastream 的专用网络之间的连接,使 Datastream 能够使用内部 IP 地址与资源进行通信。使用专用连接会在 Datastream 网络上建立专属的连接,这意味着其他客户无法共享此连接。

您可以使用专用连接将 Datastream 连接到任何来源。但是,只有直接对等互连的 VPC 网络才能相互通信。

不支持传递性对等互连。如果 DataStream 与之对等互连的网络不是托管来源的网络,则需要使用代理。

  • 如果来源是 Cloud SQL,则您需要 Cloud SQL Auth 代理
  • 如果来源托管在其他 VPC 中或 Google 网络外部,并且 Datastream 与之对等互连的 VPC 网络无法与托管来源的 VPC 或网络直接连接,则需要反向代理

在本页面中,您将了解如何使用代理在 Datastream 与 Cloud SQL 之间,或在 Datastream 与托管在其他 VPC 中或 Google 网络外部的来源之间建立专用连接。

为什么需要 Cloud SQL Auth 代理?

将 Cloud SQL 实例配置为使用专用 IP 地址时,您需要使用您的 VPC 网络与 Cloud SQL 实例所在的底层 Google 服务的 VPC 网络之间的 VPC 对等互连连接。

由于 Datastream 的网络无法与 Cloud SQL 的专用服务网络直接对等互连,并且由于 VPC 对等互连不具有传递性,因此需要使用 Cloud SQL Auth 代理来桥接从 Datastream 到 Cloud SQL 实例的连接。

下图说明了如何使用 Cloud SQL Auth 代理在 Datastream 与 Cloud SQL 之间建立专用连接。

Datastream 用户流程图

设置 Cloud SQL Auth 代理

  1. 确定 Datastream 通过其连接到来源 Cloud SQL 实例的 VPC 网络。此 VPC 网络应该能够连接到该实例。

  2. 在此 VPC 网络中,使用基本 Debian 或 Ubuntu 映像创建新虚拟机。此虚拟机将托管 Cloud SQL Auth 代理客户端。

  3. 按照本指南中的步骤设置 Cloud SQL Auth 代理。

  4. 在 Datastream 中创建专用连接配置,以便在您的 VPC 与 Datastream 的 VPC 之间建立 VPC 对等互连。

  5. 在 Datastream 中创建连接配置文件。对于连接详情,输入托管代理客户端的虚拟机的 IP 地址和端口。

为什么需要反向代理?

如果 Datastream 的 VPC 网络与您的 VPC 网络(“Network1”)对等互连,并且您的来源可以从其他 VPC 网络(“Network2”)访问,则 Datastream 无法仅使用 VPC 网络对等互连与来源进行通信。还需要反向代理来桥接 Datastream 与来源之间的连接。

下图说明了如何使用反向代理在 Datastream 与托管在 Google 网络外部的来源之间建立专用连接。

Datastream 用户流程图

设置反向代理

  1. 确定 Datastream 通过其连接到来源的 VPC 网络。
  2. 在此 VPC 网络中,使用基本 Debian 或 Ubuntu 映像创建新虚拟机。此虚拟机将托管反向代理。
  3. 验证子网是否与 Datastream 位于同一区域,以及反向代理是否将流量转发到来源(而不是从来源转发流量)。
  4. 通过从虚拟机到来源的内部 IP 地址和端口运行 pingtelnet 命令,确认您的虚拟机是否可以与来源通信。
  5. 通过 SSH 连接到反向代理并使用以下脚本创建文件:
        #! /bin/bash
    
        export DB_ADDR=[IP]
        export DB_PORT=[PORT]
    
        export ETH_NAME=$(ip -o link show | awk -F': ' '{print $2}' |
        grep -v lo)
    
        export REMOTE_IP_ADDR=$(getent hosts $DB_ADDR | awk '{print $1}')
    
        export LOCAL_IP_ADDR=$(ip -4 addr show $ETH_NAME |
        grep -Po 'inet \K[\d.]+')
    
        echo 1 > /proc/sys/net/ipv4/ip_forward
        iptables -t nat -A PREROUTING -p tcp -m tcp --dport $DB_PORT
        -j DNAT --to-destination       $REMOTE_IP_ADDR:$DB_PORT
        iptables -t nat -A POSTROUTING -j SNAT --to-source $LOCAL_IP_ADDR
        
  6. 运行脚本。
  7. 在 Datastream 中创建专用连接配置,以便在您的 VPC 与 Datastream 的 VPC 之间建立 VPC 对等互连。
  8. 在 Datastream 中创建连接配置文件。对于连接详情,输入托管代理的虚拟机的内部 IP 地址和端口。