通告特定的 VPC 子网

自定义 Cloud Router 通告的 VPC 网络中的子网。只有您通告的子网对本地客户端可见。Cloud Router 不会动态通告新子网。如果要通告新子网,则必须将其添加到通告中。

请参阅创建 Cloud Router 路由器建立 BGP 会话,了解如何在创建 Cloud Router 路由器或配置 BGP 会话时指定通告。

如需在现有 Cloud Router 路由器上指定通告,请执行以下操作:

控制台


  1. 转到 Google Cloud Console 中的“Cloud Router 路由器”页面。
    Cloud Router 路由器列表
  2. 选择要更新的 Cloud Router 路由器。
  3. 在 Cloud Router 路由器的详情页面中,选择修改
  4. 展开通告的路由部分。
  5. 对于路由,选择创建自定义路由
  6. 如果已选择通告向 Cloud Router 公开的所有子网,请取消选择。
  7. 选择添加自定义路由以添加通告路由。
  8. 配置路由通告。
    • 来源 - 选择预定义的子网列表。 Cloud Router 会根据 VPC 网络的动态路由模式列出所有可用的子网。
    • IP 地址范围 - 您可以修改通告的子网 IP 范围。例如,您可以缩小指定的范围,使 Cloud Router 仅通告部分子网。
    • 描述 - 添加描述以帮助标识此路由通告的用途。
  9. 添加完路由后,选择保存

gcloud


在开始之前,请记录要通告的子网 IP 范围。

  1. 运行 update 命令,并使用 --set-advertisement-ranges 标志指定要通告的子网 IP 范围。如需将 IP 范围附加到现有通告,请使用 --add-advertisement-ranges 标志。

    以下示例演示了如何更新 my-router Cloud Router 路由器,以通告 10.0.0.0/2410.0.10.0/24 子网。现有的自定义通告将被替换。

    gcloud compute routers update my-router \
       --advertisement-mode custom \
       --set-advertisement-ranges 10.0.0.0/24,10.0.10.0/24
    

    如需将 IP 范围附加到现有通告,请使用 --add-advertisement-ranges 标志,如以下示例所示:

    gcloud compute routers update my-router \
       --add-advertisement-ranges 10.0.20.0/24
    
  2. 如果 Cloud Router 路由器的通告组包含所有子网,请移除通告组以阻止 Cloud Router 通告其他子网。通告组是 Cloud Router 路由器动态通告的 IP 范围,由 Google 定义。如需查看完整的通告组列表,请参阅 Google SDK 文档中的 set-advertisement-groups 标志。

    1. 运行 describe 命令来检查 Cloud Router 路由器的通告:

      gcloud compute routers describe my-router
      
    2. 如果输出包含值为 ALL_SUBNETSadvertisedGroups 字段,请将其移除。搭配 --remove-advertisement-groups 标志运行 update 命令:

      gcloud compute routers update my-router \
      --remove-advertisement-groups all_subnets
      

API

如需在 Cloud Router 路由器上指定通告,请使用 routers.patch 方法更新 bgp.advertisedIpRanges[] 字段。如果 bgp.advertisedGroups[] 字段当前的值为 ALL_SUBNETS,您可能还需要更新该字段。

bgp.advertisedGroups[]bgp.advertisedIpRanges[] 字段接受通告组和通告 IP 地址范围的数组。PATCH 这些字段时,您将使用请求中的新数组覆盖现有数组。

  1. 发送 GET 请求以获取路由器上的当前通告组和通告 IP 地址范围的数组。请参阅查看 Cloud Router 路由器配置

  2. 发送 PATCH 请求,其中包含新的通告组和通告 IP 地址范围的数组。

    • 将您要在路由器上使用的任何子网 IP 地址范围添加到 bgp.advertisedIpRanges[] 字段中。
    • 如果 advertisedGroups[] 字段的值当前指定 ALL_SUBNETS,请通过发送空数组将其移除,如以下示例所示。这样做可以阻止 Cloud Router 路由器通告其他子网。
    class="devsite-click-to-copy">
    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgp": {
        "advertisedGroups": [],
        "advertisedIpRanges": [
        ADVERTISED_IP_RANGES
       ]
     }
    }
    

    替换以下值:

    • PROJECT_ID:Cloud Router 路由器所属的项目
    • REGION:Cloud Router 路由器所在的区域
    • ROUTER_NAME:Cloud Router 路由器的名称
    • ADVERTISED_IP_RANGES:新 IP 地址范围数组的内容。

      下面的示例中包含两个子网 IP 地址范围:

      {
        "range": "10.0.0.0/24",
        "description": "First example range"
      },
      {
        "range": "10.0.10.0/24",
        "description": "Second example range"
      }
      

如需在现有 BGP 会话中指定通告,请执行以下操作:

