创建连接到对等 VPN 网关的高可用性 VPN 网关

本页面介绍如何创建连接到对等 VPN 网关的高可用性 VPN 网关。

高可用性 VPN 网关使用高可用性 VPN API,可提供 99.99% 的 SLA 可用性承诺。此配置使用隧道对,即每个高可用性 VPN 网关接口上设有一个隧道。要获得 SLA 承诺的 99.99% 的高可用性,您必须在两个高可用性 VPN 网关接口上配置 VPN 隧道。

需要为高可用性 VPN 配置以下两个网关组件:

  • Google Cloud 中的高可用性 VPN 网关
  • 您的对等 VPN 网关 - 高可用性 VPN 网关所连接的对等网络中的一个或多个物理 VPN 网关设备或软件应用。对等网关可以是本地 VPN 网关,也可以是由其他云服务提供商托管的网关。

    在 Google Cloud 中为每个对等网关设备或服务创建一个外部 VPN 网关资源。注意:所有对等网关场景在 Google Cloud 中都由一个外部对等 VPN 资源表示。

如需详细了解 Cloud VPN,请参阅以下资源:

如需部署通过 Cloud Interconnect 实现的高可用性 VPN,请参阅通过 Cloud Interconnect 实现的高可用性 VPN 概览

冗余类型

高可用性 VPN API 包含 REDUNDANCY_TYPE 选项,表示您为外部 VPN 网关资源配置的接口数。

当您配置外部 VPN 网关资源时,gcloud 命令会自动根据您在接口 ID 中提供的接口数推断出以下 REDUNDANCY_TYPE 值:

  • 一个外部 VPN 接口为 SINGLE_IP_INTERNALLY_REDUNDANT
  • 两个外部 VPN 接口为 TWO_IPS_REDUNDANCY
  • 四个外部 VPN 接口为 FOUR_IPS_REDUNDANCY

在配置外部 VPN 网关时,请为指明数目的外部 VPN 接口使用以下接口标识号:

  • 对于一个外部 VPN 接口,请使用值 0
  • 对于两个外部 VPN 接口,请使用值 01
  • 对于四个外部 VPN 接口,请使用值 0123

创建 Cloud Router 路由器

配置新的高可用性 VPN 网关时,您可以创建新的 Cloud Router 路由器,也可以将现有 Cloud Router 路由器与现有 Cloud VPN 隧道或 VLAN 连接搭配使用。但是,由于连接的特定 ASN 要求,您使用的 Cloud Router 路由器必须尚未管理与合作伙伴互连连接关联的 VLAN 连接的 BGP 会话。

准备工作

查看 Google Cloud 中动态路由的工作原理。

确保您的对等 VPN 网关支持边界网关协议 (BGP)。

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

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Install the Google Cloud CLI.
  5. To initialize the gcloud CLI, run the following command:

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  1. 如果您使用的是 Google Cloud CLI,请使用以下命令设置项目 ID。此页面上的 gcloud 说明假设您在发出命令前已设置了项目 ID。

        gcloud config set project PROJECT_ID
        
  1. 您还可以通过运行以下命令来查看已设置的项目 ID:

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

创建自定义 VPC 网络和子网

创建高可用性 VPN 网关和隧道对之前,请在高可用性 VPN 网关所在的区域中创建 Virtual Private Cloud (VPC) 网络和至少一个子网:

如需为高可用性 VPN 网关启用 IPv6,您必须在创建 VPC 时启用 IPv6 内部地址的分配。此外,您必须将子网配置为使用 IPv6 内部地址。

您还必须在子网中的虚拟机上配置 IPv6。

VPC 子网必须配置为使用内部 IPv6 地址。 使用 gcloud CLI 时,您可以使用 --ipv6-access-type=INTERNAL 标志配置子网。Cloud Router 路由器不会动态通告配置为使用外部 IPv6 地址 (--ipv6-access-type=EXTERNAL) 的子网的路由。

如需了解如何在 VPC 网络和子网中使用内部 IPv6 地址范围,请参阅内部 IPv6 规范

本文档中的示例还使用了 VPC 全球动态路由模式,该模式的行为如下:

  • Cloud Router 路由器的所有实例会将其获知的 to on-premises 路由应用于 VPC 网络的所有子网。
  • 指向 VPC 网络中所有子网的路由会与本地路由器共享。

创建连接到对等 VPN 的高可用性 VPN 网关和隧道对

按照本部分中的说明创建一个高可用性 VPN 网关、对等 VPN 网关资源、一对隧道和 BGP 会话。

创建高可用性 VPN 网关

控制台

VPN 设置向导包括创建高可用性 VPN 网关、对等 VPN 网关资源、隧道和 BGP 会话所需的所有配置步骤。

如要创建高可用性 VPN 网关,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,转到 VPN 页面。

    转到 VPN

  2. 如果您是首次创建网关,请点击创建 VPN 连接

  3. 选择 VPN 设置向导

  4. 如果您已有高可用性 VPN 网关,请选择该网关的选项按钮。

  5. 点击继续

  6. 指定 VPN 网关名称

  7. VPC 网络下,选择现有网络或默认网络。

  8. 选择区域

  9. 为 VPN 网关选择栈类型:IPv4(单栈)IPv4 和 IPv6(双栈)

  10. 点击创建并继续

    控制台页面会刷新,刷新后会显示您的网关信息。系统会自动为每个网关接口分配两个外部 IP 地址。请记下您网关配置的详细信息,以供后续配置步骤使用。

gcloud

如需创建高可用性 VPN 网关,请运行以下命令。创建网关后,系统会自动分配两个外部 IP 地址,每个 IP 地址对应一个网关接口。

  • 如需仅支持 IPv4 工作负载,您可以创建使用 IPV4_ONLY 堆栈类型的高可用性 VPN 网关。
  • 如需同时支持 IPv4 和 IPv6 工作负载,您可以创建使用 IPV4_IPV6 堆栈类型的高可用性 VPN 网关。
  • 如需仅支持 IPv6 工作负载,您可以创建具有 IPV6_ONLY 堆栈类型的高可用性 VPN 网关(适用于预览版,且仅搭配使用 Google Cloud CLI 或 API)。

如需创建具有 IPv4 接口的高可用性 VPN 网关,请运行以下命令。创建网关后,系统会自动分配两个外部 IPv4 地址,每个地址对应一个网关接口。

gcloud compute vpn-gateways create GW_NAME \
    --network=NETWORK \
    --region=REGION \
    --stack-type=IP_STACK

您还可以指定 --gateway-ip-version=IPV4。不过,此标志不是必需的。如果未指定此标志,则高可用性 VPN 网关默认使用外部 IPv4 地址。

如需创建具有 IPv6 接口的高可用性 VPN 网关,请运行以下命令。创建网关后,系统会自动分配两个外部 IPv6 地址,每个地址对应一个网关接口。

gcloud beta compute vpn-gateways create GW_NAME \
    --network=NETWORK \
    --region=REGION \
    --gateway-ip-version=IPV6 \
    --stack-type=IP_STACK

替换以下内容:

  • GW_NAME:网关的名称
  • NETWORK:Google Cloud 网络的名称
  • REGION:您在其中创建网关和隧道的 Google Cloud 区域
  • IP_STACK(可选):要使用的 IP 栈。指定 IPV4_ONLYIPV4_IPV6IPV6_ONLY预览版)。如果未指定此标志,则默认堆栈类型为 IPV4_ONLY(对于具有 IPv4 接口的高可用性 VPN 网关)和 IPV4_IPV6(对于具有 IPv6 接口的网关)。

您创建的网关如以下示例输出所示。如果您指定“--gateway-ip-version=IPV6”,则会分配 IPv6 接口。否则,系统会自动为每个网关接口分配一个外部 IPv4 地址:

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnGateways/ha-vpn-gw-a].
NAME          INTERFACE0     INTERFACE1     NETWORK     REGION
ha-vpn-gw-a   203.0.113.16   203.0.113.23   network-a   us-central1

API

如需为高可用性 VPN 网关创建完整配置,请使用以下部分中的 API 命令。这些部分使用的所有字段值均为示例值。

如需创建高可用性 VPN 网关,请使用 vpnGateways.insert 方法发出 POST 请求:

   POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnGateways
   {
     "name": "ha-vpn-gw-a",
     "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/network-a",
     "stackType": "IPV4_IPV6",
     "gatewayIpVersion": "IPV4"
   }
   POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/vpnGateways
   {
     "name": "ha-vpn-gw-a",
     "network": "https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/networks/network-a",
     "gatewayIpVersion": "IPV6",
     "stackType": "IPV6_ONLY"
   }
  • 创建具有 IPv4 接口的高可用性 VPN 网关时,gatewayIpVersionstackType 字段是可选的。

    • 如果未指定 gatewayIpVersion,则默认值为 IPV4

    • 对于 gatewayIpVersionIPV4 的网关,唯一有效的 stackType 值是 IPV4_IPV6IPV4_ONLY

    如果未指定 stackType,则默认值为 IPV4_ONLY

  • 为高可用性 VPN 网关分配外部 IPv6 地址时,必须将 IPV6 指定为 gatewayIpVersion 值。stackType 字段为可选字段。

    • 如果未指定 stackType,则默认值为 IPV4_IPV6

    • 对于 gatewayIpVersionIPV6 的网关,唯一有效的 stackType 值是 IPV4_IPV6IPV6_ONLY预览版)。

创建对等 VPN 网关资源

控制台

对等 VPN 网关资源表示 Google Cloud 中的非 Google Cloud 网关。

如需创建对等 VPN 网关资源,请按以下步骤操作:

  1. 创建 VPN 页面上的对等 VPN 网关下,选择本地或非 Google Cloud
  2. 对等 VPN 网关名称下,选择现有的对等网关,或点击新建对等 VPN 网关

    如果选择现有网关,Google Cloud 控制台会根据您在现有对等网关上配置的对等接口数来选择要配置的隧道数。

    如需创建新的对等网关,请完成以下步骤:

    1. 为对等 VPN 网关指定名称
    2. 对等 VPN 网关接口下,选择 onetwofour 个接口,具体取决于您的对等网关所拥有的接口类型。如需查看每种类型的示例,请参阅“拓扑”页面
    3. 在每个对等 VPN 接口的字段中,指定用于该接口的外部 IP 地址。如需了解详情,请参阅配置对等 VPN 网关
    4. 点击创建

gcloud

创建外部 VPN 网关资源,该资源向 Google Cloud 提供关于您的一个或多个对等 VPN 网关的信息。根据对等 VPN 网关的高可用性建议,您可以为以下不同类型的本地 VPN 网关创建外部 VPN 网关资源:

  • 两个单独的对等 VPN 网关设备,这两个设备互相提供冗余性,并且各自都有自己的外部 IP 地址。
  • 使用两个单独接口的单个对等 VPN 网关,每个接口都有自己的外部 IP 地址。对于这种对等网关,您可以创建具有两个接口的单个外部 VPN 网关。
  • 具有单个外部 IP 地址的单个对等 VPN 网关。

选项 1:为两个单独的对等 VPN 网关设备创建外部 VPN 网关资源

  • 对于此类对等网关,外部 VPN 网关的每个接口都有一个外部 IP 地址,每个地址都来自一个对等 VPN 网关设备。

    gcloud compute external-vpn-gateways create PEER_GW_NAME \
       --interfaces 0=PEER_GW_IP_0,1=PEER_GW_IP_1
    

    请替换以下内容:

    • PEER_GW_NAME:表示对等网关的名称
    • PEER_GW_IP_0:对等网关的外部 IP 地址
    • PEER_GW_IP_1:另一个对等网关的外部 IP 地址

    您创建的外部 VPN 网关资源如以下示例所示,其中 PEER_GW_IP_0PEER_GW_IP_1 显示对等网关接口的实际外部 IP 地址:

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/externalVpnGateways/peer-gw].
    NAME      INTERFACE0    INTERFACE1
    peer-gw   PEER_GW_IP_0  PEER_GW_IP_1
    

