创建使用静态路由的传统 VPN

本页面介绍如何创建传统 VPN 网关和一个使用静态路由的隧道。此隧道可以基于政策也可以基于路由。

对于基于路由的 VPN,您只能指定远程流量选择器。如需指定本地流量选择器,请改为创建使用基于政策路由的 Cloud VPN 隧道。

路由选项差异

当您使用 Google Cloud Console 创建基于政策的隧道时,传统 VPN 会执行以下所有任务:

  • 将该隧道的本地流量选择器设置为您指定的 IP 范围
  • 将该隧道的远程流量选择器设置为您在远程网络 IP 范围中指定的 IP 范围
  • 对于远程网络 IP 范围中的每个范围,Google Cloud 会创建一个自定义静态路由,其目标(前缀)是范围的 CIDR,其下一个跃点是隧道。

当您使用 Cloud Console 创建基于路由的隧道时,传统 VPN 会执行以下两项任务:

  • 将隧道的本地和远程流量选择器设置为任意 IP 地址 (0.0.0.0/0)
  • 对于远程网络 IP 范围中的每个范围,Google Cloud 会创建一个自定义静态路由,其目标(前缀)是范围的 CIDR,其下一个跃点是隧道。

使用 gcloud 命令行工具创建基于政策或基于路由的隧道时,隧道的流量选择器以相同方式定义。但是,由于自定义静态路由的创建是通过单独的命令完成的,因此您可以更好地控制这些路由。如需了解详情,请参阅网络和隧道路由

针对每个流量选择器指定多个 CIDR

您可以在流量选择器中指定的 CIDR 数取决于 IKE 版本。如需了解其他重要的背景信息,请仔细阅读路由选项和流量选择器以及针对每个流量选择器指定多个 CIDR

准备工作

在 Google Cloud 中设置以下项,更轻松地配置 Cloud VPN:

  1. 登录您的 Google 帐号。

    如果您还没有 Google 帐号,请注册新帐号

  2. 在 Cloud Console 的项目选择器页面上,选择或创建 Cloud 项目。

    转到项目选择器页面

  3. 确保您的 Google Cloud 项目已启用结算功能。 了解如何确认您的项目已启用结算功能

  4. 安装并初始化 Cloud SDK
  1. 如果您使用 gcloud 命令,请使用以下命令设置您的项目 ID。此页面上的 gcloud 说明假设您在发出命令前已设置了项目 ID。
      gcloud config set project [PROJECT_ID]
    

您还可以查看已设置的项目 ID:

      gcloud config list --format='text(core.project)'
    

创建自定义的 Virtual Private Cloud 网络和子网

创建传统 VPN 网关和隧道之前,您必须在传统 VPN 网关所在区域内创建一个 Virtual Private Cloud 网络和至少一个子网。

创建网关和隧道

VPN 设置向导是创建传统 VPN 网关的唯一控制台选项。该向导包含创建传统 VPN 网关、隧道、BGP 会话和外部 VPN 网关资源所需的所有配置步骤。不过,其中某些步骤可稍后再完成。例如,配置 BGP 会话。

创建 VPN 按钮仅支持创建高可用性 VPN 网关。

VPN 向导

配置网关

  1. 转到 Google Cloud Console 中的 VPN 页面。
    转到 VPN 页面
  2. 点击 VPN 设置向导
  3. 创建 VPN 页面上,指定传统 VPN
  4. 点击继续
  5. 创建 VPN 连接页面上,指定以下网关设置:
    • 名称 - VPN 网关的名称。该名称以后无法更改。
    • 说明 -(可选)添加说明。
    • 网络 - 指定要在其中创建 VPN 网关和隧道的现有 VPC 网络。
    • 区域 - Cloud VPN 网关和隧道是区域对象。选择网关所在的 Google Cloud 区域。不同区域中的实例和其他资源可按照路由顺序使用隧道发送出站流量。为获得最佳性能,网关和隧道应位于相关 Google Cloud 资源所在的同一区域中。
    • IP 地址 - 创建或选择现有的区域外部 IP 地址

配置隧道

  1. 隧道部分为新隧道指定以下设置:

    • 名称 - VPN 隧道的名称。该名称以后无法更改。
    • 说明 - 输入说明(可选)。
    • 远程对等 IP 地址 - 指定对等 VPN 网关的公共 IP 地址。
    • IKE 版本 - 选择对等 VPN 网关支持的相应 IKE 版本。推荐选择 IKEv2(如果受对等设备支持)。
    • 共享密钥 - 提供用于身份验证的预共享密钥。Cloud VPN 隧道的共享密钥必须与在对等 VPN 网关上配置对应隧道时使用的共享密钥一致。您可以按照这些说明生成加密型强共享密钥。

    对于基于政策的隧道

    • 路由选项下,选择基于政策
    • 远程网络 IP 范围下,提供对等网络使用的以空格分隔的 IP 范围列表。此为远程流量选择器:对于 Cloud VPN 来说,其为“右侧”。
    • 本地 IP 范围下,选择以下方法之一:
      • 使用本地子网菜单选择现有的本地 IP 范围,或
      • 使用本地 IP 范围字段输入您的 VPC 网络中使用的以空格分隔的 IP 范围列表。如需了解重要的注意事项,请参阅流量选择器

    对于基于路由的隧道

    • 路由选项 - 选择基于路由
    • 远程网络 IP 范围 - 提供对等网络使用的以空格分隔的 IP 范围列表。这些范围用于创建下一个跃点为此 VPN 隧道的自定义静态路由。
  2. 如需在同一网关上创建更多隧道,请点击添加隧道并重复以上步骤。您可以稍后添加更多隧道

  3. 点击创建