控制台


  1. 转到 Google Cloud Console 中的“Cloud Router 路由器”页面。
    Cloud Router 路由器列表
  2. 选择待更新 BGP 会话所属的 Cloud Router 路由器。
  3. 在 Cloud Router 路由器的详情页面中,选择要更新的 BGP 会话。
  4. 在 BGP 会话详情页面中,选择修改
  5. 对于路由,选择创建自定义路由
  6. 如果已选择通告向 Cloud Router 公开的所有子网,请取消选择。
  7. 选择添加自定义路由以添加通告路由。
  8. 配置路由通告。
    • 来源 - 选择预定义的子网列表。 Cloud Router 会根据 VPC 网络的动态路由模式列出所有可用的子网。
    • IP 地址范围 - 您可以修改通告的子网 IP 范围。例如,您可以缩小指定的范围,使 Cloud Router 仅通告部分子网。
    • 描述 - 添加描述以帮助标识此路由通告的用途。
  9. 添加完路由后,选择保存

gcloud


在开始之前,请记录要通告的子网 IP 范围。

  1. 运行 update-bgp-peer 命令,并使用 --set-advertisement-ranges 标志指定要通告的子网 IP 范围。如需将 IP 范围附加到现有通告,请使用 --add-advertisement-ranges 标志。

    以下示例演示了如何更新 my-router Cloud Router 路由器上的 my-bgp-session BGP 会话,以通告 10.0.0.0/2410.0.10.0/24 子网。现有的自定义通告将被替换。

    gcloud compute routers update-bgp-peer my-router \
       --peer-name my-bgp-session \
       --advertisement-mode custom \
       --set-advertisement-ranges 10.0.0.0/24,10.0.10.0/24
    

    如需将 IP 范围附加到现有通告,请使用 --add-advertisement-ranges 标志,如以下示例所示:

    gcloud compute routers update-bgp-peer my-router \
       --peer-name my-bgp-session \
       --add-advertisement-ranges 10.0.20.0/24
    
  2. 如果 BGP 会话的通告组包含所有子网,请移除通告组以阻止 Cloud Router 通告其他子网。通告组是 Cloud Router 路由器动态通告的 IP 范围,由 Google 定义。如需查看完整的通告组列表,请参阅 Google SDK 文档中的 set-advertisement-groups 标志。

    1. 运行 describe 命令来检查 Cloud Router 路由器的通告:

      gcloud compute routers describe my-router
      
    2. 如果相关 BGP 会话包含值为 ALL_SUBNETSadvertisedGroups 字段,请将其移除。搭配 --remove-advertisement-groups 标志运行 update 命令:

      gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --remove-advertisement-groups all_subnets
      

API

要为 BGP 会话指定通告,请使用 routers.patch 方法更新 bgpPeers[] 字段。

bgpPeers[] 字段接受 BGP 对等体数组。PATCH 此字段时,您将使用请求中包含的新数组覆盖现有 BGP 对等体数组。

  1. 发送 GET 请求以获取路由器的当前 BGP 对等体数组。请参阅查看 Cloud Router 路由器配置

  2. 发送带有新 BGP 对等体数组的 PATCH 请求。针对要为其添加通告的每个 BGP 对等体,执行以下操作:

    • 将所需的任何子网 IP 地址范围通告添加到 bgpPeers[].advertisedIpRanges[] 字段中。
    • 如果 bgpPeers[].advertisedGroups[] 字段当前指定了值 ALL_SUBNETS,请移除该值,以阻止 BGP 会话通告其他子网。
    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgpPeers": [
        BGP_PEERS
      ]
    }
    

    替换以下值:

    • PROJECT_ID:Cloud Router 路由器所属的项目
    • REGION:Cloud Router 路由器所在的区域
    • ROUTER_NAME:Cloud Router 路由器的名称
    • BGP_PEERS:新 BGP 对等体数组的内容。

      以下示例包含两个带有自定义通告的 BGP 对等体。

        {
          "name": "peer-1",
          "interfaceName": "if-peer-1",
          "ipAddress": "169.254.10.1",
          "peerIpAddress": "169.254.10.2",
          "peerAsn": 64512,
          "advertisedRoutePriority": 100,
          "advertiseMode": "CUSTOM",
          "advertisedGroups": [],
          "advertisedIpRanges": [
            {
              "range": "10.0.0.0/24",
              "description": "First example subnet"
            },
            {
              "range": "10.0.10.0/24",
              "description": "Second example subnet"
            }
          ]
        },
        {
          "name": "peer-2",
          "interfaceName": "if-peer-2",
          "ipAddress": "169.254.20.1",
          "peerIpAddress": "169.254.20.2",
          "peerAsn": 64513,
          "advertisedRoutePriority": 100,
          "advertiseMode": "CUSTOM",
          "advertisedGroups": [],
          "advertisedIpRanges": [
            {
              "range": "10.0.20.0/24",
              "description": "Third example subnet"
            }
          ]
        }
      

后续步骤