选项 2:为具有两个单独接口的单个对等 VPN 网关创建外部 VPN 网关资源

  • 对于此类对等网关,请创建具有两个接口的单个外部 VPN 网关:

    gcloud compute external-vpn-gateways create PEER_GW_NAME \
       --interfaces 0=PEER_GW_IP_0,1=PEER_GW_IP_1
    

    请替换以下内容:

    • PEER_GW_NAME:表示对等网关的名称
    • PEER_GW_IP_0:来自对等网关一个接口的外部 IP 地址
    • PEER_GW_IP_1:来自对等网关其他接口的外部 IP 地址

    您创建的外部 VPN 网关资源如以下示例所示,其中 PEER_GW_IP_0PEER_GW_IP_1 显示对等网关接口的实际外部 IP 地址:

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/externalVpnGateways/peer-gw].
    NAME     INTERFACE0    INTERFACE1
    peer-gw  PEER_GW_IP_0  PEER_GW_IP_1
    

选项 3:为具有单个外部 IP 地址的单个对等 VPN 网关创建外部 VPN 网关资源

  • 对于此类对等网关,请创建具有一个接口的外部 VPN 网关。

    gcloud compute external-vpn-gateways create PEER_GW_NAME \
       --interfaces 0=PEER_GW_IP_0
    

    请替换以下内容:

    • PEER_GW_NAME:表示对等网关的名称
    • PEER_GW_IP_0:来自对等网关一个接口的外部 IP 地址

    您创建的外部 VPN 网关资源如下示例所示,其中 PEER_GW_IP_0 显示对等网关接口的实际外部 IP 地址:

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/externalVpnGateways/peer-gw].
    NAME       INTERFACE0
    peer-gw    PEER_GW_IP_0
    

API

如需创建外部 VPN 网关资源,请使用 externalVpnGateways.insert 方法发出 POST 请求。

  • 对于具有一个接口的外部(对等)VPN 网关,请使用下面的示例,但只能指定一个接口 ID 和一个 ipAddress,其中 redundancyTypeSINGLE_IP_INTERNALLY_REDUNDANT
  • 对于具有两个接口的外部 VPN 网关,或者两个外部 VPN 网关(各自具有一个接口),请使用 TWO_IPS_REDUNDANCY 示例。
  • 对于一个或多个具有四个外部 VPN 接口的外部 VPN 网关;例如,Amazon Web Services (AWS),请使用下面的示例,但指定 4 个接口 ID 实例和 ipAddress,且 redundancyTypeFOUR_IPS_REDUNDANCY

     POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/externalVpnGateways
     {
       "name": "my-peer-gateway",
       "interfaces": [
         {
           "id": 0,
           "ipAddress": "192.0.2.1"
         },
         {
           "id": 1,
           "ipAddress": "192.0.2.2"
         }
       ],
       "redundancyType": "TWO_IPS_REDUNDANCY"
     }
    

创建 Cloud Router 路由器

控制台

Cloud Router 路由器下,创建指定以下选项的 Cloud Router 路由器(如果尚未创建)。您可以使用现有的 Cloud Router 路由器,只要该路由器未用于 Cloud NAT。

  1. 要创建新的 Cloud Router 路由器,请指定以下内容:

    • 名称
    • 可选的说明
    • 新路由器的 Google ASN

    您可以使用未在网络中其他位置使用的任何专用 ASN(645126553442000000004294967294)。Google ASN 用于同一个 Cloud Router 路由器上的所有 BGP 会话,且以后不能更改 ASN。

  2. 如需创建新路由器,请点击创建

gcloud

您可以使用现有的 Cloud Router 路由器,只要该路由器未用于 Cloud NAT。否则,请创建其他 Cloud Router 路由器。

要创建 Cloud Router 路由器,请运行以下命令:

gcloud compute routers create ROUTER_NAME \
    --region=REGION \
    --network=NETWORK \
    --asn=GOOGLE_ASN

请替换以下内容:

  • ROUTER_NAME:Cloud VPN 网关所在区域中的 Cloud Router 路由器的名称
  • REGION:您在其中创建网关和隧道的 Google Cloud 区域
  • NETWORK:您的 VPC 网络的名称
  • GOOGLE_ASN:您尚未在对等网络中使用的任何专用 ASN(645126553442000000004294967294);Google ASN 将用于同一个 Cloud Router 路由器上的所有 BGP 会话,且以后无法更改

您创建的路由器如以下示例输出所示:

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
NAME       REGION        NETWORK
router-a   us-central1   network-a

API

您可以使用现有的 Cloud Router 路由器,只要该路由器未用于 Cloud NAT。否则,请创建其他 Cloud Router 路由器。

如需创建 Cloud Router 路由器,请使用 routers.insert 方法发出 POST 请求:

 POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers
 {
   "name": "router-a",
   "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/network-a"
 }

创建 VPN 隧道

控制台

如果您配置了具有一个接口的对等 VPN 网关资源,请在创建 VPN 页面上的单一 VPN 隧道对话框中配置单个隧道。如要享受 SLA 承诺的 99.99% 的可用性,您必须创建第二个隧道。

如果您配置了具有两个或四个接口的对等 VPN 网关资源,请在创建 VPN 页面底部配置相关对话框。

如需创建 VPN 隧道,请按以下步骤操作:

  1. 如果适用,请在关联的 Cloud VPN 网关接口下,选择要与此隧道的对等 VPN 网关接口关联的高可用性 VPN 接口和 IP 地址组合。
  2. 关联的对等 VPN 网关接口下,选择要与此隧道以及高可用性 VPN 接口关联的对等 VPN 网关接口和 IP 地址组合。此接口必须与您的实际对等路由器上的接口匹配。
    1. 指定隧道的名称
    2. 指定可选的说明
    3. 指定 IKE 版本。如果您的对等路由器支持默认设置 IKE v2,则建议使用。如需允许 IPv6 流量,您必须选择 IKEv2。
    4. 使用预共享密钥(共享密钥)指定 IKE 预共享密钥,该密钥必须与您在对等网关上创建的合作伙伴隧道的预共享密钥相对应。如果您尚未在对等 VPN 网关上配置预共享密钥并希望生成预共享密钥,请点击生成并复制。请确保将预共享密钥记录在安全位置,因为在创建 VPN 隧道后将无法检索该密钥。
    5. 点击完成
    6. 创建 VPN 页面上,为其余的隧道对话框重复隧道创建步骤。
  3. 配置完所有隧道后,点击创建并继续

gcloud

创建两个 VPN 隧道,分别用于高可用性 VPN 网关上的每个接口。 创建 VPN 隧道时,请将 VPN 隧道的对等端指定为您之前创建的外部 VPN 网关。使用以下两个选项之一配置隧道,具体取决于外部 VPN 网关的冗余类型。

选项 1:如果外部 VPN 网关是两个单独的对等 VPN 网关设备或具有两个 IP 地址的单个设备

  • 在这种情况下,一个 VPN 隧道需要连接到外部 VPN 网关的 interface 0,另一个 VPN 隧道需要连接到外部 VPN 网关的 interface 1

    gcloud compute vpn-tunnels create TUNNEL_NAME_IF0 \
       --peer-external-gateway=PEER_GW_NAME \
       --peer-external-gateway-interface=PEER_EXT_GW_IF0 \
       --region=REGION \
       --ike-version=IKE_VERS \
       --shared-secret=SHARED_SECRET \
       --router=ROUTER_NAME \
       --vpn-gateway=GW_NAME \
       --interface=INT_NUM_0
    
    gcloud compute vpn-tunnels create TUNNEL_NAME_IF1 \
       --peer-external-gateway=PEER_GW_NAME \
       --peer-external-gateway-interface=PEER_EXT_GW_IF1 \
       --region=REGION \
       --ike-version=IKE_VERS \
       --shared-secret=SHARED_SECRET \
       --router=ROUTER_NAME \
       --vpn-gateway=GW_NAME \
       --interface=INT_NUM_1
    

    请替换以下内容:

    • TUNNEL_NAME_IF0TUNNEL_NAME_IF1:隧道的名称;通过添加网关接口名称来为隧道命名有助于以后识别隧道
    • PEER_GW_NAME:之前创建的外部对等网关的名称
    • PEER_EXT_GW_IF0PEER_EXT_GW_IF1:之前在外部对等网关上配置的接口号
    • IKE_VERS1 用于 IKEv1 或 2 用于 IKEv2;如果可能,对于 IKE 版本,请使用 IKEv2。如果您的对等网关需要 IKEv1,请将 --ike-version 2 替换为 --ike-version 1。如需允许 IPv6 流量,您必须指定 IKEv2。
    • SHARED_SECRET:您的预共享密钥(共享密钥),必须与您在对等网关上创建的合作伙伴隧道的预共享密钥相对应;如需查看建议,请参阅生成强预共享密钥
    • GW_NAME:高可用性 VPN 网关的名称
    • INT_NUM_0:您之前创建的高可用性 VPN 网关上第一个接口的编号 0
    • INT_NUM_1:您之前创建的高可用性 VPN 网关上第二个接口的编号 1
    • 可选:--vpn-gateway-region 是运行高可用性 VPN 网关的区域。其值应与 --region 相同。如果未指定,则系统会自动设置此选项。该选项会替换此命令调用中的默认区域属性值。

    命令输出如以下示例所示:

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-0].
    NAME                       REGION        GATEWAY       VPN_INTERFACE   PEER_GATEWAY  PEER_INTERFACE
    tunnel-a-to-on-prem-if-0   us-central1   ha-vpn-gw-a   0               peer-gw       0
    
    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-1].
    NAME                       REGION        GATEWAY       VPN_INTERFACE   PEER_GATEWAY  PEER_INTERFACE
    tunnel-a-to-on-prem-if-1   us-central1   ha-vpn-gw-a   1               peer-gw       1
    

选项 2:如果外部 VPN 网关是具有单个外部 IP 地址的单个对等 VPN 网关

  • 在这种情况下,两个 VPN 隧道都需要连接到外部 VPN 网关的 interface 0

    gcloud compute vpn-tunnels create TUNNEL_NAME_IF0 \
       --peer-external-gateway=PEER_GW_NAME \
       --peer-external-gateway-interface=PEER_EXT_GW_IF0 \
       --region=REGION \
       --ike-version=IKE_VERS \
       --shared-secret=SHARED_SECRET \
       --router=ROUTER_NAME \
       --vpn-gateway=GW_NAME \
       --interface=INT_NUM_0
    
    gcloud compute vpn-tunnels create TUNNEL_NAME_IF1 \
       --peer-external-gateway=PEER_GW_NAME \
       --peer-external-gateway-interface=PEER_EXT_GW_IF0 \
       --region=REGION \
       --ike-version=IKE_VERS \
       --shared-secret=SHARED_SECRET \
       --router=ROUTER_NAME \
       --vpn-gateway=GW_NAME \
       --interface=INT_NUM_1
    

    请替换以下内容:

    • TUNNEL_NAME_IF0TUNNEL_NAME_IF1:隧道的名称;通过添加网关接口名称来为隧道命名有助于以后识别隧道
    • PEER_GW_NAME:之前创建的外部对等网关的名称
    • PEER_EXT_GW_IF0:之前在外部对等网关上配置的接口号
    • 可选:--vpn-gateway-region 是运行高可用性 VPN 网关的区域。其值应与 --region 相同。如果未指定,则系统会自动设置此选项。该选项会替换此命令调用中的默认区域属性值。
    • IKE_VERS:IKEv1 为 1 或 IKEv2 为 2。如果可能,对于 IKE 版本,请使用 IKEv2。如果您的对等网关需要 IKEv1,请将 --ike-version 2 替换为 --ike-version 1。如需允许 IPv6 流量,您必须指定 IKEv2。
    • SHARED_SECRET:您的预共享密钥(共享密钥),必须与您在对等网关上创建的合作伙伴隧道的预共享密钥相对应;如需查看建议,请参阅生成强预共享密钥
    • INT_NUM_0:您之前创建的高可用性 VPN 网关上第一个接口的编号 0
    • INT_NUM_1:您之前创建的高可用性 VPN 网关上第二个接口的编号 1

    命令输出如以下示例所示:

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-0].
    NAME                       REGION       GATEWAY        VPN_INTERFACE   PEER_GATEWAY   PEER_INTERFACE
    tunnel-a-to-on-prem-if-0   us-central1  ha-vpn-gw-a    0               peer-gw        0
    
    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-1].
    NAME                       REGION       GATEWAY        VPN_INTERFACE   PEER_GATEWAY   PEER_INTERFACE
    tunnel-a-to-on-prem-if-1   us-central1  ha-vpn-gw-a    1               peer-gw        0
    

