列出 BGP 路由

本页面介绍了如何在单个边界网关协议 (BGP) 会话中列出通告的路由和已知路由,这有助于您排查 Cloud Router 路由问题。您可以在将 BGP 路由政策应用于路由之前或之后列出路由。如需对通告的路由和已知路由进行问题排查,我们建议您按顺序完成以下各部分。

准备工作

gcloud

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

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

API

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

在应用政策之前列出 BGP 路由

控制台

执行以下操作:

  1. 在 Trusted Cloud 控制台中,前往 Cloud Router 页面。

    前往“Cloud Router 路由器”

  2. Cloud Router 页面上,点击 BGP 会话标签页。

  3. 选择要列出的 BGP 会话对等体。系统会显示 BGP 会话详情页面。通告的路由列在通告的路由部分中。

gcloud

使用 gcloud compute routers list-bgp-routes 命令

gcloud compute routers list-bgp-routes ROUTER_NAME \
    --address-family=ADDRESS_FAMILY \
    --no-policy-applied \
    --peer=PEER_NAME \
    --region=REGION \
    --route-direction=ROUTE_DIRECTION

替换以下内容:

  • ROUTER_NAME:您的 Cloud Router 路由器的名称

  • ADDRESS_FAMILY:要为其显示路由的 IP 地址系列:

    • IPV4:适用于基于 IPv4 的 BGP 地址
    • IPV6:适用于基于 IPv6 的 BGP 地址
  • PEER_NAME:BGP 对等端的名称

  • REGION:Cloud Router 路由器所在的区域

  • ROUTE_DIRECTION:要显示其路由的方向:

    • INBOUND:从 BGP 对等体获知的路由
    • OUTBOUND:向 BGP 对等体通告的路由

输出类似于以下内容:

---
asPaths:
- asns:
  - 64515
  type: AS_PATH_TYPE_SEQUENCE
destination:
  prefix: 192.168.1.0/24
med: 100
origin: BGP_ORIGIN_INCOMPLETE
---
asPaths:
- asns:
  - 64515
  type: AS_PATH_TYPE_SEQUENCE
destination:
  prefix: 192.168.2.0/24
med: 333
origin: BGP_ORIGIN_INCOMPLETE

API

使用 routers.listBgpRoutes 方法:

GET https://compute.googleapis.com/compute/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME/listBgpRoutes
{
  "addressFamily": "ADDRESS_FAMILY",
  "peer": "PEER_NAME",
  "policyApplied": FALSE,
  "routeType": "ROUTE_TYPE"
}

替换以下内容:

  • PROJECT_ID:是包含您的 Cloud Router 路由器的项目

  • REGION:Cloud Router 路由器所在的区域

  • ROUTER_NAME:您的 Cloud Router 路由器的名称

  • ADDRESS_FAMILY:要为其显示路由的 IP 地址系列:

    • IPV4:适用于基于 IPv4 的 BGP 地址
    • IPV6:适用于基于 IPv6 的 BGP 地址
  • PEER_NAME:BGP 对等端的名称

  • ROUTE_TYPE:要显示的路由的类型:

    • LEARNED:从 BGP 对等体获知的路由
    • ADVERTISED:向 BGP 对等体通告的路由

输出类似于以下内容:

{
  "kind": "compute#routersListBgpRoutes",
  "result": [
    {
      "destination": {
        "prefix": "10.0.1.0/24"
      },
      "med": 100
    },
    {
      "destination": {
        "prefix": "10.0.2.0/24"
      },
      "med": 338
    }
  ]
}

在应用政策之后列出 BGP 路由

控制台

  1. 在 Trusted Cloud 控制台中,前往 Cloud Router 页面。

    前往“Cloud Router 路由器”

  2. Cloud Router 页面上,点击 BGP 会话标签页。

  3. 选择要列出的 BGP 会话对等体。系统会显示 BGP 会话详情页面。通告的路由列在通告的路由部分中。

gcloud

使用 gcloud compute routers list-bgp-routes 命令

gcloud compute routers list-bgp-routes ROUTER_NAME \
    --address-family=ADDRESS_FAMILY \
    --policy-applied \
    --peer=PEER_NAME \
    --region=REGION \
    --route-direction=ROUTE_DIRECTION

替换以下内容:

  • ADDRESS_FAMILY:要为其显示路由的 IP 地址系列:

    • IPV4:适用于基于 IPv4 的 BGP 地址
    • IPV6:适用于基于 IPv6 的 BGP 地址
  • PEER_NAME:BGP 对等端的名称

  • ROUTE_DIRECTION:要显示其路由的方向:

    • INBOUND:从 BGP 对等体获知的路由
    • OUTBOUND:向 BGP 对等体通告的路由

输出类似于以下内容:

