列出 BGP 路由
本页面介绍了如何在单个边界网关协议 (BGP) 会话中列出通告的路由和已知路由,这有助于您排查 Cloud Router 路由问题。您可以在将 BGP 路由政策应用于路由之前或之后列出路由。如需对通告的路由和已知路由进行问题排查,我们建议您按顺序完成以下各部分。
准备工作
gcloud
如果您要使用本指南中的命令行示例,请执行以下操作:
- 安装或更新到 Google Cloud CLI 的最新版本。
- 设置默认区域和可用区。
API
如果希望使用本指南中的 API 示例,请设置 API 访问权限。
在应用政策之前列出 BGP 路由
控制台
执行以下操作:
在 Trusted Cloud 控制台中,前往 Cloud Router 页面。
在 Cloud Router 页面上,点击 BGP 会话标签页。
选择要列出的 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 路由
控制台
在 Trusted Cloud 控制台中,前往 Cloud Router 页面。
在 Cloud Router 页面上,点击 BGP 会话标签页。
选择要列出的 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 转发平面路由表
执行以下操作:
在 Trusted Cloud 控制台中,转到路由页面。
在有效路由标签页上,选择要为其列出路由的网络。
在区域列表中,选择要在其中列出路由的区域,然后点击查看。