API

如需创建两个 VPN 隧道,分别用于高可用性 VPN 网关上的每个接口,请使用 vpnTunnels.insert 方法发出 POST 请求。为获得 99.99% 的 SLA 正常运行时间承诺,您必须在高可用性 VPN 网关的每个接口上创建隧道。

  1. 如需创建第一个隧道,请运行以下命令:

       POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnTunnels
       {
         "name": "ha-vpn-gw-a-tunnel-0",
         "ikeVersion": 2,
         "peerExternalGateway": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/externalVpnGateways/my-peer-gateway",
         "peerExternalGatewayInterface": 0,
         "router": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/router-a",
         "sharedSecret": "SHARED_SECRET",
         "vpnGateway": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnGateways/ha-vpn-gw-a",
         "vpnGatewayInterface": 0
       }
    

    如果您计划在与此隧道关联的 BGP 会话中启用 IPv6,则必须为 ikeVersion 指定 2

  2. 如需创建第二个隧道,请重复此命令,但更改以下参数:

    • name
    • peerExternalGatewayInterface
    • sharedSecretsharedSecretHash(如果需要)
    • vpnGatewayInterface:更改为其他高可用性 VPN 网关接口的值 - 在此示例中,请将此值更改为 1

创建 BGP 会话

对于每个高可用性 VPN 隧道,您可以创建 IPv4 BGP 会话和/或 IPv6 BGP 会话。

下表列出了高可用性 VPN 栈和 VPC 网络流量的 BGP 会话类型。如需查看具体说明,请选择任何 BGP 会话类型。

BGP 会话类型 高可用性 VPN 网关 VPC 网络类型 是否允许多协议 BGP (MP-BGP)?
IPv4 BGP 会话 仅限 IPv4 或双栈 仅限 IPv4 或双栈
IPv6 BGP 会话 双栈 双栈
IPv4 和 IPv6 BGP 会话 双栈 双栈

如需在同一隧道中同时设置 IPv4 和 IPv6 BGP 会话,或在高可用性 VPN 隧道的 BGP 会话中启用 MP-BGP,请使用双栈高可用性 VPN 网关。但是,如果您在同一高可用性 VPN 隧道中设置了 IPv4 BGP 会话和 IPv6 BGP 会话,则无法在任一会话中启用 MP-BGP。

IPv4 BGP 会话

控制台

如要创建 BGP 会话,请按照以下步骤操作:

  1. 点击配置 BGP 会话
  2. 创建 BGP 会话页面上,完成以下步骤:
    1. BGP 会话类型字段中,选择 IPv4 BGP 会话
    2. 名称字段中,输入 BGP 会话的名称。
    3. 对等 ASN 字段中,输入为对等 VPN 网关配置的对等 ASN。
    4. 可选:在通告路由的优先级 (MED) 字段中,输入向此 BGP 对等方通告的路由的优先级。
    5. 可选:如需启用 IPv6 路由交换,请点击启用 IPv6 流量切换开关。
  3. 分配 BGP IPv4 地址字段中,选择自动手动。如果您选择手动,请执行以下操作:1. 在 Cloud Router BGP IPv4 地址字段中,输入 Cloud Router BGP IPv4 地址。1. 在 BGP 对等 IPv4 地址字段中,输入 BGP 对等方的 IPv4 地址。IPv4 地址必须满足以下要求:* 每个 IPv4 地址必须属于 169.254.0.0/16 地址范围内的同一 /30 子网。* 每个 IPv4 地址是 /30 子网的第一个或第二个主机。该子网的第一个和最后一个 IP 地址是为网络和广播地址预留的。* BGP 会话的每个 IPv4 地址范围在 VPC 网络所有区域中的所有 Cloud Router 路由器之间必须唯一。

    如果您选择自动,Google Cloud 会自动为 BGP 会话选择 IPv4 地址。

    1. 可选:如果您在上一步中启用了 IPv6 路由交换,则在分配 BGP IPv6 下一个跃点字段中,选择自动手动。如果您选择手动,请执行以下操作:1. 在 Cloud Router BGP IPv6 下一个跃点字段中,输入一个 2600:2d00:0:2::/63 地址范围内的 IPv6 地址。此 IP 地址是 Cloud Router 路由器通告的 IPv6 路由的下一个跃点地址。1. 在对等 BGP IPv6 下一个跃点字段中,输入一个 2600:2d00:0:2::/63 地址范围内的 IPv6 地址。此 IP 地址是 Cloud Router 路由器从 BGP 对等方获知的 IPv6 路由的下一个跃点地址。
      1. 可选:展开高级选项部分。
      2. 如需启用 BGP 对等方,请选择启用。如果启用,系统会使用路由信息建立对等连接。如需了解详情,请参阅建立 BGP 会话
      3. 如需启用 MD5 身份验证,请选择启用。如果启用,则系统会使用 MD5 身份验证对 BGP 会话进行身份验证。如需了解详情,请参阅使用 MD5 身份验证。或者,您也可以选择稍后启用 MD5 身份验证。
      4. 如需将出站路由添加到 BGP 会话,请在所有自定义已知路由的优先级字段中,输入自定义已知路由的优先级。如需了解详情,请参阅自定义已知路由。1. 点击保存并继续
  4. 针对网关中配置的其余隧道重复上述步骤。对于每个隧道,请使用不同的 Cloud Router BGP IP 地址和 BGP 对等 IP 地址。

  5. 点击保存 BGP 配置

gcloud

如要创建 BGP 会话,请按照以下步骤操作:

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

  • ROUTER_INTERFACE_NAME_0ROUTER_INTERFACE_NAME_1:Cloud Router 路由器接口的名称;使用与之前配置的隧道名称相关的名称会很有帮助
  • TUNNEL_NAME_0TUNNEL_NAME_1:与您配置的高可用性 VPN 网关接口关联的隧道
  • IP_VERSION:指定 IPV4 或不指定。如果您未指定此项,则默认设置为 IPV4
  • IP_PREFIXESCUSTOM_ROUTE_PRIORITY:可让您为 BGP 会话手动指定已知路由的值;如需详细了解此功能,请参阅自定义已知路由
  • AUTHENTICATION_KEY:用于 MD5 身份验证的密钥。如需详细了解此可选功能,请参阅使用 MD5 身份验证

为 BGP 会话分配 IPv4 地址

选择自动或手动配置方法来为 BGP 配置地址。这些命令不会为 BGP 启用 IPv6。

如果要启用 IPv6,请运行分配 IPv6 下一个跃点地址中列出的命令。

自动

如需让 Google Cloud 自动选择链路本地 BGP IPv4 地址,请完成以下步骤。

对于第一个 VPN 隧道

  1. 将一个接口添加到 Cloud Router 路由器:

    gcloud compute routers add-interface ROUTER_NAME \
       --interface-name=ROUTER_INTERFACE_NAME_0 \
       --vpn-tunnel=TUNNEL_NAME_0 \
       --region=REGION
    

    默认情况下,如果您未指定 IP 版本,则该命令会将 IPv4 地址分配给该接口。

    命令输出如以下示例所示:

    Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
    
  2. 将 BGP 对等方配置添加到第一个隧道的接口;将 PEER_NAME_0 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为 BGP 对等方的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_0 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_0 \
       --region=REGION
    

    如果要为对等方指定自定义已知路由,请添加 --set-custom-learned-route-ranges 标志。您还可以选择使用 --custom-learned-route-priority 标志为路由设置介于 065535(含)之间的优先级值。每个 BGP 会话可以有一个优先级值,该值会应用于您为该会话配置的所有自定义已知路由。如需详细了解此功能,请参阅自定义已知路由

    例如,如需添加自定义已知路由并为路由设置优先级,请运行以下命令:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_0 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_0 \
       --region=REGION \
       --set-custom-learned-route-ranges=IP_PREFIXES \
       --custom-learned-route-priority=CUSTOM_ROUTE_PRIORITY
    

    如果要使用 MD5 身份验证,请添加 --md5-authentication-key 标志。使用此字段提供您的密钥:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_0 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_0 \
       --region=REGION \
       --md5-authentication-key=AUTHENTICATION_KEY
    

    命令输出如以下示例所示:

    Creating peer [bgp-peer-tunnel-a-to-on-prem-if-0] in router [router-a]...done.
    

对于第二个 VPN 隧道

  1. 将一个接口添加到 Cloud Router 路由器:

    gcloud compute routers add-interface ROUTER_NAME \
     --interface-name=ROUTER_INTERFACE_NAME_1 \
     --vpn-tunnel=TUNNEL_NAME_1 \
     --region=REGION
    
  2. 将 BGP 对等方配置添加到第二个隧道的接口;将 PEER_NAME_1 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_1 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_1 \
     --region=REGION
    

    如果您在第一个隧道上配置了自定义已知路由,则建议在第二个隧道上配置相同的路由。例如,您可以将第二个隧道配置为路由的备份,在这种情况下,请为路由授予较低的优先级(更大的数字)。如果要将两个隧道共同用作等价多路径 (ECMP) 路由的一部分,请为路由授予它们在第一个隧道上的优先级。无论是哪种情况,请使用如下所示的命令:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_1 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_1 \
       --region=REGION \
       --set-custom-learned-route-ranges=IP_PREFIXES \
       --custom-learned-route-priority=CUSTOM_ROUTE_PRIORITY
    

    如果要使用 MD5 身份验证,请使用 --md5-authentication-key 标志提供您的密钥:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_1 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_1 \
     --region=REGION \
     --md5-authentication-key=AUTHENTICATION_KEY
    

手动

如需手动分配与 Cloud Router 路由器接口和 BGP 对等方关联的 IPv4 BGP 地址,请完成以下步骤。

对于每个 VPN 隧道,请确定 169.254.0.0/16 地址范围内 /30 地址块中的一对链路本地 IPv4 地址(总共四个 /30 子网,每个高可用性 VPN 一个)。您指定的 IPv4 子网在 VPC 网络所有区域中的所有 Cloud Router 路由器之间必须唯一。

对于每个隧道,请将其中一个 BGP IPv4 地址分配给 Cloud Router 路由器,将另一个 BGP IPv4 地址分配给对等 VPN 网关。将对等 VPN 设备配置为使用对等 BGP IPv4 地址。

在以下命令中,替换以下选项:

  • GOOGLE_BGP_IP_0:Cloud VPN 网关 interface 0 上隧道的 Cloud Router 路由器接口的 BGP IPv4 地址;PEER_BGP_IP_0 表示其对等方的 BGP IPv4 地址
  • GOOGLE_BGP_IP_1:Cloud VPN 网关 interface 1 上隧道的 Cloud Router 路由器接口的 BGP IPv4 地址;PEER_BGP_IP_1 表示其对等方的 BGP IPv4 地址
  • MASK_LENGTH30;Cloud Router 路由器必须使用 169.254.0.0/16 IPv4 地址范围内的唯一 /30 子网

