创建 Cloud Router 路由器以将 VPC 网络连接到对等网络

了解如何设置 Cloud Router 路由器,以在 Virtual Private Cloud (VPC) 网络和对等网络之间动态交换路由。对等网络可以是本地网络、由 AWS 或 Azure 等其他云提供商托管的网络,甚至是 Google Cloud 中的其他 VPC 网络。

如需使用 Cloud Router 路由器将 VPC 网络与对等网络连接,您必须完成以下简要任务:

  1. 创建 Cloud Router 路由器。
  2. 在 Google Cloud 中设置网络连接产品。
  3. 与对等网络上的路由器建立边界网关协议 (BGP) 会话。

创建 Cloud Router 路由器时,您可以使用其默认通告模式或自定义通告模式。默认情况下,使用区域动态路由的 Cloud Router 路由器将通告其区域中的子网,使用全局动态路由的 Cloud Router 路由器将通告 VPC 网络中的所有子网。借助自定义通告模式,您可以选择让 Cloud Router 路由器通告哪些路由,例如外部静态 IP 地址或特定 CIDR 范围。

如需了解详情,请参阅 Cloud Router 概览中的路由通告模式

准备工作

如果您要使用本指南中的命令行示例,请执行以下操作:

  1. 安装或更新到 Google Cloud CLI 的最新版本。
  2. 设置默认区域和可用区

如果希望使用本指南中的 API 示例,请设置 API 访问权限

创建 Cloud Router 路由器

如需创建 Cloud Router 路由器,请按照以下步骤操作。

控制台

  1. 在 Google Cloud 控制台中,转到创建 Cloud Router 路由器页面。

    转到“创建 Cloud Router 路由器”

  2. 指定 Cloud Router 的详细信息:

    • 名称:Cloud Router 路由器的名称。此名称显示在 Google Cloud 控制台中,Google Cloud CLI 会使用此名称引用该 Cloud Router 路由器,例如 my-router
    • 说明(可选):Cloud Router 的说明。
    • 网络:包含您要访问的实例的 VPC 网络,例如 my-network
    • 区域:您希望 Cloud Router 路由器所在的区域,例如 asia-east1
    • Google ASN:您正在配置的 Cloud Router 路由器的专用 ASN64512-655344200000000-4294967294)。此 ASN 可以是您尚未在同一区域和网络中用作对等 ASN 的任何专用 ASN,例如 65001。Cloud Router 要求您使用专用 ASN。但是,您的本地 ASN 可以是公共的,也可以是专用的,并且可以使用 16 位或 32 位的值。
    • BGP 对等 keepalive 时间间隔:发送到对等路由器的两条连续 BGP keepalive 消息之间的时间间隔。此值必须是介于 20 到 60 之间的整数,用于指定该间隔的秒数。默认时间为 20 秒。如需了解详情,请参阅管理 BGP 计时器
  3. 可选:如需指定自定义通告路由,请前往通告路由部分。如需详细了解以下步骤,请参阅自定义通告模式

    1. 如需指定自定义路由,请选择创建自定义路由
    2. 选择是否通告该 Cloud Router 路由器可用的子网。启用此选项可模拟 Cloud Router 路由器的默认行为。
    3. 如需添加通告的路由,请选择添加自定义路由,然后进行配置。
  4. 要保存设置并创建 Cloud Router 路由器,请点击创建。您的新 Cloud Router 路由器将显示在 Cloud Router 路由器列表页面上。要查看其详细信息并配置 BGP 会话,请选择该会话。

