配置 Cloud Router 的 BGP 标识符范围

每个 Cloud Router 都有一个 BGP 标识符,也称为“路由器 ID”。根据 RFC 6286 的要求,Virtual Private Cloud (VPC) 网络中每个 Cloud Router 的 BGP 标识符都是唯一的。BGP 标识符是一个 4 字节的无符号整数,表示为有效的 IPv4 地址。

您可以为 Cloud Router 分配明确的 BGP 标识符范围。如果您这样做,系统会从分配的范围中为您的 Cloud Router 分配一个稳定的 BGP 标识符。

IPv6 BGP 需要明确的 BGP 标识符范围。如果您向尚未分配 BGP 标识符范围的 Cloud Router 添加 IPv6 接口,系统会为其分配 IPv4 链路本地地址空间中的随机范围。

没有明确 BGP 标识符范围的 Cloud Router 将分配一个 BGP 标识符,该标识符与其 IPv4 接口中按字典顺序排列的最后一个 IPv4 地址相对应。

BGP 标识符更改和 BGP 会话重启

除非您配置了明确的 BGP 标识符范围,否则 Cloud Router 可能会在以下情况下更改自动生成的路由器 ID:

  • 您添加 BGP 会话
  • 您移除 BGP 会话
  • 在定期维护期间

准备工作

gcloud

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

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

API

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

为 Cloud Router 分配 BGP 标识符范围

本部分介绍了如何向 Cloud Router 分配显式 BGP 标识符范围。

控制台

  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:任何您在本地网络中尚未使用的专用 ASN64512-655344200000000-4294967294)。Cloud Router 要求您使用专用 ASN,但您的本地 ASN 可以是公共的,也可以是专用的。

    • BGP 对等 keepalive 时间间隔:发送到对等路由器的两条连续 BGP keepalive 消息之间的时间间隔。此值必须是 20 到 60 之间的整数,用于指定该间隔的秒数。默认时间为 20 秒。如需了解详情,请参阅管理 BGP 计时器
    • BGP 标识符:可选。BGP 标识符(有时称为路由器 ID),用于唯一标识网络中的 Cloud Router 路由器。如果省略,具有 IPv4 BGP 会话的 Cloud Router 路由器会使用其中一个 IPv4 BGP 地址作为 BGP 标识符,并且向此 Cloud Router 路由器添加第一个 IPv6 接口会自动填充该字段。

      如需了解详情,请参阅为 Cloud Router 路由器配置 BGP 标识符范围

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

gcloud

如需在创建 Cloud Router 时分配显式 BGP 标识符范围,请使用 --bgp-identifier-range 标志。

gcloud compute routers create ROUTER_NAME \
    --bgp-identifier-range=BGP_IDENTIFIER_RANGE

BGP_IDENTIFIER_RANGE 替换为 169.254.0.0/16 中的链路本地 IPv4 范围,并且子网掩码前缀长度最多为 /30。IPv4 地址范围不得与以下任一地址重叠:

  • 此 Cloud Router 上另一个 BGP 会话使用的 IPv4 地址范围。

  • 同一 VPC 网络和区域中的其他 Cloud Router 使用的任何自定义 BGP 标识符范围。

API

使用 routers.insert 方法

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

BGP_IDENTIFIER_RANGE 替换为 169.254.0.0/16 中的链路本地 IPv4 范围,并且子网掩码前缀长度最多为 /30。此范围不得与同一区域中 Cloud Router 路由器的任何现有 IPv4 Cloud Router 路由器接口或 BGP 标识符范围重叠。

修改 BGP 标识符范围

本部分介绍了如何修改 Cloud Router 上的现有显式 BGP 标识符范围。

gcloud

如需更改显式 BGP 标识符范围,请运行以下命令。

gcloud compute routers update ROUTER_NAME \
    --bgp-identifier-range=BGP_IDENTIFIER_RANGE

BGP_IDENTIFIER_RANGE 替换为 169.254.0.0/16 中的链路本地 IPv4 范围,并且子网掩码前缀长度最多为 /30

IPv4 地址范围不得与以下任一地址重叠:

  • 此 Cloud Router 上另一个 BGP 会话使用的 IPv4 地址范围。

  • 同一 VPC 网络和区域中的其他 Cloud Router 使用的任何自定义 BGP 标识符范围。

API

使用 routers.patch 方法更新 bgp.identifierRange 字段:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgp": {
        "identifierRange": BGP_IDENTIFIER_RANGE
     }
   }

BGP_IDENTIFIER_RANGE 替换为 169.254.0.0/16 中的链路本地 IPv4 范围,并且子网掩码前缀长度最多为 /30。IPv4 地址范围不得与以下任一地址重叠:

  • 此 Cloud Router 上另一个 BGP 会话使用的 IPv4 地址范围。

  • 同一 VPC 网络和区域中的其他 Cloud Router 使用的任何自定义 BGP 标识符范围。

后续步骤