问题描述
假设我有一个IP范围为10.148.0.0/20的自定义VPC 此自定义VPC具有允许内部使用的防火墙规则,因此这些IP范围内的服务可以相互通信。 系统增长后,我需要使用Classic Cloud VPN连接到一些本地网络,已经创建Cloud VPN(某人已经配置了本地端配置)并且已经建立了VPN隧道(带有绿色复选标记)。>
我现在还可以使用在自定义VPC网络上创建的计算引擎来ping到本地IP(假设ping到10.xxx.xxx.xxx,此处不是GCP内部/专用IP,而是本地私有IP)。
问题是自定义VPC网络中生成的所有计算引擎实例现在都无法与Internet通信(例如进行sudo apt更新),甚至无法与Google云存储通信(使用gsutil),但是它们可以使用私有IP进行通信。 我也无法在该自定义VPC上生成dataproc集群(我想是因为它无法连接到GCS,因为dataproc需要用于分段存储的GCS)。
由于我不太了解网络知识和GCP的相对较新知识,因此如何在我在自定义VPC内创建的实例上连接到Internet?
解决方法
在更深入地检查了自定义VPC和Cloud VPN之后,我意识到建立Cloud VPN时存在配置错误,我在“路由”选项中选择了“基于路由”,并在“远程网络IP范围”中输入0.0.0.0/0。我猜想这条路由会将所有流量发送到VPN,如@John Hanley所述。
通过使用基于策略的路由选项来解决此问题,并且仅在“远程网络IP”范围内添加特定的IP。 谢谢@John Hanley,并且 @guillaume blaquiere指出了这一点