排解 BGP 路徑和路徑選取問題

本指南可協助您排解 BGP 路由相關問題,包括路徑選取、路徑傳播和路徑指標。

如需其他疑難排解資訊,請參閱下列資源:

已建立 IPv6 BGP 工作階段,但未交換 IPv4 路由

  1. 請確認 VLAN 連結或高可用性 VPN 閘道具有 IPV4_IPV6 的必要堆疊類型。如果 VLAN 連結的堆疊類型不正確,請修改 VLAN 連結。針對高可用性 VPN 閘道,請重新建立高可用性 VPN 閘道及其通道。

  2. 確認 Cloud Router 設定正確無誤。執行下列指令:

    gcloud compute routers describe ROUTER-NAME
    

    在輸出內容中,檢查下列值:

    • bgpPeers.enableIpv4」這個價格true
    • bgpPeers.ipv4NexthopAddressbgpPeers.peerIpv4NexthopAddress 都存在

無法存取部分內部部署 IPv4 或 IPv6 前置碼

如果您在嘗試存取 Cloud Router 學習到的前置字節內的內部 IPv4 或 IPv6 目的地時,發生流量損失、ping 錯誤或其他問題,可能有許多原因。

檢查是否有未使用的自訂已知路徑

如果您無法使用已設定的自訂學習路徑存取內部目的地,請執行下列操作:

  • 檢查 BGP 工作階段是否已正確設定路由。
  • 確認 BGP 工作階段是否啟用。
  • 確認內部部署路由器是否篩除部分已學習的路徑。

詳情請參閱「檢查自訂學習路線的狀態」。

檢查是否有已篩除的已知路徑

如要查看路線是否遭到篩除,請執行下列指令:

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

更改下列內容:

  • ROUTER_NAME:Cloud Router 的名稱。
  • REGION:Cloud Router 所在的區域。

輸出結果會與下列內容相似,請找出已設為 activerouteStatus

kind: compute#routerStatusResponse
result:
  bestRoutesForRouter:
  - asPaths:
    - asLists:
      - 65200
      pathSegmentType: AS_SEQUENCE
    creationTimestamp: '2024-03-22T13:57:15.533-07:00'
    destRange: 10.128.0.0/20
    kind: compute#route
    network: https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/VPC_NAME
    nextHopIp: 169.254.73.246
    nextHopVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/vpnTunnels/VPN_NAME
    priority: 100
    routeStatus: ACTIVE
    routeType: BGP
  bgpPeerStatus:
  - advertisedRoutes:
    - destRange: 10.128.0.0/20
      kind: compute#route
      network: https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/aneta-vpc
      nextHopIp: 169.254.73.245
      nextHopVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/vpnTunnels/VPN_NAME
      priority: 100
      routeType: BGP
    enableIpv6: false
    ipAddress: 169.254.73.245
    linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/vpnTunnels/VPN_NAME
    md5AuthEnabled: false
    name: aneta-bgp
    numLearnedRoutes: 1
    peerIpAddress: 169.254.73.246
    state: Established
    status: UP
    uptime: 10 hours, 11 minutes, 0 seconds
    uptimeSeconds: '36660'
  network: https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/VPC_NAME

bestRoutesForRouter.routeStatus 值會針對有效路線顯示 ACTIVE,針對篩選路線則顯示 DROPPED

查看配額和限制

請確認您的 Cloud Router 未超過已知路徑的配額。如要查看 Cloud Router 的已知路徑數量,請查看 Cloud Router 的狀態

如要瞭解配額、相關記錄訊息和指標,以及如何解決問題,請參閱下表。

主題 指引
關於配額 請參閱「Cloud Router 配額」和「已知路徑示例」。
記錄 如果您超出任一配額,Cloud Logging 會顯示錯誤訊息。如要瞭解如何建立進階查詢來查看這則訊息,請參閱 Cloud Router 說明文件中的相關查詢
指標

您也可以使用下列指標,瞭解目前的配額可用性和使用情形。這些指標會在開頭加上 router.googleapis.com/dynamic_routes/learned_routes/

  • used_unique_destinations

    這個虛擬私有雲網路中正在使用的不重複目的地數量。如果已啟用全域動態轉送,這個指標會同時顯示全域和區域用量。

  • unique_destinations_limit

    這個虛擬私有雲網路中,允許放送廣告的不重複目的地數量。如果已啟用全域動態轉送,這個指標會同時顯示全域和區域配額。

  • any_dropped_unique_destinations

    指出這個 VPC 網路是否因超過一或兩個路徑配額而捨棄任何目的地。

這些指標可透過 gce_network_region 監控的資源取得。如要進一步瞭解 Cloud Router 指標和查看方式,請參閱「查看記錄和指標」一文中的「指標」一節。

解決問題

您可以採取下列做法解決路線配額問題。如果路線數量遠超過可用配額,建議同時執行以下兩種做法:

  • 設定內部部署路由器,以便匯總匯出的路徑,讓這些路徑宣告較少的目的地 (CIDR)。
  • 與支援團隊聯絡。 支援團隊可以協助您提高配額。

已學習的路徑 (來自內部部署網路的路徑) 未傳播至其他 VPC 網路

單一 Cloud Router 無法將從某個 BGP 對等點取得的路徑重新廣告至其他 BGP 對等點,包括其他 VPC 網路中的 Cloud Router。

舉例來說,在下列軸輻式拓撲中,Cloud Router 無法支援多個虛擬私人雲端網路之間的路由廣告。

Cloud Router 軸輻式拓撲。
Cloud Router 軸輻式拓撲 (按一下可放大圖片)。

在這種情況下,共用相同虛擬私人雲端網路的 Cloud Router 之間沒有 iBGP 工作階段,Cloud Router 只會通告 VPC 子網路和自訂設定的路徑。Cloud Router 不會宣告虛擬私人雲端網路中的動態路徑。

如要查看 Google Cloud中的網路拓撲建議,請參閱「虛擬私人雲端設計的最佳做法與參考架構」。

此外,如要在 Google Cloud中建構及管理中樞和輻條拓撲,您可以使用 Network Connectivity Center

IPv6 流量未經過轉送

如果無法順利連線至 IPv6 主機,請按照下列步驟操作:

  1. 確認是否正確宣傳 IPv4 路徑。先檢查 IPv4 流量,即可排除一般網路問題。如果未宣傳 IPv4 路由,請執行本文列出的一般疑難排解程序。

  2. 檢查防火牆規則,確認您允許虛擬私有雲網路和內部部署網路之間的 IPv6 流量。

  3. 判斷是否已超過可用的已知路徑配額。如果您已超過已知路徑的配額,IPv6 前置字串會在 IPv4 前置字串之前捨棄。請參閱檢查配額和限制

  4. 確認所有需要 IPv6 設定的元件都已正確設定。

    • 虛擬私有雲子網路已設定為使用 IPV4_IPV6 堆疊類型。

    • 虛擬私有雲子網路的--ipv6-access-type 已設為 INTERNAL

    • 子網路中的 Compute Engine VM 已設定 IPv6 位址。

    • 高可用性 VPN 閘道或專屬互連網路的 VLAN 連結已設定為使用 IPV4_IPV6 堆疊類型。

    • 啟用 BGP 工作階段,以便宣告 IPv6 路由,而下一個躍點則是 IPv6 位址。

Cloud Router 不會傳回 ICMPv6 連線偵測回應

系統不支援使用 ICMPv6 ping 進行 Cloud Router BGP 位址。如要測試 Cloud Router BGP 位址的第 3 層連線,請使用 ICMPv4 ping

後續步驟