对于第一个 VPN 隧道

  1. 将一个接口添加到 Cloud Router 路由器;将 ROUTER_INTERFACE_NAME_0 替换为该接口的名称:

    gcloud compute routers add-interface ROUTER_NAME \
      --interface-name=ROUTER_INTERFACE_NAME_0 \
      --vpn-tunnel=TUNNEL_NAME_0 \
      --ip-address=GOOGLE_BGP_IP_0 \
      --mask-length 30 \
      --region=REGION
    

    命令输出如以下示例所示:

    Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
    
  2. 将 BGP 对等方配置添加到该接口;将 PEER_NAME_0 替换为对等方的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_0 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_0 \
     --peer-ip-address=PEER_BGP_IP_0 \
     --region=REGION
    

    如果要为对等方指定自定义已知路由,请添加 --set-custom-learned-route-ranges 标志。您还可以选择使用 --custom-learned-route-priority 标志为路由设置介于 065535(含)之间的优先级值。每个 BGP 会话可以有一个优先级值,该值会应用于您为该会话配置的所有自定义已知路由。如需详细了解此功能,请参阅自定义已知路由

    例如,如需添加自定义已知路由并为路由设置优先级,请运行以下命令:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_0 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_0 \
       --region=REGION \
       --set-custom-learned-route-ranges=IP_PREFIXES \
       --custom-learned-route-priority=CUSTOM_ROUTE_PRIORITY
    

    如果要使用 MD5 身份验证,请使用 --md5-authentication-key 标志提供您的密钥:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
      --peer-name=PEER_NAME_0 \
      --peer-asn=PEER_ASN \
      --interface=ROUTER_INTERFACE_NAME_0 \
      --peer-ip-address=PEER_BGP_IP_0 \
      --region=REGION \
      --md5-authentication-key=AUTHENTICATION_KEY
    

    命令输出如以下示例所示:

    Creating peer [bgp-peer-tunnel-a-to-on-prem-if-0] in router [router-a]...done.
    

对于第二个 VPN 隧道

  1. 将一个接口添加到 Cloud Router 路由器;将 ROUTER_INTERFACE_NAME_1 替换为该接口的名称:

    gcloud compute routers add-interface ROUTER_NAME \
     --interface-name=ROUTER_INTERFACE_NAME_1 \
     --vpn-tunnel=TUNNEL_NAME_1 \
     --ip-address=GOOGLE_BGP_IP_1 \
     --mask-length 30 \
     --region=REGION
    
  2. 将 BGP 对等方配置添加到该接口;将 PEER_NAME_1 替换为对等方的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_1 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_1 \
     --peer-ip-address=PEER_BGP_IP_1 \
     --region=REGION
    

    如果您在第一个隧道上配置了自定义已知路由,则建议在第二个隧道上指定相同的路由。例如,您可以将第二个隧道配置为路由的备份,在这种情况下,请为路由授予较低的优先级(更大的数字)。如果要将两个隧道共同用作等价多路径 (ECMP) 路由的一部分,请为路由授予它们在第一个隧道上的优先级。无论是哪种情况,请使用如下所示的命令:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_1 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_1 \
       --region=REGION \
       --set-custom-learned-route-ranges=IP_PREFIXES \
       --custom-learned-route-priority=PRIORITY
    

    可选:如需启用 MD5 身份验证,请使用 --md5-authentication-key 标志提供您的密钥:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
      --peer-name=PEER_NAME_1 \
      --peer-asn=PEER_ASN \
      --interface=ROUTER_INTERFACE_NAME_0 \
      --peer-ip-address=PEER_BGP_IP_0 \
      --region=REGION \
      --md5-authentication-key=AUTHENTICATION_KEY
    

分配 IPv6 下一个跃点地址

只有在您需要使用 MP-BGP 并同时交换 IPv4 和 IPv6 流量的 VPN 隧道时,才使用本部分中的命令。如果您不想通过此隧道路由 IPv6 流量,或者打算稍后向此隧道添加单个 IPv6 BGP 会话,则可以使用分配 IPv4 BGP 地址中列出的命令。

自动

如果您创建使用 MP-BGP 的 IPv4 BGP 会话,则 Google Cloud 可以自动为您分配 IPv6 下一个跃点地址。Google Cloud 会分配 2600:2d00:0:2::/63 IPv6 地址范围内未使用的地址。

此配置与您为 Cloud Router 路由器和 BGP 对等 IPv4 地址选择自动配置还是手动配置无关。以下命令使用自动配置。但是,您也可以使用分配 IPv4 BGP 地址中所述的 --ip-address--peer-ip-address 标志来分配 BGP IPv4 和 BGP 对等 IPv4 地址。

对于第一个 VPN 隧道

  1. 将一个接口添加到 Cloud Router 路由器:

    gcloud compute routers add-interface ROUTER_NAME \
       --interface-name=ROUTER_INTERFACE_NAME_0 \
       --vpn-tunnel=TUNNEL_NAME_0 \
       --region=REGION
    

    命令输出如以下示例所示:

    Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
    
  2. 将 BGP 对等方配置添加到第一个隧道的接口;将 PEER_NAME_0 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_0 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_0 \
       --region=REGION \
       --enable-ipv6
    

    通过指定 --enable-ipv6 标志,您可以在此 IPv4 BGP 会话中启用 IPv6 路由交换,这是分配 IPv6 下一个跃点地址所必需的。您稍后可以停用 IPv6 路由交换。如需了解详情,请参阅在 IPv4 或 IPv6 会话中配置多协议 BGP

    命令输出如以下示例所示:

    Creating peer [bgp-peer-tunnel-a-to-on-prem-if-0] in router [router-a]...done.
    

对于第二个 VPN 隧道

  1. 将第二个接口添加到 Cloud Router 路由器:

    gcloud compute routers add-interface ROUTER_NAME \
     --interface-name=ROUTER_INTERFACE_NAME_1 \
     --vpn-tunnel=TUNNEL_NAME_1 \
     --region=REGION
    
  2. 将 BGP 对等方配置添加到第二个隧道的接口;将 PEER_NAME_1 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_1 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_1 \
     --region=REGION \
     --enable-ipv6
    

手动

创建使用 MP-BGP 的 IPv4 BGP 会话时,您可以手动为 Cloud Router 路由器和 BGP 对等方配置 IPv6 下一个跃点地址。

此配置与您选择 Cloud Router 路由器和 BGP 对等 IPv4 地址的自动配置还是手动配置无关。 如需查看有关如何手动配置这些地址的示例,请参阅分配 IPv4 BGP 地址

对于每个 VPN 隧道,请确定一对 IPv6 下一个跃点地址。您指定的 IPv6 下一个跃点地址在 VPC 网络所有区域中的所有 Cloud Router 路由器之间必须唯一,并且是从 Google 预先分配的内部 IPv6 地址范围 2600:2d00:0:2::/63 中选择的。

如需手动分配 BGP IPv6 下一个跃点地址,请完成以下步骤。

对于第一个 VPN 隧道

  1. 将一个接口添加到 Cloud Router 路由器:

    gcloud compute routers add-interface ROUTER_NAME \
       --interface-name=ROUTER_INTERFACE_NAME_0 \
       --vpn-tunnel=TUNNEL_NAME_0 \
       --region=REGION
    

    命令输出如以下示例所示:

    Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
    
  2. 将 BGP 对等方配置添加到第一个隧道的接口。

    gcloud compute routers add-bgp-peerROUTER_NAME \
      --peer-name=PEER_NAME_0 \
      --peer-asn=PEER_ASN \
      --interface=ROUTER_INTERFACE_NAME_0 \
      --region=REGION \
      --enable-ipv6 \
      --ipv6-nexthop-address=IPV6_NEXTHOP_ADDRESS \
      --peer-ipv6-nexthop-address=PEER_IPV6_NEXTHOP_ADDRESS
    

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

    • PEER_NAME_0 替换为对等 VPN 接口的名称
    • PEER_ASN 替换为为对等 VPN 网关配置的 ASN
    • IPV6_NEXTHOP_ADDRESS:Cloud Router 路由器通告的 IPv6 路由的下一个跃点地址;该地址必须在 2600:2d00:0:2::/63 IPv6 地址范围内
    • PEER_IPV6_NEXTHOP_ADDRESS:Cloud Router 路由器从 BGP 对等方获知的 IPv6 路由的下一个跃点地址;该地址必须在 2600:2d00:0:2::/63 IPv6 地址范围内

    命令输出如以下示例所示:

    Creating peer [bgp-peer-tunnel-a-to-on-prem-if-0] in router [router-a]...done.
    

    对于第二个 VPN 隧道

  3. 将第二个接口添加到 Cloud Router 路由器。

    gcloud compute routers add-interface ROUTER_NAME \
     --interface-name=ROUTER_INTERFACE_NAME_1 \
     --vpn-tunnel=TUNNEL_NAME_1 \
     --region=REGION
    
  4. 将 BGP 对等方配置添加到第二个隧道的第二个接口。

    gcloud compute routers add-bgp-peer ROUTER_NAME \
      --peer-name=PEER_NAME_1 \
      --peer-asn=PEER_ASN \
      --interface=ROUTER_INTERFACE_NAME_1 \
      --region=REGION \
      --enable-ipv6 \
      --ipv6-nexthop-address=IPV6_NEXTHOP_ADDRESS \
      --peer-ipv6-nexthop-address=PEER_IPV6_NEXTHOP_ADDRESS
    

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

    • PEER_NAME_1 替换为对等 VPN 接口的名称
    • PEER_ASN 替换为为对等 VPN 网关配置的 ASN
    • IPV6_NEXTHOP_ADDRESS:Cloud Router 路由器通告的 IPv6 路由的下一个跃点地址
    • PEER_IPV6_NEXTHOP_ADDRESS:Cloud Router 路由器从 BGP 对等方获知的 IPv6 路由的下一个跃点地址

API

如要创建 BGP 会话,请按照以下步骤操作:

  1. 如需创建 Cloud Router 路由器接口,请发出以下请求之一:

    PATCH 请求仅会更新您添加的参数,而 UPDATE 请求会更新 Cloud Router 路由器的所有参数。

    每个 IPv4 BGP 会话的每个 BGP 地址范围在 VPC 网络所有区域中的所有 Cloud Router 路由器之间必须唯一。

    对于第二个高可用性 VPN 网关上的每个 VPN 隧道,请重复此步骤和命令。

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "interfaces": [
        {
          "name": "if-tunnel-a-to-on-prem-if-0",
          "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0",
          "ipRange": "169.254.0.1/30"
          }
        ]
    }
    
  2. 如需将 BGP 对等方配置添加到该接口,请发出以下请求之一:

    对另一个 VPN 隧道重复此命令,但更改除 namepeerAsn 以外的所有选项。

    例如:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgpPeers": [
      {
        "interfaceName": "if-tunnel-a-to-on-prem-if-0",
        "ipAddress": "169.254.0.1",
        "name": "bgp-peer-tunnel-a-to-on-prem-if-0",
        "peerAsn": 65002,
        "peerIpAddress": "169.254.0.2",
        "advertiseMode": "DEFAULT"
        }
      ]
    }
    

    以下示例包含一条命令,用于添加启用了 IPv6 路由交换并手动配置了 IPv6 下一个跃点地址的 BGP 对等方。如果您省略 ipv6NexthopAddresspeerIpv6NexthopAddress,则系统会自动分配 IPv6 下一个跃点地址。

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgpPeers": [
      {
        "interfaceName": "if-tunnel-a-to-on-prem-if-0",
        "ipAddress": "169.254.0.1",
        "name": "bgp-peer-tunnel-a-to-on-prem-if-0",
        "peerAsn": 65002,
        "peerIpAddress": "169.254.0.2",
        "advertiseMode": "DEFAULT",
        "enableIpv6": true,
        "ipv6NexthopAddress: "2600:2d00:0:2::1"
        "peerIpv6NexthopAddress: "2600:2d00:0:2::2"
        }
      ]
    }
    

    如果要为对等方指定自定义已知路由,请为路由定义 IP 前缀。您还可以选择为路由设置介于 065535(含)之间的优先级值。每个 BGP 会话可以有一个优先级值,该值会应用于您为该会话配置的所有自定义已知路由。如需详细了解此功能,请参阅自定义已知路由

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgpPeers": [
      {
        "interfaceName": "if-tunnel-a-to-on-prem-if-0",
        "ipAddress": "169.254.0.1",
        "name": "bgp-peer-tunnel-a-to-on-prem-if-0",
        "peerAsn": 65002,
        "peerIpAddress": "169.254.0.2",
        "advertiseMode": "DEFAULT",
        "enableIpv6": true,
        "ipv6NexthopAddress": "2600:2d00:0:2::1",
        "peerIpv6NexthopAddress": "2600:2d00:0:2::2",
        "customLearnedRoutePriority": 200,
        "customLearnedIpRanges": [
            {
              "range": "1.2.3.4"
            },
            {
              "range": "6.7.0.0/16"
            },
            {
              "range": "2001:db8:abcd:12::/64"
            }
          ]
          }
        ]
      }
    

    如需将会话配置为使用 MD5 身份验证,请通过添加密钥和密钥名称在请求中添加身份验证密钥。然后,在创建 BGP 对等互连会话时,通过密钥名称引用此密钥。

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "md5AuthenticationKeys": [
        {
        "name": "bgppeer-1-key",
        "key": "secret_key_value"
        }
        ],
    }
    {
      "bgpPeers": [
      {
        "interfaceName": "if-tunnel-a-to-on-prem-if-0",
        "ipAddress": "169.254.0.1",
        "name": "bgp-peer-tunnel-a-to-on-prem-if-0",
        "peerAsn": 65002,
        "peerIpAddress": "169.254.0.2",
        "advertiseMode": "DEFAULT",
        "md5AuthenticationKeyName": "bgppeer-1-key"
        }
      ]
    }
    