gcloud

在以下命令中替换以下内容:

  • project-id 替换为您的项目 ID。
  • network 替换为您的 Google Cloud 网络的名称。
  • region 替换为您需在其中创建网关和隧道的 Google Cloud 区域
  • (可选)--target-vpn-gateway-region 是运行传统 VPN 网关的区域。其值应与 --region 相同。如果未指定,则系统会自动设置此选项。该选项会替换此命令调用中的默认计算/区域属性值。
  • gw-name 替换为网关的名称。
  • gw-ip-name 替换为网关使用的外部 IP 的名称

完成以下命令序列以创建 Google Cloud 网关:

  1. 为 Cloud VPN 网关创建资源:

    1. 创建“目标 VPN 网关”对象。

          gcloud compute target-vpn-gateways create gw-name \
              --network network \
              --region region \
              --project project-id
          
    2. 保留一个区域外部(静态)IP 地址:

          gcloud compute addresses create gw-ip-name \
              --region region \
              --project project-id
          
    3. 请记下此 IP 地址(以便在配置对等 VPN 网关时使用):

          gcloud compute addresses describe gw-ip-name \
              --region region \
              --project project-id \
              --format='flattened(address)'
          
    4. 创建三个“转发规则”。这些规则指示 Google Cloud 将 ESP (IPsec)、UDP 500 和 UDP 4500 流量发送到网关。

          gcloud compute forwarding-rules create fr-gw-name-esp \
              --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 \
              --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 \
              --ip-protocol UDP \
              --ports 4500 \
              --address gw-ip-name \
              --target-vpn-gateway gw-name \
              --region region \
              --project project-id
          
  2. 使用以下详细信息创建 Cloud VPN 隧道:

    • tunnel-name 替换为隧道名称。
    • 将 on-prem-ip 替换为对等 VPN 网关的外部 IP 地址
    • 对于 IKEv1,将 ike-vers 替换为 1;对于 IKEv2,替换为 2
    • shared-secret 替换为您的共享密钥。Cloud VPN 隧道的共享密钥必须与在对等 VPN 网关上配置对应隧道时使用的共享密钥一致。您可以按照这些说明生成加密型强共享密钥。

    对于基于政策的 VPN

    • local-ip-ranges 替换为以逗号分隔的 Google Cloud IP 范围列表。例如,您可以为 VPC 网络中的每个子网提供 CIDR 块。对于 Cloud VPN 来说,此为“左侧”。
    • remote-ip-ranges 替换为以逗号分隔的对等网络 IP 范围列表。对于 Cloud VPN 来说,此为“右侧”。

    基于政策的 VPN 命令:

        gcloud compute vpn-tunnels create tunnel-name \
            --peer-address on-prem-ip \
            --ike-version ike-vers \
            --shared-secret shared-secret \
            --local-traffic-selector=local-ip-ranges \
            --remote-traffic-selector=remote-ip-ranges \
            --target-vpn-gateway gw-name \
            --region region \
            --project project-id
        

    对于基于路由的 VPN

        gcloud compute vpn-tunnels create tunnel-name \
            --peer-address on-prem-ip \
            --ike-version ike-vers \
            --shared-secret shared-secret \
            --local-traffic-selector=0.0.0.0/0 \
            --remote-traffic-selector=0.0.0.0/0 \
            --target-vpn-gateway gw-name \
            --region region \
            --project project-id
        
  3. 为您在上一步中的 --remote-traffic-selector 选项中指定的每个远程 IP 范围创建静态路由。为每个远程 IP 地址范围重复此命令,将 route-name 替换为路由的唯一名称,并将 [REMOTE_IP_RANGE] 替换为相应的远程 IP 范围。

        gcloud compute routes create route-name \
            --destination-range remote-ip-range \
            --next-hop-vpn-tunnel tunnel-name \
            --network network \
            --next-hop-vpn-tunnel-region region \
            --project project-id
        

后续步骤

您必须先完成以下步骤,才可以使用新的 Cloud VPN 网关和隧道:

  1. 设置对等 VPN 网关并配置相应的隧道。请参阅以下页面:
  2. 根据需要在 Google Cloud 和对等网络中配置防火墙规则。如需查看相关建议,请参阅“防火墙规则”页面
  3. 检查隧道的状态,包括转发规则
  4. 您可以通过访问项目路由表
    并对“下一个跃点类型:VPN 隧道”进行过滤来查看 VPN 路由。

后续步骤