---
asPaths:
- asns:
- 64515
type: AS_PATH_TYPE_SEQUENCE
communities:
- 65535:65281
destination:
prefix: 192.168.1.0/24
med: 100
origin: BGP_ORIGIN_INCOMPLETE
---
asPaths:
- asns:
- 64515
type: AS_PATH_TYPE_SEQUENCE
communities:
- 65535:65281
destination:
prefix: 192.168.2.0/24
med: 333
origin: BGP_ORIGIN_INCOMPLETE

API

使用 routers.listBgpRoutes 方法:

GET https://compute.googleapis.com/compute/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME/listBgpRoutes
{
"addressFamily": "ADDRESS_FAMILY",
"peer": "PEER_NAME",
"policyApplied": TRUE,
"routeType": "ROUTE_TYPE"
}

替换以下内容:

  • PROJECT_ID:是包含您的 Cloud Router 路由器的项目

  • REGION:Cloud Router 路由器所在的区域

  • ROUTER_NAME:您的 Cloud Router 路由器的名称

  • ADDRESS_FAMILY:要为其显示路由的 IP 地址系列:

    • IPV4:适用于基于 IPv4 的 BGP 地址
    • IPV6:适用于基于 IPv6 的 BGP 地址
  • PEER_NAME:BGP 对等端的名称

  • ROUTE_TYPE:要显示的路由的类型:

    • LEARNED:从 BGP 对等体获知的路由
    • ADVERTISED:向 BGP 对等体通告的路由

输出类似于以下内容:

{
  "kind": "compute#routersListBgpRoutes",
  "result": [
    {
      "destination": {
        "prefix": "10.0.1.0/24"
      },
      "asPaths": [
        {
          "type": "AS_PATH_TYPE_SEQUENCE",
          "asns": [
            64514
          ]
        }
      ],
      "origin": "BGP_ORIGIN_INCOMPLETE",
      "med": 100
    },
    {
      "destination": {
        "prefix": "10.0.2.0/24"
      },
      "asPaths": [
        {
          "type": "AS_PATH_TYPE_SEQUENCE",
          "asns": [
            64514
          ]
        }
      ],
      "origin": "BGP_ORIGIN_INCOMPLETE",
      "med": 338
    }
  ]
}

查看最佳动态路由

查看每个 VPC 在每个 Cloud Router 路由器和每个区域的最佳动态路由:

gcloud

使用 gcloud compute routers get-status 命令

gcloud compute routers get-status ROUTER_NAME \
    --region=REGION

输出包括以下信息:

  • bestRoutesForRouter:表示特定 Cloud Router 路由器的最佳路由
  • bestRoutes:表示该 VPC 的 Cloud Router 路由器在每个区域的最佳路由。

对于 bestRoutesForRouter,输出类似于以下内容:

  bestRoutesForRouter:
  - asPaths:
    - asLists:
      - 65002
      pathSegmentType: AS_SEQUENCE
    creationTimestamp: '2024-09-26T18:28:54.346-07:00'
    destRange: 192.168.1.0/24
    kind: compute#route
    network: https://www.googleapis.com/compute/projects/PROJECT_ID/global/networks/NETWORK_NAME
    nextHopIp: 169.254.0.2
    nextHopOrigin: INCOMPLETE
    nextHopVpnTunnel: https://www.googleapis.com/compute/projects/PROJECT_ID/regions/REGION/vpnTunnels/vpc-demo-tunnel0
    priority: 100
    routeStatus: ACTIVE
    routeType: BGP
  - asPaths:
    - asLists:
      - 65002
      pathSegmentType: AS_SEQUENCE
    creationTimestamp: '2024-09-27T12:44:56.575-07:00'
    destRange: 192.168.1.0/24
    kind: compute#route
    network: https://www.googleapis.com/compute/projects/PROJECT_ID/global/networks/NETWORK_NAME
    nextHopIp: 169.254.1.2
    nextHopOrigin: INCOMPLETE
    nextHopVpnTunnel: https://www.googleapis.com/compute/projects/PROJECT_ID/regions/REGION/vpnTunnels/vpc-demo-tunnel1
    priority: 100
    routeStatus: ACTIVE
    routeType: BGP