IPv6 BGP 会话

控制台

如要创建 BGP 会话,请按照以下步骤操作:

  1. 点击配置 BGP 会话
  2. 创建 BGP 会话页面上,完成以下步骤:

    1. BGP 会话类型字段中,选择 IPv6 BGP 会话
    2. 名称字段中,输入 BGP 会话的名称。
    3. 对等 ASN 字段中,输入为对等 VPN 网关配置的对等 ASN。
    4. 可选:在通告路由的优先级 (MED) 字段中,输入向此 BGP 对等方通告的路由的优先级。
    5. 可选:如需启用 IPv4 路由交换,请点击启用 IPv4 流量切换开关。
    6. 分配 BGP IPv6 地址字段中,选择自动手动。如果您选择手动,请执行以下操作:
      1. Cloud Router BGP IPv6 地址字段中,输入 Cloud Router BGP IPv6 地址。
      2. BGP 对等 IPv6 地址字段中,输入 BGP 对等方的 IPv6 地址。IPv6 地址必须满足以下要求:
        • 每个地址必须是 fdff:1::/64 地址范围内掩码长度为 /64 的唯一本地地址 (ULA)。例如 fdff:1::1
        • 每个地址在 VPC 网络所有区域中的所有 Cloud Router 路由器之间必须唯一。

    如果您选择自动,Google Cloud 会自动为 BGP 会话选择 IPv6 地址。

    1. 可选:如果您在上一步中启用了 IPv4 路由交换,则在分配 BGP IPv4 下一个跃点字段中,选择自动手动。如果您选择手动,请执行以下操作:1. 在 Cloud Router BGP IPv4 下一个跃点字段中,输入一个 169.254.0.0/16 地址范围内的 IPv4 地址。此 IP 地址是 Cloud Router 路由器通告的 IPv4 路由的下一个跃点地址。1. 在对等 BGP IPv4 下一个跃点字段中,输入一个 169.254.0.0/16 地址范围内的 IP 地址。此 IP 地址是 Cloud Router 路由器从 BGP 对等方获知的 IPv4 路由的下一个跃点地址。
      1. 可选:展开高级选项部分。
      2. 如需启用 BGP 对等方,请选择启用。如果启用,系统会使用路由信息建立对等连接。如需了解详情,请参阅建立 BGP 会话
      3. 如需添加 MD5 身份验证,请选择启用。如果启用,您可以使用 MD5 身份验证对 Cloud Router 路由器与其对等方之间的 BGP 会话进行身份验证。如需了解详情,请参阅使用 MD5 身份验证。或者,您也可以选择稍后启用 MD5 身份验证。
      4. 如需将出站路由添加到 BGP 会话,请在所有自定义已知路由的优先级字段中,输入自定义已知路由的优先级。如需了解详情,请参阅自定义已知路由。1. 点击保存并继续
  3. 针对网关中配置的其余隧道重复上述步骤。对于每个隧道,请使用不同的 Cloud Router BGP IP 地址和 BGP 对等 IP 地址。

  4. 点击保存 BGP 配置

gcloud

如要创建 BGP 会话,请按照以下步骤操作:

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

  • ROUTER_INTERFACE_NAME_0ROUTER_INTERFACE_NAME_1:Cloud Router 路由器接口的名称;使用与之前配置的隧道名称相关的名称会很有帮助
  • TUNNEL_NAME_0TUNNEL_NAME_1:与您配置的高可用性 VPN 网关接口关联的隧道
  • IP_VERSIONIPV6。仅当您希望 Google Cloud 自动为此接口分配 IPv6 地址时,此参数才是必需的。如果您要手动为此接口分配 IPv6 地址,则可以省略此标志。

  • IP_PREFIXESCUSTOM_ROUTE_PRIORITY:可让您为 BGP 会话手动指定已知路由的值;如需详细了解此功能,请参阅自定义已知路由

  • AUTHENTICATION_KEY:用于 MD5 身份验证的密钥。如需详细了解此可选功能,请参阅使用 MD5 身份验证

可选:分配 BGP 标识符范围

当您将第一个接口添加到 Cloud Router 路由器时,系统会自动为该 Cloud Router 路由器分配 BGP 标识符范围。如果您希望为 Cloud Router 路由器定义自己的 BGP 标识符范围,则可以创建自己的范围。您也可以稍后修改此范围。如需了解详情,请参阅为 Cloud Router 路由器配置 BGP 标识符范围

分配 IPv6 BGP 地址

以下过程会创建具有自动配置或手动配置的 BGP IPv6 和 BGP 对等 IPv6 地址的 IPv6 BGP 会话。

如果您要将 IPv6 BGP 与 MP-BGP 搭配使用,请运行分配 IPv4 下一个跃点地址中列出的命令。

自动

如需让 Google Cloud 自动为 BGP 会话选择 IPv6 地址,请完成以下步骤。

对于第一个 VPN 隧道

  1. 将一个接口添加到 Cloud Router 路由器:

    gcloud compute routers add-interface ROUTER_NAME \
       --interface-name=ROUTER_INTERFACE_NAME_0 \
       --vpn-tunnel=TUNNEL_NAME_0 \
       --region=REGION \
       --ip-version=IPV6
    

    命令输出如以下示例所示:

    Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
    
  2. 将 BGP 对等方配置添加到第一个隧道的接口;将 PEER_NAME_0 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_0 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_0 \
       --region=REGION
    

    如果要为对等方指定自定义已知路由,请添加 --set-custom-learned-route-ranges 标志。您还可以选择使用 --custom-learned-route-priority 标志为路由设置介于 065535(含)之间的优先级值。每个 BGP 会话可以有一个优先级值,该值会应用于您为该会话配置的所有自定义已知路由。如需详细了解此功能,请参阅自定义已知路由

    例如,如需添加自定义已知路由并为路由设置优先级,请运行以下命令:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_0 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_0 \
       --region=REGION \
       --set-custom-learned-route-ranges=IP_PREFIXES \
       --custom-learned-route-priority=CUSTOM_ROUTE_PRIORITY
    

    可选:如果要启用 MD5 身份验证,请使用 --md5-authentication-key 标志提供您的密钥:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_0 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_0 \
       --region=REGION \
       --md5-authentication-key=AUTHENTICATION_KEY
    

    命令输出如以下示例所示:

    Creating peer [bgp-peer-tunnel-a-to-on-prem-if-0] in router [router-a]...done.
    

对于第二个 VPN 隧道

  1. 将第二个接口添加到 Cloud Router 路由器:

    gcloud compute routers add-interface ROUTER_NAME \
      --interface-name=ROUTER_INTERFACE_NAME_1 \
      --vpn-tunnel=TUNNEL_NAME_1 \
      --region=REGION \
      --ip-version=IPV6
    
  2. 将 BGP 对等方配置添加到第二个隧道的接口;将 PEER_NAME_1 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_1 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_1 \
     --region=REGION
    

    如果您在第一个隧道上配置了自定义已知路由,则建议在第二个隧道上配置相同的路由。例如,您可以将第二个隧道配置为路由的备份,在这种情况下,请为路由授予较低的优先级(更大的数字)。如果要将两个隧道共同用作等价多路径 (ECMP) 路由的一部分,请为路由授予它们在第一个隧道上的优先级。无论是哪种情况,请使用如下所示的命令:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_1 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_1 \
     --region=REGION \
     --set-custom-learned-route-ranges=IP_PREFIXES \
     --custom-learned-route-priority=CUSTOM_ROUTE_PRIORITY
    

    可选:如果要启用 MD5 身份验证,请使用 --md5-authentication-key 标志提供您的密钥:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_1 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_1 \
     --region=REGION \
     --md5-authentication-key=AUTHENTICATION_KEY
    

手动

如需手动将 IPv6 地址分配给与 Cloud Router 路由器接口和 BGP 对等方关联的 BGP 会话,请完成以下步骤。

对于每个 VPN 隧道,请根据您配置的 BGP 会话类型确定一对适合 BGP 会话的 IPv6 地址。

每个 IPv6 地址必须是 fdff:1::/64 IPv6 地址范围内掩码长度不超过 /126 的唯一本地地址 (ULA)。例如 fdff:1::1

每个 IPv6 地址在 VPC 网络所有区域中的所有 Cloud Router 路由器之间必须唯一。

对于每个隧道,请将其中一个 IPv6 地址分配给 Cloud Router 路由器,将另一个 IPv6 地址分配给对等 VPN 网关。将对等 VPN 设备配置为使用 BGP 会话的对等 IPv6 地址。

在以下命令中,替换以下选项:

  • GOOGLE_BGP_IPV6_0:Cloud VPN 网关 interface 0 上隧道的 Cloud Router 路由器接口的 IPv6 地址;PEER_BGP_IPV6_0 表示其 BGP 对等方的 IPv6 地址,必须与 IP 版本 GOOGLE_BGP_IPV6_0 匹配
  • GOOGLE_BGP_IPV6_1:Cloud VPN 网关 interface 1 上隧道的 Cloud Router 路由器接口的 IPv6 地址;PEER_BGP_IPV6_1 表示其 BGP 对等方的 IPv6 地址,必须与 IP 版本 GOOGLE_BGP_IPV6_1 匹配

对于第一个 VPN 隧道

  1. 将一个接口添加到 Cloud Router 路由器;将 ROUTER_INTERFACE_NAME_0 替换为该接口的名称:

    gcloud compute routers add-interface ROUTER_NAME \
     --interface-name=ROUTER_INTERFACE_NAME_0 \
     --vpn-tunnel=TUNNEL_NAME_0 \
     --ip-address=GOOGLE_BGP_IPV6_0 \
     --mask-length=MASK_LENGTH  \
     --region=REGION \
    

    MASK_LENGTH 替换为值 126 或更小的值。

    命令输出如以下示例所示:

    Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
    
  2. 将 BGP 对等方配置添加到该接口;将 PEER_NAME_0with a name for the peer, and replacePEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_0 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_0 \
     --peer-ip-address=PEER_BGP_IPV6_0 \
     --region=REGION
    

    如果要为对等方指定自定义已知路由,请添加 --set-custom-learned-route-ranges 标志。您还可以视需要使用 --custom-learned-route-priority 标志为路由设置一个介于 065535(含)之间的优先级值。每个 BGP 会话可以有一个优先级值,该值会应用于您为该会话配置的所有自定义已知路由。如需详细了解此功能,请参阅自定义已知路由

    例如,如需添加自定义已知路由并为路由设置优先级,请运行以下命令:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_0 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_0 \
     --region=REGION \
     --set-custom-learned-route-ranges=IPV6_PREFIXES \
     --custom-learned-route-priority=CUSTOM_ROUTE_PRIORITY
    

    可选:如果要启用 MD5 身份验证,请使用 --md5-authentication-key 标志提供您的密钥:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_0 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_0 \
     --peer-ip-address=PEER_BGP_IPV6_0 \
     --region=REGION \
     --md5-authentication-key=AUTHENTICATION_KEY
    

    命令输出如以下示例所示:

    Creating peer [bgp-peer-tunnel-a-to-on-prem-if-0] in router [router-a]...done.
    

