GCP 经典 VPN 要求项目的默认网络层级为 "Premium"?

GCP Classic VPN requires project's default network tier to be "Premium"?

我正在尝试使用基于路由的经典 VPN 选项在本地设置和 GCP VPC 之间设置站点 2 站点 VPN。

现在,无论我尝试在此设置中提供什么输入,我始终会遇到关于项目的默认网络层为 Standard 的错误。

STANDARD network tier (the project's default network tier) is not supported: The network tier of specified IP address is PREMIUM, that of Forwarding Rule must be the same.

GCP Docs,我知道 Standard 网络层不支持 VPN 网关。此外,如果我尝试从此经典 VPN 设置向导为 VPN 网关创建 IP,则 IP 仅从 Premium 网络层提供。

我还想过以某种方式明确指定 VPN 设置的网络层 Premium,但在 google 控制台中似乎没有任何此类选项;虽然这在创建 VM 实例时完全有效,即我可以轻松 select 我的 VM 的网络层,无论我的项目的默认网络层是什么。

这种行为似乎并不常见。看起来经典 VPN 设置希望我的项目的默认层为 Premium,这对我来说意义不大。 我需要对此行为进行一些确认,并且我没有做错什么。在 GCP 上设置经典 VPN 时,还有其他方法可以指定 VPN 网关的网络层吗?


编辑:

我的 VPN 网关本地端仅支持静态路由,因此无法使用 HA VPN。另外,Classic VPN 的弃用仅适用于动态路由配置,所以我认为我的配置目前是安全的。

使用 Standard 层进行 VPN 设置并不是硬性要求。只是在尝试配置它时,我遇到了这个 conflict.I 我正在尝试在我公司的侧网络与 GCP VPC 之间设置 VPN。目前项目(VPC所在)的默认网络层级是Standard,根据这个需求改成Premium的可能性很小。我认为更好的选择是创建一个单独的项目并在那里默认设置 Premium 网络层。

我想确认我遇到的错误确实是控制台流程中的一个问题,并且我没有遗漏任何东西,比如是否可以指定一些其他参数以使经典 VPN 设置向导成功并且使用高级网络层(或任何其他要求)。

简而言之,我无法使用向导在 GCP 端设置经典 VPN,报告的错误似乎表明项目的默认层 Standard 是问题所在。 现在,因为我仍然可以在这个项目中使用 premium 网络层创建虚拟机而没有任何问题。 VPN 设置不应该也可以吗?

OP 想使用 Classic VPN with static routing (some of the features will be deprecated on March 31, 2022, for more details, check this doc. Due to that change, GCP advises to use HA VPNCorporate NetworkGoogle Cloud Platform 站点到站点连接。

In Classic VPN topology, it's required to use Cloud VPN Gateway (at least on the GCP side) and on Google Cloud Platform is available only in Premium Network Tier(默认情况下也推荐)。否则你会得到像 OP:

这样的错误

STANDARD network tier (the project's default network tier) is not supported: The network tier of specified IP address is PREMIUM, that of Forwarding Rule must be the same.

但是,可以在 Network Tiers 之间切换。根据更改 tier 期间的信息,您将弹出信息:

New resources will use the selected tier by default (existing resources won’t change tiers)

这表示您可以在层之间切换,并且在特定层中创建的资源在您更改时不会更改Network Tier。根据 corporate network/environment 配置,不确定这是否适用于此设置。

解法:

由于 Classic VPN 站点到站点需要 Cloud VPN Gateway 您需要在 Premium Tier 而不是 Standard.

上创建此资源

不可能提供完整的解决方案,因为内部部署配置是具有自己特定 security/configuration 的公司网络。还要看GCP项目中的OPs权限。

其他文档

因为我在使用经典 VPN WebUI 向导时遇到了一致的错误,所以我采用 CLI 方式并使用 gcloud 实用程序创建绑定到 Premium 网络层的 VPN 资源。我能够以这种方式创建 VPN 资源,而项目的默认网络层仍设置为 Standard
参考:( https://cloud.google.com/network-connectivity/docs/vpn/how-to/creating-static-vpns#creating_a_gateway_and_tunnel ).

注意:我当前的 GCP 项目仍然具有默认网络层 Standard

  1. 一个简单的 VPN 网关(不特定于任何网络层):
gcloud compute target-vpn-gateways create GW_NAME    --network=NETWORK    --region=REGION    --project=PROJECT_ID
  1. 保留了网络层为 Premium 的 IP。
  2. 然后创建了 3 个转发规则(注意网络层被明确指定为 Premium):
gcloud compute forwarding-rules create fr-GW_NAME-esp    --load-balancing-scheme=EXTERNAL    --network-tier=PREMIUM    --ip-protocol=ESP    --address=GW_IP_NAME    --target-vpn-gateway=GW_NAME    --region=REGION    --project=PROJECT_ID
gcloud compute forwarding-rules create fr-GW_NAME-udp500    --load-balancing-scheme=EXTERNAL    --network-tier=PREMIUM    --ip-protocol=UDP    --ports=500    --address=GW_IP_NAME    --target-vpn-gateway=GW_NAME    --region=REGION    --project=PROJECT_ID
gcloud compute forwarding-rules create fr-GW_NAME-udp4500    --load-balancing-scheme=EXTERNAL    --network-tier=PREMIUM    --ip-protocol=UDP    --ports=4500    --address=GW_IP_NAME    --target-vpn-gateway=GW_NAME    --region=REGION    --project=PROJECT_ID
  1. 现在可以使用 CLI 和 WebUI 配置隧道。

现在来看看 WebUI 向导的问题所在:

虽然 运行 gcloud 命令用于设置转发规则,但如果我将网络层指定为标准 --network-tier=STANDARD,我得到的错误几乎与我在 WebUI 向导中遇到的错误相同。

ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource:
 - The network tier of specified IP address is PREMIUM, that of Forwarding Rule must be the same.

如果我没有在参数中指定网络层,那么我会得到与我在 WebUI 向导中遇到的完全相同的错误。

ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource:
 - STANDARD network tier (the project's default network tier) is not supported: The network tier of specified IP address is PREMIUM, that of Forwarding Rule must be the same.

这让我相信 GCP WebUI 中存在一个错误,即在使用向导创建经典 VPN 时,它没有将所需的网络层指定为其内部调用 Premium。默认情况下,选择项目的默认网络层,即 Standard,最终失败,因为 Standard 网络层不支持 VPN 资源。

后来,在一些请求之后,我能够接触到另一个默认网络层为 Premium 的 GCP 项目。经典 VPN 设置向导在那里成功。

总之,我发现如果项目的默认网络层设置为 Standard,使用 WebUI 向导设置 GCP Classic VPN 确实会失败。