对于 bestRoutes,输出类似于以下内容:

  bestRoutes:
  - asPaths:
    - asLists:
      - 65002
      pathSegmentType: AS_SEQUENCE
    creationTimestamp: '2024-09-26T18:33:50.505-07:00'
    destRange: 192.168.1.0/24
    kind: compute#route
    network: https://www.googleapis.com/compute/projects/PROJECT_ID/global/networks/NETWORK_NAME
    nextHopIp: 169.254.0.2
    nextHopOrigin: INCOMPLETE
    nextHopVpnTunnel: https://www.googleapis.com/compute/projects/PROJECT_ID/regions/REGION/vpnTunnels/vpc-demo-tunnel0
    priority: 100
    routeType: BGP
  - asPaths:
    - asLists:
      - 65002
      pathSegmentType: AS_SEQUENCE
    creationTimestamp: '2024-09-27T12:46:49.028-07:00'
    destRange: 192.168.1.0/24
    kind: compute#route
    network: https://www.googleapis.com/compute/projects/PROJECT_ID/global/networks/NETWORK_NAME
    nextHopIp: 169.254.1.2
    nextHopOrigin: INCOMPLETE
    nextHopVpnTunnel: https://www.googleapis.com/compute/projects/PROJECT_ID/regions/REGION/vpnTunnels/vpc-demo-tunnel1
    priority: 100
    routeType: BGP

输出包括以下值:

  • PROJECT_ID:是包含您的 Cloud Router 路由器的项目

  • NETWORK_NAME:VPC 网络的名称

  • REGION:区域的名称

API

使用 routers.getRouterStatus 方法

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

替换以下内容:

  • PROJECT_ID:是包含您的 Cloud Router 路由器的项目

  • REGION:Cloud Router 路由器所在的区域

  • ROUTER_NAME:您的 Cloud Router 路由器的名称

输出包括以下信息:

  • bestRoutes:表示该 VPC 的 Cloud Router 路由器在每个区域的最佳路由。
  • bestRoutesForRouter:表示特定 Cloud Router 路由器的最佳路由

对于 bestRoutes,输出类似于以下内容:

    "bestRoutes": [
      {
        "kind": "compute#route",
        "creationTimestamp": "2025-03-05T11:20:40.323-08:00",
        "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME",
        "destRange": "200.0.0.0/24",
        "priority": 100,
        "nextHopIp": "169.254.0.1",
        "nextHopVpnTunnel": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnTunnels/TUNNEL_NAME",
        "routeType": "BGP",
        "asPaths": [
          {
            "pathSegmentType": "AS_SEQUENCE",
            "asLists": [
              65001
            ]
          }
        ],
        "nextHopOrigin": "INCOMPLETE"
      },

对于 bestRoutesForRouter,输出类似于以下内容:

    "bestRoutesForRouter": [
      {
        "kind": "compute#route",
        "creationTimestamp": "2025-03-05T11:20:50.240-08:00",
        "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME",
        "destRange": "10.2.1.0/24",
        "priority": 100,
        "nextHopIp": "169.254.0.1",
        "nextHopVpnTunnel": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/vpnTunnels/TUNNEL_NAME",
        "routeType": "BGP",
        "asPaths": [
          {
            "pathSegmentType": "AS_SEQUENCE",
            "asLists": [
              65001
            ]
          }
        ],
        "routeStatus": "ACTIVE",
        "nextHopOrigin": "INCOMPLETE"
      },
      {
        "kind": "compute#route",
        "creationTimestamp": "2025-03-05T01:50:01.725-08:00",
        "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/on-prem",
        "destRange": "200.0.0.0/24",
        "priority": 100,
        "nextHopIp": "169.254.0.1",
        "nextHopVpnTunnel": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnTunnels/TUNNEL_NAME",
        "routeType": "BGP",
        "asPaths": [
          {
            "pathSegmentType": "AS_SEQUENCE",
            "asLists": [
              65001
            ]
          }
        ],
        "routeStatus": "ACTIVE",
        "nextHopOrigin": "INCOMPLETE"
      },
      {
        "kind": "compute#route",
        "creationTimestamp": "2025-03-06T05:30:06.277-08:00",
        "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/on-prem",
        "destRange": "10.2.1.0/24",
        "priority": 100,
        "nextHopIp": "169.254.1.1",
        "nextHopVpnTunnel": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnTunnels/TUNNEL_NAME",
        "routeType": "BGP",
        "asPaths": [
          {
            "pathSegmentType": "AS_SEQUENCE",
            "asLists": [
              65001
            ]
          }
        ],
        "routeStatus": "ACTIVE",
        "nextHopOrigin": "INCOMPLETE"
      }
    ],

输出包括以下值:

  • PROJECT_ID:是包含您的 Cloud Router 路由器的项目

  • REGION:Cloud Router 路由器所在的区域

  • ROUTER_NAME:您的 Cloud Router 路由器的名称

  • TUNNEL_NAME:VPN 隧道的名称(如果适用)

查看 VPC 转发平面路由表

执行以下操作:

  1. 在 Trusted Cloud 控制台中,转到路由页面。

    进入“路由”

  2. 有效路由标签页上,选择要为其列出路由的网络。

  3. 区域列表中,选择要在其中列出路由的区域,然后点击查看