gcloud

  • 如需在包含您要访问的实例的区域中创建 Cloud Router 路由器,请运行 create 命令:

    gcloud compute routers create ROUTER_NAME \
        --project=PROJECT_ID \
        --network=NETWORK \
        --asn=ASN_NUMBER \
        --region=REGION
    

    替换以下内容:

    • ROUTER_NAME:Cloud Router 路由器的名称
    • PROJECT_ID:Cloud Router 路由器所属项目的 ID
    • NETWORK:包含您要访问的实例的 VPC 网络
    • ASN_NUMBER:您尚未在本地网络中使用的任何专用 ASN64512-655344200000000-4294967294);Cloud Router 要求您使用专用 ASN,但您的本地 ASN 可以是公共的,也可为专用的。
    • REGION:您希望 Cloud Router 路由器所在的区域;该 Cloud Router 路由器会通告其所在区域中的所有子网
  • 如需在自定义通告模式下创建 Cloud Router 路由器,请将 --advertisement-mode 设置为 custom,并使用 --set-advertisement-ranges--set-advertisement-groups 标志来指定自定义通告路由。

    --set-advertisement-ranges 标记接受 CIDR 范围列表。--set-advertisement-groups 标志接受 Cloud Router 路由器动态通告的 Google 定义组。目前,唯一的有效值是 all_subnets,该设置会根据 VPC 网络的动态路由模式通告子网(类似于默认通告)。

    以下示例演示了如何通告子网和自定义 IP 范围 1.2.3.46.7.0.0/16

    gcloud compute routers create ROUTER_NAME \
        --project=PROJECT_ID \
        --network=NETWORK \
        --asn=ASN_NUMBER \
        --region=REGION \
        --advertisement-mode custom \
        --set-advertisement-groups all_subnets \
        --set-advertisement-ranges 1.2.3.4,6.7.0.0/16
    
  • 如需为 BGP 对等端设置 keepalive 计时器,请使用 --keepalive-interval 选项,它可设置发送到对等路由器的 BGP keepalive 消息的时间间隔。此值必须是 20 到 60 之间的整数,用于指定该间隔的秒数。默认时间为 20 秒。如需了解详情,请参阅 keepalive 计时器

  • 如需为 Cloud Router 分配 BGP 标识符范围,请使用 --bgp-identifier-range 选项,并指定从 169.254.0.0/16 开始的链路本地 IPv4 范围,大小至少为 /30。例如:169.254.16.16/30。BGP 标识符用于唯一标识 Cloud Router。Cloud Router 需要明确的 32 位 BGP 标识符才能托管 IPv6 BGP 会话(预览版)。

    但不需要 BGP 标识符范围标志,因为当您首次为 IPv6 BGP 会话配置接口时,Google Cloud 会自动为 Cloud Router 分配一个未使用的标识符范围。

    仅当您要为 BGP 标识符使用特定 IP 范围时,才需要配置此选项。您可以稍后修改 Cloud Router 的 BGP 标识符范围。如需了解详情,请参阅配置 BGP 标识符范围

  • 如需为通过 Cloud Interconnect 实现的高可用性 VPN 部署创建路由器,请指定 --encrypted-interconnect-router 选项。

    用于加密的 Cloud Interconnect 的 Cloud Router 路由器是一种特殊类型的 Cloud Router 路由器。这些路由器只能与通过 Cloud Interconnect 实现的高可用性 VPN 部署的 VLAN 连接结合使用。

Terraform

使用适用于 Cloud Router 的 Google Cloud Terraform 模块

module "cloud_router" {
  source  = "terraform-google-modules/cloud-router/google"
  version = "~> 6.0"

  name   = "my-router"
  region = "us-central1"

  bgp = {
    # The ASN (16550, 64512 - 65534, 4200000000 - 4294967294) can be any private ASN
    # not already used as a peer ASN in the same region and network or 16550 for Partner Interconnect.
    asn = "65001"
  }

  project = var.project_id
  network = module.vpc.network_name
}

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令