对于第二个 VPN 隧道

  1. 将第二个接口添加到 Cloud Router 路由器;将 ROUTER_INTERFACE_NAME_1 替换为该接口的名称:

    gcloud compute routers add-interface ROUTER_NAME \
     --interface-name=ROUTER_INTERFACE_NAME_1 \
     --vpn-tunnel=TUNNEL_NAME_1 \
     --ip-address=GOOGLE_BGP_IPV6_1 \
     --mask-length=MASK_LENGTH \
     --region=REGION \
    

    MASK_LENGTH 替换为值 64 或更小的值。

  2. 将 BGP 对等方配置添加到该接口;将 PEER_NAME_1 替换为对等方的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_1 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_1 \
     --peer-ip-address=PEER_BGP_IPV6_1 \
     --region=REGION
    

    如果您在第一个隧道上配置了自定义已知路由,则建议在第二个隧道上指定相同的路由。例如,您可以将第二个隧道配置为路由的备份,在这种情况下,请为路由授予较低的优先级(更大的数字)。如果要将两个隧道共同用作等价多路径 (ECMP) 路由的一部分,请为路由授予它们在第一个隧道上的优先级。无论是哪种情况,请使用如下所示的命令:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_1 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_1 \
     --region=REGION \
     --set-custom-learned-route-ranges=IPV6_PREFIXES \
     --custom-learned-route-priority=PRIORITY
    

    可选:如果要启用 MD5 身份验证,请使用 --md5-authentication-key 标志提供您的密钥:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_1 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_1 \
     --peer-ip-address=PEER_BGP_IPV6_1 \
     --region=REGION \
     --md5-authentication-key=AUTHENTICATION_KEY
    

分配 IPv4 下一个跃点地址

只有在您需要使用 MP-BGP 的 VPN 隧道时,才使用本部分中的命令。借助 MP-BGP,您可以通过 IPv6 BGP 会话交换 IPv4 路由。

如果您不打算在隧道的 BGP 会话中使用 MP-BGP,请使用分配 IPv6 BGP 地址中列出的命令。

您可以选择自动或手动配置 BGP 对等方下一个跃点 IPv4 或 IPv6 地址。

自动

如果您创建使用 MP-BGP 的 IPv6 BGP 会话,则 Google Cloud 可以自动为您分配 IPv4 下一个跃点地址。Google Cloud 会分配 169.254.0.0/16 地址范围内未使用的地址。

此配置与您选择自动配置还是手动配置 Cloud Router 路由器和 BGP 对等 IPv6 地址无关。以下命令使用自动配置。但是,您也可以使用分配 IPv6 BGP IP 地址中所述的 --ip-address--peer-ip-address 标志为 Cloud Router 路由器接口和 BGP 对等方分配 IPv6 地址。

对于第一个 VPN 隧道

  1. 将一个接口添加到 Cloud Router 路由器:

    gcloud compute routers add-interface ROUTER_NAME \
      --interface-name=ROUTER_INTERFACE_NAME_0 \
      --vpn-tunnel=TUNNEL_NAME_0 \
      --region=REGION \
      --ip-version=IPV6
    

    命令输出如以下示例所示:

    Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
    
  2. 将 BGP 对等方配置添加到第一个隧道的接口;将 PEER_NAME_0 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_0 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_0 \
       --region=REGION \
       --enable-ipv4
    

    命令输出如以下示例所示:

    Creating peer [bgp-peer-tunnel-a-to-on-prem-if-0] in router [router-a]...done.
    

对于第二个 VPN 隧道

  1. 将第二个接口添加到 Cloud Router 路由器:

    gcloud compute routers add-interface ROUTER_NAME \
      --interface-name=ROUTER_INTERFACE_NAME_1 \
      --vpn-tunnel=TUNNEL_NAME_1 \
      --region=REGION \
      --ip-version=IPV6
    
  2. 将 BGP 对等方配置添加到第二个隧道的第二个接口;将 PEER_NAME_1 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_1 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_1 \
       --region=REGION \
       --enable-ipv4
    

手动

创建使用 MP-BGP 的 IPv6 BGP 会话时,您可以手动为 Cloud Router 路由器和 BGP 对等方配置 IPv4 下一个跃点地址。

此配置与您选择为 BGP 会话自动配置还是手动配置 Cloud Router 路由器和 IPv6 地址无关。如需查看有关如何手动配置这些地址的示例,请参阅分配 IPv6 BGP 地址

对于每个 VPN 隧道,请从链路本地 IPv4 地址范围 169.254.0.0/16 中选择一对 IPv4 下一个跃点地址。这些 IPv4 地址在 VPC 网络的所有 Cloud Router 路由器中必须唯一。

如需手动分配 BGP IPv4 下一个跃点地址,请完成以下步骤。

对于第一个 VPN 隧道

  1. 将一个接口添加到 Cloud Router 路由器。

    gcloud compute routers add-interface ROUTER_NAME \
      --interface-name=ROUTER_INTERFACE_NAME_0 \
      --vpn-tunnel=TUNNEL_NAME_0 \
      --region=REGION \
      --ip-version=IPV6
    

    命令输出如以下示例所示:

    Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
    
  2. 将 BGP 对等方配置添加到第一个隧道的接口。

    gcloud compute routers add-bgp-peerROUTER_NAME \
      --peer-name=PEER_NAME_0 \
      --peer-asn=PEER_ASN \
      --interface=ROUTER_INTERFACE_NAME_0 \
      --region=REGION \
      --enable-ipv4 \
      --ipv4-nexthop-address=IPV4_NEXTHOP_ADDRESS \
      --peer-ipv4-nexthop-address=PEER_IPV4_NEXTHOP_ADDRESS
    

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

    • PEER_NAME_0 替换为对等 VPN 接口的名称
    • PEER_ASN 替换为为对等 VPN 网关配置的 ASN
    • IPV4_NEXTHOP_ADDRESS:Cloud Router 路由器通告的 IPv4 路由的下一个跃点地址;该地址必须在 169.254.0.0/16 IPv4 地址范围内
    • PEER_IPV4_NEXTHOP_ADDRESS:Cloud Router 路由器从 BGP 对等方获知的 IPv4 路由的下一个跃点地址;该地址必须在 169.254.0.0/16 IPv4 地址范围内

    命令输出如以下示例所示:

    Creating peer [bgp-peer-tunnel-a-to-on-prem-if-0] in router [router-a]...done.
    

    对于第二个 VPN 隧道

  3. 将第二个接口添加到 Cloud Router 路由器。

    gcloud compute routers add-interface ROUTER_NAME \
      --interface-name=ROUTER_INTERFACE_NAME_1 \
      --vpn-tunnel=TUNNEL_NAME_1 \
      --region=REGION \
      --ip-version=IPV6
    
  4. 将 BGP 对等方配置添加到第二个隧道的接口。

    gcloud compute routers add-bgp-peerROUTER_NAME \
      --peer-name=PEER_NAME_1 \
      --peer-asn=PEER_ASN \
      --interface=ROUTER_INTERFACE_NAME_1 \
      --region=REGION \
      --enable-ipv4 \
      --ipv4-nexthop-address=IPV4_NEXTHOP_ADDRESS \
      --peer-ipv4-nexthop-address=PEER_IPV4_NEXTHOP_ADDRESS
    

    在以下命令中,替换以下选项:

    • PEER_NAME_1 替换为对等 VPN 接口的名称
    • PEER_ASN 替换为为对等 VPN 网关配置的 ASN
    • IPV4_NEXTHOP_ADDRESS:Cloud Router 路由器通告的 IPv4 路由的下一个跃点地址;该地址必须在 169.254.0.0/16 IPv4 地址范围内
    • PEER_IPV4_NEXTHOP_ADDRESS:Cloud Router 路由器从 BGP 对等方获知的 IPv4 路由的下一个跃点地址;该地址必须在 169.254.0.0/16 IPv4 地址范围内

API

如要创建 BGP 会话,请按照以下步骤操作:

  1. 如需创建 Cloud Router 路由器接口并为其分配 IPv6 地址,请使用 routers.patch 方法routers.update 方法发出 PATCHUPDATE 请求。PATCH 仅更新您包含的参数。UPDATE 会更新 Cloud Router 路由器的所有参数。

    以下示例会创建一个具有手动配置的 IPv6 地址的接口。

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "interfaces": [
        {
          "name": "if-tunnel-a-to-on-prem-if-0",
          "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0",
          "ipRange": "fdff:1::/112"
          }
        ]
    }
    

    每个 IPv6 BGP 会话的每个 BGP 地址范围在 VPC 网络所有区域中的所有 Cloud Router 路由器之间必须唯一。

    再举一例,以下命令会创建一个具有自动分配的 IPv6 地址的接口。

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "interfaces": [
        {
          "name": "if-tunnel-a-to-on-prem-if-0",
          "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0",
          "ipVersion": "IPV6"
          }
        ]
    }
    

    对高可用性 VPN 网关上的每个 VPN 隧道重复此步骤。

  2. 将 BGP 对等方配置添加到 VPN 隧道的 Cloud Router 路由器,使用 routers.patch 方法routers.update 方法发出 PATCHUPDATE 请求。对另一个 VPN 隧道重复此命令,但更改除 namepeerAsn 以外的所有选项。

    例如:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgpPeers": [
      {
        "interfaceName": "if-tunnel-a-to-on-prem-if-0",
        "ipAddress": "fdff:1::1",
        "name": "bgp-peer-tunnel-a-to-on-prem-if-0",
        "peerAsn": 65002,
        "peerIpAddress": "fdff:1::2",
        "advertiseMode": "DEFAULT"
        }
      ]
    }
    

    以下示例包含一条命令,用于为启用了 IPv4 路由交换并手动配置了 IPv4 下一个跃点地址的 IPv6 BGP 接口添加 BGP 对等方。如果您省略 ipv4NexthopAddresspeerIpv4NexthopAddress,则系统会自动分配 IPv4 下一个跃点地址。

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers//ROUTER_NAME
    {
      "bgpPeers": [
      {
        "interfaceName": "if-tunnel-a-to-on-prem-if-0",
        "ipAddress": "fdff:1::1",
        "name": "bgp-peer-tunnel-a-to-on-prem-if-0",
        "peerAsn": 65002,
        "peerIpAddress": "fdff:1::2",
        "advertiseMode": "DEFAULT",
        "enableIpv4": true,
        "ipv4NexthopAddress: "169.254.0.1",
        "peerIpv4NexthopAddress: "169.254.0.2"
        }
      ]
    }
    

    如果要为对等方指定自定义已知路由,请为路由定义 IP 前缀。您还可以选择为路由设置介于 065535(含)之间的优先级值。每个 BGP 会话可以有一个优先级值,该值会应用于您为该会话配置的所有自定义已知路由。如需了解详情,请参阅自定义已知路由

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgpPeers": [
      {
        "interfaceName": "if-tunnel-a-to-on-prem-if-0",
        "ipAddress": "fdff:1::1",
        "name": "bgp-peer-tunnel-a-to-on-prem-if-0",
        "peerAsn": 65002,
        "peerIpAddress": "fdff:1::2",
        "advertiseMode": "DEFAULT",
        "enableIpv4": true,
        "ipv4NexthopAddress: "169.254.0.1",
        "peerIpv4NexthopAddress: "169.254.0.2"
        "customLearnedRoutePriority": 200,
        "customLearnedIpRanges": [
            {
              "range": "1.2.3.4"
            },
            {
              "range": "6.7.0.0/16"
            },
            {
              "range": "2001:db8:abcd:12::/64"
            }
          ]
          }
        ]
    }
    

    如果要将会话配置为使用 MD5 身份验证,您的请求必须包含身份验证密钥,这意味着它必须同时提供密钥和密钥名称。创建 BGP 对等互连会话时,它还必须按名称引用密钥。例如:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "md5AuthenticationKeys": [
        {
        "name": "bgppeer-1-key",
        "key": "secret_key_value"
        }
        ],
    }
    {
      "bgpPeers": [
      {
        "interfaceName": "if-tunnel-a-to-on-prem-if-0",
        "ipAddress": "fdff:1::1",
        "name": "bgp-peer-tunnel-a-to-on-prem-if-0",
        "peerAsn": 65002,
        "peerIpAddress": "fdff:1::2",
        "advertiseMode": "DEFAULT",
        "md5AuthenticationKeyName": "bgppeer-1-key"
        }
      ]
    }
    

