![跨 GCP 区域建立网络连接](https://linux22.com/image/780534/%E8%B7%A8%20GCP%20%E5%8C%BA%E5%9F%9F%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5.png)
我在 GCP 中有一个作为单独项目的暂存环境。在项目内部,我有一个测试虚拟机,我可以在其中部署组件以针对我们的内部服务进行测试。我们的大多数服务都部署在 northamerica-northeast1,但由于我在荷兰工作,因此我将测试虚拟机放在 europe-west4。我们还使用 Tailscale 从本地开发机器访问 GCP 中的虚拟机实例,因此我希望能够通过 Tailscale 从我的开发箱连接到 europe-west4 中的测试虚拟机。
但是,尽管我已将 Tailscale 网关设置为具有到 europe-west4 子网的已批准路由,但我无法从本地计算机访问测试虚拟机。我尝试通过 SSH 进入 Tailscale 网关并从那里 ping 测试虚拟机,但同样失败了,因此看起来 Tailscale 可能没有问题。
我一直在研究我们网络的防火墙规则,似乎绝对应该允许此连接。我们有一条default-allow-internal
规则允许从 10.128.0.0/9 进入所有实例的流量(并且我们的防火墙中只有明确的允许规则)。为了保险起见,我还添加了一条允许allow-tailnet
从 100.64.0.0/10 进入的规则,但这似乎没有帮助(而且,如果我理解正确的话,CGNAT IP 无论如何都应该只在 Wireguard IP 路径内使用)。
我尝试设置从 10.162.0.18(我们的 Tailscale 网关)到我的测试 VM 的连接测试,结果如下:
对我可能遗漏的内容有什么建议吗?非常感谢!
答案1
您是否检查过每个云路由器 VPC 的路由模式?如果您想了解其他区域的路由,则需要确保将路由设置为全局。
https://cloud.google.com/network-connectivity/docs/router/how-to/configuring-routing-mode