0

请多多包涵,因为我的背景是开发而不是系统管理员。网络是我边走边学的东西,因此我在这里写东西:)

几个月前,我开始设计我们云的网络结构。在这里进行了几次交流后,我决定拥有一个项目,该项目将托管一个 VPN 隧道到本地资源和一些其他项目,一旦它们从本地服务器移动,它们将托管我们的产品。

一切都很好,我设法进行了设置。

现在,其中一个项目专门用于“存储”:对我们来说,这意味着数据库、用于访问 statis 数据的存储桶等。

我创建了第一个 mySQL 数据库(第二代)来开始测试,并注意到从内部 IP 访问 SQL 数据库的唯一选项是使用“父项目”子网。

我意识到 SQL 引擎为此专门创建了一个子网。它也写在文档中,我很傻。没问题,我把它拆了,开启私有服务连接,在VPC管理中创建一个分配的IP范围,设置为导出路由。

然后我回到 SQL 引擎创建了一个新数据库。正如预期的那样,新的 IP 已分配给先前设置的分配 IP 范围。

现在,我希望每个对等网络也能够看到 SQL 子网,但显然不是。再一次,RDFM 你这傻鹅。它也写在那里。

我通过 GCP 激活了青铜支持订阅以获得一些指导,但我得到的是重复的“在两个项目之间创建 vpn 隧道”,这让我有点失望,因为 Peered VPC 的概念非常好。

但无论如何,让我们这样做吧。

我在项目中创建了一个指向网关的隧道,该网关将具有 K8s 集群,反之亦然。仪表板告诉我隧道已建立,但显然bgp设置存在问题,因为它们一直挂在两侧的“等待对等点”上,因为永远。

在这一点上,我正在寻找与 BGP 相关的任何东西,但我能找到的只是它在理论上是如何工作的、它的用途、保留的 ASM 编号等。

我真的需要有人指出显而易见的事情并告诉我我在这里搞砸了什么,所以:

这是托管数据库的项目上的 VPN 隧道: 在此处输入图像描述

这是将要部署产品的项目上的 VPN 隧道,需要访问数据库。 在此处输入图像描述

任何帮助是极大的赞赏!

4

3 回答 3

1

关于 VPN 隧道中的 BGP 状态“等待对等点”,我相信这是由于配置了 Cloud Router BGP IP 和 BGP 对等点 IP。配置时,tunnel1的Cloud Router BGP IP地址将成为tunnel2的BGP Peer IP地址,tunnel1的BGP Peer IP地址将成为tunnel2的Router BGP IP地址。

参考您的方案,stage-tunnel-to-cerberus 的 IP 地址应为:路由器 BGP IP 地址:169.254.1.2 和 BGP 对等 IP 地址:169.254.1.1

这应该将您的 VPN 隧道 BGP 会话状态置于“BGP 已建立”。

于 2020-01-13T18:17:23.467 回答
1

您无法通过 VPN 或 VPC Peering 实现您想要的。事实上,VPC 中有一条规则可以避免限制部分中描述的对等传递性

只有直接对等的网络才能进行通信。不支持传递对等互连。换言之,如果 VPC 网络 N1 与 N2 和 N3 对等,但 N2 和 N3 没有直接连接,则 VPC 网络 N2 无法通过 VPC Network Peering 与 VPC 网络 N3 通信。

现在,采取你想要达到的目标。当您使用 Cloud SQL 私有 IP 时,您会在您的 VPC 和 Cloud SQL 的 VPC 之间创建对等互连。您还有另一个用于 SQL 引擎的对等互连(或 VPN 隧道)。

SQL 引擎 -> 对等连接 -> 项目 -> 对等连接 -> Cloud SQL

像这样你不能。

但是您可以使用共享 VPC。创建一个共享 VPC,在其中添加您的 2 个项目,为 SQL 引擎和 Cloud SQL 对等互连创建一个公共子网。那应该行得通。

但小心点。共享 VPC 并非所有 VPC 功能都可用。例如,无服务器 VPC 连接器尚不兼容它。

希望这有帮助!

于 2020-01-13T20:33:25.390 回答
0

OP问题中的原始设置应该可以工作,即

Network 1 <--- (VPN) ---> Network 2 <--- (Peered) ---> CloudSQL network

network和对等互连是由 GCP 创建的)

然后资源Network 1可以访问在网络MySQL中创建的实例。CloudSQLz

于 2020-03-22T09:20:21.100 回答