IPv4 BGP 和 IPv6 BGP 会话

按照以下步骤创建在同一高可用性 VPN 隧道中并行运行的 IPv4 BGP 会话和 IPv6 BGP 会话。

如需创建此配置,请向 Cloud Router 路由器添加两个 BGP 接口和两个 BGP 对等方,并将它们连接到同一 VPN 隧道。您无法在任一 BGP 会话上使用 MP-BGP。

控制台

如需同时创建 IPv4 和 IPv6 BGP 会话,请按照以下步骤操作:

  1. 点击配置 BGP 会话
  2. 创建 BGP 会话页面上,完成以下步骤:

    1. BGP 会话类型字段中,选择两者

    IPv4 BGP 会话

    1. 名称字段中,输入 BGP 会话的名称。
    2. 对等 ASN 字段中,输入为对等 VPN 网关配置的对等 ASN。
    3. 分配 BGP IPv4 地址字段中,选择自动手动。如果您选择手动,请执行以下操作:
    4. Cloud Router BGP IPv4 地址字段中,输入 Cloud Router BGP IPv4 地址。
    5. BGP 对等 IPv4 地址字段中,输入 BGP 对等方的 IPv4 地址。IPv4 地址必须满足以下要求:* 每个 IPv4 地址必须属于 169.254.0.0/16 地址范围内的同一 /30 子网。* 每个 IPv4 地址是 /30 子网的第一个或第二个主机。该子网的第一个和最后一个 IP 地址是为网络和广播地址预留的。* BGP 会话的每个 IPv4 地址范围在 VPC 网络所有区域中的所有 Cloud Router 路由器之间必须唯一。

    如果您选择自动,Google Cloud 会自动为您的 BGP 会话选择 IPv4 地址。

    如果您选择自动 IPv6 地址分配,则 Google Cloud 会自动为 BGP 会话选择 IPv6 地址。1. 可选:展开高级选项部分。1. 如需启用 BGP 对等方,请选择启用。如果启用,系统会使用路由信息建立对等连接。如需了解详情,请参阅建立 BGP 会话。1. 如需添加 MD5 身份验证,请选择启用。如果启用,您可以使用 MD5 身份验证对 Cloud Router 路由器与其对等方之间的 BGP 会话进行身份验证。如需了解详情,请参阅使用 MD5 身份验证。或者,您也可以选择稍后启用 MD5 身份验证。1. 如需将出站路由添加到 BGP 会话,请在所有自定义已知路由的优先级字段中,输入自定义已知路由的优先级。如需了解详情,请参阅自定义已知路由。1. 点击保存并继续

    IPv6 BGP 会话

    1. 名称字段中,输入 BGP 会话的名称。
    2. 对等 ASN 字段中,输入为对等 VPN 网关配置的对等 ASN。
    3. 可选:在通告路由的优先级 (MED) 字段中,输入向此 BGP 对等方通告的路由的优先级。
    4. 分配 BGP IPv6 地址字段中,选择自动手动。如果您选择手动,请执行以下操作:
    5. Cloud Router BGP IPv6 地址字段中,输入 Cloud Router BGP IPv6 地址。
    6. BGP 对等 IPv6 地址字段中,输入 BGP 对等方的 IPv6 地址。IPv4 地址必须满足以下要求:* 每个地址必须是 fdff:1::/64 地址范围内掩码长度为 /64 的唯一本地地址 (ULA)。例如,fdff:1::1。* 每个地址在 VPC 网络所有区域中的所有 Cloud Router 路由器之间必须唯一。

    如果您选择自动,Google Cloud 会自动为 BGP 会话选择 IPv6 地址。

    1. 可选:展开高级选项部分。
    2. 如需启用 BGP 对等方,请选择启用。如果启用,系统会使用路由信息建立对等连接。如需了解详情,请参阅建立 BGP 会话
    3. 如需启用 MD5 身份验证,请选择启用。如果启用,则系统会使用 MD5 身份验证对 Cloud Router 路由器与其对等方之间的 BGP 会话进行身份验证。如需了解详情,请参阅使用 MD5 身份验证。或者,您也可以选择稍后启用 MD5 身份验证。
    4. 如需将出站路由添加到 BGP 会话,请在所有自定义已知路由的优先级字段中,输入自定义已知路由的优先级。如需了解详情,请参阅自定义已知路由。1. 点击保存并继续
  3. 针对网关中配置的其余隧道重复上述步骤。对于每个隧道,请使用不同的 Cloud Router BGP IP 地址和 BGP 对等 IP 地址。

  4. 点击保存 BGP 配置

gcloud

如要创建 BGP 会话,请按照以下步骤操作:

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

  • ROUTER_INTERFACE_NAME_0_ipv4ROUTER_INTERFACE_NAME_0_ipv6:共享同一隧道的第一对 Cloud Router 路由器 BGP 接口的名称;使用与之前配置的隧道名称相关的名称会很有帮助
  • ROUTER_INTERFACE_NAME_1_ipv4ROUTER_INTERFACE_NAME_1_ipv6:第二组 Cloud Router 路由器 BGP 接口的名称
  • TUNNEL_NAME_0TUNNEL_NAME_1:与您配置的高可用性 VPN 网关接口关联的隧道
  • IP_PREFIXESCUSTOM_ROUTE_PRIORITY:可让您为 BGP 会话手动指定已知路由的值;如需详细了解此功能,请参阅自定义已知路由
  • AUTHENTICATION_KEY:用于 MD5 身份验证的密钥。如需详细了解此可选功能,请参阅使用 MD5 身份验证

    此外,您还可以选择自动或手动为 Cloud Router 路由器接口和 BGP 对等方配置 IPv4 和 IPv6 地址。

    可选:分配 BGP 标识符范围

    当您将具有 IPv6 地址的第一个接口添加到 Cloud Router 路由器时,系统会自动为该 Cloud Router 路由器分配 BGP 标识符范围。如果您希望为 Cloud Router 路由器定义自己的 BGP 标识符范围,则可以创建自己的范围。您也可以稍后修改此范围。如需了解详情,请参阅为 Cloud Router 路由器配置 BGP 标识符范围

自动

如需让 Google Cloud 自动选择 BGP 地址,请完成以下步骤。

对于第一个 VPN 隧道

  1. 将一个具有 IPv4 地址的接口添加到 Cloud Router 路由器。

    gcloud compute routers add-interface ROUTER_NAME \
       --interface-name=ROUTER_INTERFACE_NAME_0_ipv4 \
       --vpn-tunnel=TUNNEL_NAME_0 \
       --region=REGION
       --ip-version=IPV4
    

    命令输出如以下示例所示:

    Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
    
  2. 将具有 IPv6 地址的第二个接口添加到同一隧道。运行以下命令:

    gcloud compute routers add-interface ROUTER_NAME \
       --interface-name=ROUTER_INTERFACE_NAME_0_ipv6 \
       --vpn-tunnel=TUNNEL_NAME_0 \
       --region=REGION \
       --ip-version=IPV6
    

    命令输出如以下示例所示:

    Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
    
  3. 将 BGP 对等方配置添加到第一个隧道具有 IPv4 地址的第一个接口;将 PEER_NAME_0_ipv4 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_0_ipv4 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_0_ipv4 \
       --region=REGION
    
  4. 将 BGP 对等方配置添加到第一个隧道具有 IPv6 地址的第二个接口;将 PEER_NAME_0_ipv6 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_0_ipv6 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_0_ipv6 \
       --region=REGION
    

    在大多数情况下,PEER_ASN 是相同的,但可能会因本地网络拓扑而异。

对于第二个 VPN 隧道

  1. 将一个具有 IPv4 地址的接口添加到 Cloud Router 路由器:

    gcloud compute routers add-interface ROUTER_NAME \
     --interface-name=ROUTER_INTERFACE_NAME_1_ipv4 \
     --vpn-tunnel=TUNNEL_NAME_1 \
     --region=REGION
     --ip-version=IPV4
    
  2. 将一个具有 IPv6 地址的接口添加到同一隧道。运行以下命令:

    gcloud compute routers add-interface ROUTER_NAME \
     --interface-name=ROUTER_INTERFACE_NAME_1_ipv6 \
     --vpn-tunnel=TUNNEL_NAME_1 \
     --region=REGION \
     --ip-version=IPV6
    
  3. 将 BGP 对等方配置添加到第二个隧道具有 IPv4 地址的第一个接口;将 PEER_NAME_1_ipv4 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_1_ipv4 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_1_ipv4 \
     --region=REGION
    
  4. 将 BGP 对等方配置添加到第二个隧道具有 IPv6 地址的第二个接口;将 PEER_NAME_1_ipv6 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_1_ipv6 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_1_ipv6 \
       --region=REGION
    

    在大多数情况下,PEER_ASN 是相同的,但可能会因本地网络拓扑而异。

手动

如需手动分配与 Cloud Router 路由器接口和 BGP 对等方关联的 IPv4 和 IPv6 地址,请完成以下步骤。

对于每个 VPN 隧道,请根据您配置的 BGP 会话类型确定一对适当的 BGP 地址。您必须针对每种类型的会话共选择四个 IP 地址。

  • 对于 IPv4 BGP 会话,四个 IPv4 地址必须是 169.254.0.0/16 地址范围内 /30 地址块中的链路本地 IPv4 地址。例如,使用 169.254.0.1/30
  • 对于 IPv6 BGP 会话,四个 IPv6 地址必须是 fdff:1::/64 地址范围内掩码长度不超过 /126 的唯一本地地址 (ULA)。例如,使用 fdff:1::1

您指定的 BGP 地址在 VPC 网络所有区域中的所有 Cloud Router 路由器之间必须唯一。

对于每个隧道,请将 BGP IPv6 地址分配给 Cloud Router 路由器。将对等 VPN 设备配置为使用 BGP 对等 IPv6 地址。

在以下命令中,替换以下选项:

  • GOOGLE_BGP_IPV4_0:Cloud VPN 网关 interface 0 上隧道的 Cloud Router 路由器接口的 IPv4 地址;PEER_BGP_IPV4_0 表示其 BGP 对等方的 IPv4 地址,与 GOOGLE_BGP_IPV4_0 匹配
  • GOOGLE_BGP_IPV6_0:Cloud VPN 网关 interface 0 上隧道的 Cloud Router 路由器接口的 IPv6 地址;PEER_BGP_IPV6_0 表示其 BGP 对等方的 IPv6 地址,与 GOOGLE_BGP_IPV6_0 匹配
  • GOOGLE_BGP_IPV4_1:Cloud VPN 网关 interface 1 上隧道的 Cloud Router 路由器接口的 IPv4 地址;PEER_BGP_IPV4_1 表示其 BGP 对等方的 IPv4 地址,与 GOOGLE_BGP_IPV4_1 匹配
  • GOOGLE_BGP_IPV6_1:Cloud VPN 网关 interface 1 上隧道的 Cloud Router 路由器接口的 IPv6 地址;PEER_BGP_IPV6_1 表示其 BGP 对等方的 IPv6 地址,与 GOOGLE_BGP_IPV6_1 匹配

对于第一个 VPN 隧道

  1. 将一个具有 IPv4 地址的接口添加到 Cloud Router 路由器;将 ROUTER_INTERFACE_NAME_0_ipv4 替换为该接口的名称:

    gcloud compute routers add-interface ROUTER_NAME \
      --interface-name=ROUTER_INTERFACE_NAME_0_ipv4 \
      --vpn-tunnel=TUNNEL_NAME_0 \
      --ip-address=GOOGLE_BGP_IPV4_0 \
      --mask-length 30 \
      --region=REGION
    

    命令输出如以下示例所示:

    Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
    
  2. 将一个具有 IPv6 地址的接口添加到同一隧道;将 ROUTER_INTERFACE_NAME_0_ipv6 替换为该接口的名称:

    gcloud compute routers add-interface ROUTER_NAME \
      --interface-name=ROUTER_INTERFACE_NAME_0_ipv6 \
      --vpn-tunnel=TUNNEL_NAME_0 \
      --ip-address=GOOGLE_BGP_IPV6_0 \
      --mask-length=MASK_LENGTH  \
      --region=REGION \
    

    MASK_LENGTH 替换为值 64 或更小的值。

  3. 将 BGP 对等方配置添加到第一个隧道的第一个接口;将 PEER_NAME_0_ipv4 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_0_ipv4 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_0_ipv4 \
     --peer-ip-address=PEER_BGP_IPV4_0 \
     --region=REGION
    
  4. 将 BGP 对等方配置添加到第一个隧道的第二个接口;将 PEER_NAME_0_ipv6 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_0_ipv6 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_0_ipv6 \
       --peer-ip-address=PEER_BGP_IPV6_0 \
       --region=REGION
    

    在大多数情况下,PEER_ASN 是相同的,但可能会因本地网络拓扑而异。