API

  • 使用 routers.insert 方法

       POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers
       {
         "bgp": {
           "asn": "ASN_NUMBER",
           "keepaliveInterval": KEEPALIVE_INTERVAL,
           "identifierRange": BGP_IDENTIFIER_RANGE
         },
         "name": "ROUTER_NAME",
         "network": "NETWORK"
       }
    

    替换以下内容:

    • PROJECT_ID:VPC 网络所在项目的 ID
    • REGION:您希望 Cloud Router 路由器所在的区域。
    • ASN_NUMBER:您正在配置的 Cloud Router 路由器的 的专用 ASN64512-655344200000000-4294967294);它可以是您尚未在同一区域和网络中用作对等 ASN 的任何专用 ASN,例如,65001;Cloud Router 要求您使用专用 ASN 但您的本地 ASN 可以是公共的,也可以是专用的。
    • KEEPALIVE_INTERVAL:发送到对等路由器的两条连续 BGP keepalive 消息的时间间隔。此占位符是可选的。值必须是介于 20 到 60 之间的整数,用于指定该间隔的秒数。默认时间为 20 秒。如需了解详情,请参阅 Cloud Router 的 keepalive 计时器
    • BGP_IDENTIFIER_RANGE:从 169.254.0.0/16 开始的链路本地 IPv4 范围,大小至少为 /30。此占位符是可选的;如果未提供值,则系统会自动为 Cloud Router 分配一个 BGP 标识符。如需了解详情,请参阅为 Cloud Router 配置 BGP 标识符范围
    • ROUTER_NAME:Cloud Router 路由器的名称;此名称显示在 Google Cloud 控制台中,Google Cloud CLI 会使用此名称引用该 Cloud Router 路由器
    • NETWORK:您要访问的实例所在的网络
  • 如需创建具有自定义通告路由的 Cloud Router 路由器,请将 bgp.advertiseMode 字段设置为 CUSTOM,并使用 bgp.advertisedGroups[]bgp.advertisedIpRanges[] 字段来指定通告的路由。

    bgp.advertisedIpRanges[] 字段接受一个 CIDR 范围数组。bgp.advertisedGroups[] 字段接受 Cloud Router 路由器动态通告的 Google 定义组。目前,唯一的有效值是 ALL_SUBNETS,它根据 VPC 网络的动态路由模式(类似于默认通告模式)通告子网。

    以下示例通告子网和自定义 IP 地址范围 1.2.3.46.7.0.0/16

       POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers
       {
         "bgp": {
           "asn": "ASN_NUMBER",
           "advertiseMode": "CUSTOM",
           "advertisedGroups": [
             "ALL_SUBNETS"
           ],
           "advertisedIpRanges": [
             {
               "range": "1.2.3.4",
               "description": "First example range"
             },
             {
               "range": "6.7.0.0/16",
               "description": "Second example range"
             }
           ]
         },
         "name": "ROUTER_NAME",
         "network": "NETWORK"
       }
    

设置网络连接产品

如需在 VPC 网络和对等网络之间交换路由,除了 Cloud Router 路由器之外,您还必须设置以下至少一个 Google Cloud 网络连接产品:

Cloud Interconnect

如需使用 Cloud Interconnect 和 Cloud Router 路由器将 VPC 网络连接到本地网络,您必须先预配 Cloud Interconnect 连接。

在为 Cloud Interconnect 连接创建 VLAN 连接时,您可以配置 Cloud Router 路由器及其 BGP 会话。请参阅创建专用互连的 VLAN 连接创建合作伙伴互连的 VLAN 连接

如果您要部署通过 Cloud Interconnect 实现的高可用性 VPN,则必须部署两个 Cloud Router 路由器:

  • 您为 VLAN 连接配置的适用于 Cloud Interconnect 的特殊 Cloud Router 路由器。此 Cloud Router 路由器可确保只有高可用性 VPN 网关加密的流量可以发送到 VLAN 连接。
  • 您为高可用性 VPN 隧道配置的常规 Cloud Router 路由器。

Cloud VPN

如需使用高可用性 VPN 和 Cloud Router 路由器将 VPC 网络连接到本地或多云端网络,请参阅创建高可用性 VPN 网关到对等 VPN 网关

如需使用高可用性 VPN 和 Cloud Router 路由器将 VPC 网络连接到其他 VPC 网络,请参阅在 Google Cloud 网络之间创建高可用性 VPN

创建连接到对等网络的高可用性 VPN 隧道时,您需要配置 Cloud Router 路由器及其 BGP 会话。

Network Connectivity Center

如需使用路由器设备将 VPC 网络连接到对等网络,请参阅创建路由器设备实例

建立 BGP 会话

使用 Cloud Router 路由器设置网络连接产品时,您可以在 Cloud Router 路由器与对等网络上的路由器之间建立边界网关协议 (BGP) 会话。

您可以将同一 Cloud Router 路由器重复用于不同的网络连接产品。但是,每个 BGP 会话对于您配置用于 Cloud Router 路由器的网络连接产品(VLAN 连接、Cloud VPN 隧道或路由器设备实例)是唯一的。不同的网络连接产品不能使用同一 BGP 会话。有时,您可能需要为网络连接产品设置多个 BGP 会话以实现足够的冗余。例如,使用具有高可用性 VPN 的 Cloud Router 路由器时,您需要设置多个 BGP 会话。

如需在 Cloud Router 路由器和对等网络上的路由器之间建立 BGP 会话,请参阅建立 BGP 会话

后续步骤