如何设置从本地到 Google 云 VPC 的 VPN

How to setup VPN from on-premises to Google Cloud VPC

我们希望能够从我们的 google 云 kubernetes 连接到我的本地数据库。

我们目前正尝试通过在 google 控制台中使用 "Create a VPN connection" 来做到这一点。

在 IP 地址字段中,我被迫创建(或从现有的中选择)"External IP Addresses"。

我能够 link 将单个 VM 实例连接到此外部 IP 地址。但我希望我的 VPN connection/tunnel 位于我的本地网络和我的 Google 云网络中的所有内容之间。

此 IP 不应仅用作外部 IP 地址。对于单个实例。我需要使它成为整个网络的网关。我错过了什么?

提前致谢。

提出问题的另一种方式: 如何找到我的 Google 云网络 (VPC) 网关的 IP 地址以及如何将该 IP 提供给 VPN 连接创建?

使用 Kubernetes Engine 和 Compute Engine 网络路由创建 NAT 网关 [1],以通过 NAT 网关实例路由来自现有 GKE 集群的出站流量。

使用该 NAT 网关 IP 地址创建到远程对等网关的 VPN 连接。

[1] https://cloud.google.com/solutions/using-a-nat-gateway-with-kubernetes-engine

您需要区分VPN隧道的网关IP地址和本地IP范围

网关 IP 地址是来自您本地的所有数据包封装和加密到达的网关 IP。

VPN隧道的本地IP范围是VPN隧道可以到达的IP范围。默认情况下,这是所有 您的 GCP 网络的私有 IP 地址

Cloud VPN connects your on-premises to the VPC, that means every Instance, Cluster or other products that use Google Cloud Engine (GCE).

正如 avinoam-meir 之前的回答中提到的,VPN 至少有两个组件:网关和隧道,但我将添加第三个组件:路由类型。

a) 网关:您可以在此处添加现有或 reserve any static IP address(来自 Google 外部 IP 地址池)。

b) 隧道:封装和加密的流量将流向本地 IP 范围。

c) 路由类型:Cloud VPN 有三种可能性:

根据您选择的类型,路由以不同的方式发生,但一般来说,它会将您的子网传播到您的本地网络并从中接收路由。

重要提示:记得在 GCP VPC 上打开 firewall 以接收来自本地 IP 范围的流量,因为 Ingress 的默认和隐含规则将阻止它。

  • 隐含的允许出口规则:一个出口规则,其动作为允许,目的地为 0.0.0.0/0,优先级为最低可能 (65535) 允许任何实例发送到任何目的地的流量。
  • 隐含的拒绝入口规则: 操作为拒绝的入口规则,源为 0.0.0.0/0,优先级为最低可能 (65535) 通过以下方式保护所有实例阻止传入流量。

答案比我想象的要简单。

我的问题是:

How do I find the IP Address of the gateway to my Google cloud network (VPC) and how do I supply that IP to the VPN Connection creation ?

答案只需填写 "Create a VPN connection" 页面即可。它会自动设置您在 "IP Address" 字段中 get/choose 的任何 IP 作为网关。我不需要将此 IP 地址配置为用作网关。只需在此步骤中分配它就足够了。 Google 在幕后完成剩下的工作。