对于第二个 VPN 隧道

  1. 将一个具有 IPv4 地址的接口添加到 Cloud Router 路由器;将 ROUTER_INTERFACE_NAME_1_ipv4 替换为该接口的名称:

    gcloud compute routers add-interface ROUTER_NAME \
     --interface-name=ROUTER_INTERFACE_NAME_1_ipv4 \
     --vpn-tunnel=TUNNEL_NAME_1 \
     --ip-address=GOOGLE_BGP_IPV4_1 \
     --mask-length MASK_LENGTH \
     --region=REGION
    
  2. 将一个具有 IPv6 地址的接口添加到同一隧道;将 ROUTER_INTERFACE_NAME_1_ipv6 替换为该接口的名称:

    gcloud compute routers add-interface ROUTER_NAME \
     --interface-name=ROUTER_INTERFACE_NAME_1_ipv6 \
     --vpn-tunnel=TUNNEL_NAME_1 \
     --ip-address=GOOGLE_BGP_IPV6_1 \
     --mask-length=MASK_LENGTH \
     --region=REGION \
    

    MASK_LENGTH 替换为值 64 或更小的值。

  3. 将 BGP 对等配置添加到第二个隧道的第一个接口;将 PEER_NAME_1_ipv4 替换为对等方的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME_1_ipv4 \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_1_ipv4 \
     --peer-ip-address=PEER_BGP_IPV4_1 \
     --region=REGION
    
  4. 将 BGP 对等方配置添加到第二个隧道的第二个接口;将 PEER_NAME_1_ipv6 替换为对等 VPN 接口的名称,并将 PEER_ASN 替换为为对等 VPN 网关配置的 ASN:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME_1_ipv6 \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_1_ipv6 \
       --peer-ip-address=PEER_BGP_IPV6_1 \
       --region=REGION
    

    在大多数情况下,PEER_ASN 是相同的,但可能会因本地网络拓扑而异。

API

如要创建 BGP 会话,请按照以下步骤操作:

  1. 如需创建两个 Cloud Router 路由器接口,请使用 routers.patch 方法routers.update 方法发出 PATCHUPDATE 请求。PATCH 仅更新您包含的参数。UPDATE 会更新 Cloud Router 的所有参数。

    为高可用性 VPN 网关上的第一个 VPN 隧道创建两个 Cloud Router 路由器接口。您将创建一个具有 IPv4 地址的接口和一个具有 IPv6 地址的接口。您可以在同一 PATCHUPDATE 请求中配置这两个接口及其 BGP 对等方。这些接口与同一 linkedVpnTunnel 隧道关联,然后 BGP 对等方与这些接口关联。

    每个接口的 BGP 地址范围在 VPC 网络所有区域中的所有 Cloud Router 路由器之间必须唯一。

    对高可用性 VPN 网关上的每个 VPN 隧道重复此步骤和命令。

    以下示例会将一个具有 IPv4 地址的接口和一个具有 IPv6 地址的接口添加到同一 linkedVpnTunnel。该示例命令会手动指定 IPv4 和 IPv6 BGP 地址:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "interfaces": [
        {
          "name": "if-tunnel-a-to-on-prem-if-0_ipv4",
          "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0",
          "ipRange": "169.254.0.1/30"
          },
          {
          "name": "if-tunnel-a-to-on-prem-if-0_ipv6",
          "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0",
          "ipRange": "fdff:1::/126"
          }
    
        ]
    }
    

    以下示例会将 IPv4 BGP 接口和 IPv6 BGP 接口添加到具有自动分配的 IPv4 和 IPv6 BGP 地址的同一 linkedVpnTunnel

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "interfaces": [
        {
          "name": "if-tunnel-a-to-on-prem-if-0_ipv4",
          "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0",
          "ipVersion": "IPV4"
          },
          {
          "name": "if-tunnel-a-to-on-prem-if-0_ipv6",
          "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0",
          "ipVersion": "IPV6"
          }
    
        ]
    }
    
    1. 如需将 BGP 对等方添加到每个 VPN 隧道的 Cloud Router 路由器,请使用 routers.patch 方法routers.update 方法发出 PATCHUPDATE 请求。对另一个 VPN 隧道重复此命令,并根据需要更改所有选项。

      例如:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
      {
      "bgpPeers": [
      {
        "interfaceName": "if-tunnel-a-to-on-prem-if-0_ipv4",
        "ipAddress": "169.254.0.1",
        "name": "bgp-peer-tunnel-a-to-on-prem-if-0_ipv4",
        "peerAsn": 65002,
        "peerIpAddress": "169.254.0.2",
        "advertiseMode": "DEFAULT"
        },
        {
        "interfaceName": "if-tunnel-a-to-on-prem-if-0_ipv6",
        "ipAddress": fdff:1::1",
        "name": "bgp-peer-tunnel-a-to-on-prem-if-0_ipv6",
        "peerAsn": 65002,
        "peerIpAddress": "fdff:1::2",
        "advertiseMode": "DEFAULT"
        }
      ]
      }
      

验证配置

控制台

如要验证配置,请转到摘要和提醒页面:

  1. 此页面的摘要部分列出了高可用性 VPN 网关和对等 VPN 网关配置文件的信息。对于每个 VPN 隧道,您都可以查看 VPN 隧道状态BGP 会话名称BGP 会话状态 以及 MED 值(通告路由的优先级)。
  2. 此页面的提醒部分列出了在 Cloud VPN 和对等 VPN 之间建立完全可正常运行的 VPN 连接所需完成的步骤。
  3. 如果要为对等 VPN 设备下载配置模板,请点击下载配置。有关如何选择模板和查看受支持的供应商列表的说明,请参阅下载对等 VPN 配置模板。您也可以稍后转到对等 VPN 网关页面下载配置模板。
  4. 查看此页面上的信息后,点击确定

gcloud

如需验证 Cloud Router 路由器配置,请按以下步骤操作:

  • 列出 Cloud Router 路由器选择的 BGP 会话 IP 地址。如果您向现有 Cloud Router 路由器添加了新接口,则新接口的 BGP IPv4 或 IPv6 地址可能会以最高的索引编号列出。使用 BGP IPv4 或 BGP IPv6 地址 peerIpAddress 配置对等 VPN 网关:

    gcloud compute routers get-status ROUTER_NAME \
       --region=REGION \
       --format='flattened(result.bgpPeerStatus[].name,
         result.bgpPeerStatus[].ipAddress, result.bgpPeerStatus[].peerIpAddress)'
    

    管理两个 Cloud VPN 隧道(索引 0 和索引 1)的 Cloud Router 路由器的预期输出如以下示例所示,并符合以下条件:

    • GOOGLE_BGP_IP_0 表示 Cloud VPN 网关 interface 0 上隧道的 Cloud Router 路由器接口的 BGP IP 地址;PEER_BGP_IP_0 表示其对等方的 BGP IP 地址。
    • GOOGLE_BGP_IP_1 表示 Cloud VPN 网关 interface 1 上隧道的 Cloud Router 路由器接口的 BGP IP 地址;PEER_BGP_IP_1 表示其对等方的 BGP IP 地址。
      result.bgpPeerStatus[0].ipAddress:      169.254.0.1 GOOGLE_BGP_IP_0
      result.bgpPeerStatus[0].name:           bgp-peer-tunnel-a-to-on-prem-if-0
      result.bgpPeerStatus[0].peerIpAddress:  169.254.0.2 PEER_BGP_IP_0
      result.bgpPeerStatus[1].ipAddress:      169.254.1.1 GOOGLE_BGP_IP_1
      result.bgpPeerStatus[1].name:           bgp-peer-tunnel-a-to-on-prem-if-1
      result.bgpPeerStatus[1].peerIpAddress:  169.254.1.2 PEER_BGP_IP_1
    
  • 您还可以使用以下命令获取 Cloud Router 路由器配置的完整列表:

    gcloud compute routers describe ROUTER_NAME \
       --region=REGION
    

    完整的列表如以下示例所示:

    bgp:
      advertiseMode: DEFAULT
      asn: 65001
    bgpPeers:
    - interfaceName: if-tunnel-a-to-on-prem-if-0
      ipAddress: 169.254.0.1
      name: bgp-peer-tunnel-a-to-on-prem-if-0
      peerAsn: 65002
      peerIpAddress: 169.254.0.2
    - interfaceName: if-tunnel-a-to-on-prem-if-1
      ipAddress: 169.254.1.1
      name: bgp-peer-tunnel-a-to-on-prem-if-1
      peerAsn: 65004
      peerIpAddress: 169.254.1.2
    creationTimestamp: '2018-10-18T11:58:41.704-07:00'
    id: '4726715617198303502'
    interfaces:
    - ipRange: 169.254.0.1/30
      linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-0
      name: if-tunnel-a-to-on-prem-if-0
    - ipRange: 169.254.1.1/30
      linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-1
      name: if-tunnel-a-to-on-prem-if-1
      kind: compute#router
      name: router-a
      network: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/network-a
      region: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1
      selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a
    

API

如需验证 Cloud Router 路由器配置,请使用 routers.getRouterStatus 方法发出 GET 请求,并使用空请求正文:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers

在单个隧道网关上创建其他隧道。

控制台

如需接收 99.99% 的正常运行时间 SLA,请在高可用性 VPN 网关的每个高可用性 VPN 接口上配置隧道。

在以下情况下配置第二个隧道:

  • 如果您已将高可用性 VPN 网关配置为具有单个对等 VPN 接口的对等 VPN 网关。
  • 如果您之前在高可用性 VPN 网关上设置了连接到包含任意接口数的对等 VPN 网关的单个隧道,但现在想要为高可用性 VPN 网关实现 SLA 承诺的 99.99% 的正常运行时间。

如需配置第二个隧道,请按照添加从高可用性 VPN 网关到对等 VPN 网关的隧道中的步骤操作。

设置通告路由的基准优先级(可选)

您创建的 BGP 会话允许每个 Cloud Router 路由器将路由通告到对等网络。通告使用未经修改的基准优先级

创建连接到对等 VPN 的高可用性 VPN 网关和隧道对中所述的配置用于主动-主动路由配置,其中来自 Google Cloud 端的两个 VPN 隧道的通告路由优先级与对等端匹配。如需配置从 Google Cloud 到两个对等 BGP 的相同通告路由优先级,请省略 Google Cloud 端通告的路由优先级。

如需创建主动-被动配置,请为两个高可用性 VPN 隧道配置不同的通告路由优先级。一个通告路由的优先级必须高于另一个。例如:

  • BGP 会话 1/隧道 1,路由优先级 = 10
  • BGP 会话 2/隧道 2,路由优先级 = 20

如需详细了解通告路由的基准优先级,请参阅通告的前缀和优先级

您还可以使用自定义通告指定要通告的路由:

  • 添加 --advertisement-mode=CUSTOM 标志 (gcloud) 或 advertiseMode: custom 标志 (API)。
  • 使用 --set-advertisement-ranges 标志 (gcloud) 或 advertisedIpRanges 标志 (API) 指定 IP 地址范围。

完成配置

在使用新的 Cloud VPN 网关及其关联的 VPN 隧道之前,请完成以下步骤:

  1. 设置对等 VPN 网关并配置其中相应的一个或多个隧道。如需了解相关说明,请参阅以下内容:
  2. 根据需要在 Google Cloud 和对等网络中配置防火墙规则
  3. 检查您的 VPN 隧道的状态。注意:此步骤包括检查高可用性 VPN 网关的高可用性配置。

后续步骤