BGP ルートとルート選択のトラブルシューティング

このガイドでは、ルートの選択、ルートの伝播、ルートの指標など、BGP ルートに関連する問題のトラブルシューティングについて説明します。

他のトラブルシューティング情報については、以下をご覧ください。

IPv6 BGP セッションは確立されるが、IPv4 ルートが交換されない

  1. VLAN アタッチメントまたは HA VPN ゲートウェイのスタックタイプが IPV4_IPV6 であることを確認します。VLAN アタッチメントのスタックタイプが正しくない場合は、VLAN アタッチメントを修正します。HA VPN ゲートウェイの場合は、HA VPN ゲートウェイとそのトンネルを再作成します。

  2. Cloud Router が正しく構成されていることを確認します。次のコマンドを実行します。

    gcloud compute routers describe ROUTER-NAME
    

    出力で、次の値を確認します。

    • bgpPeers.enableIpv4true
    • 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 が配置されているリージョン。

出力は次のようになります。routeStatusactive に設定されていることを確認します。

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 Logging にエラー メッセージが表示されます。このメッセージを表示する高度なクエリを作成する方法については、Cloud Router の Logging のドキュメント内の関連するクエリをご覧ください。
指標

次の指標を使用して、現在の割り当ての空き容量と使用量を確認することもできます。指標の先頭には router.googleapis.com/dynamic_routes/learned_routes/ が付加されます。

  • used_unique_destinations

    この VPC ネットワークで使用されている一意の宛先の数。グローバル動的ルーティングが有効になっている場合、この指標にはグローバルとリージョンの両方の使用状況が表示されます。

  • unique_destinations_limit

    この VPC ネットワークでアドバタイズすることが許可されている一意の宛先の数。グローバル動的ルーティングが有効になっている場合、この指標にはグローバルとリージョンの両方の割り当てが表示されます。

  • any_dropped_unique_destinations

    この VPC ネットワークに、ルート割り当ての一つまたは両方を超過したことによってドロップされた宛先があるかどうかを示します。

これらの指標は、gce_network_region モニタリング対象リソースを通じて取得できます。Cloud Router の指標とそれらの指標を表示する方法の詳細については、ログと指標の表示の指標セクションをご覧ください。

問題を解決する

ルートの割り当ての問題を解決するには、次の操作を行います。ルートの数が使用可能な割り当てを大幅に超えている場合は、両方を行うと効果があります。

  • オンプレミス ルーターを構成して、エクスポートするルートを要約し、それらのルートがより少ない宛先(CIDR)をアドバタイズするようにする。
  • サポートにお問い合わせください。サポートはお客様と協力し、割り当ての引き上げを行うことができます。

学習したルート(オンプレミス ネットワークからのルート)が他の VPC ネットワークに伝播されない

単一の Cloud Router では、ある BGP ピアから他の BGP ピア(他の VPC ネットワーク内の Cloud Router を含む)に学習したルートを再アドバタイズできません。

たとえば、次のハブとスポークのトポロジでは、Cloud Router が複数の VPC ネットワーク間のルート アドバタイズをサポートできません。

Cloud Router のハブとスポーク。
Cloud Router のハブとスポーク(クリックして拡大)

この場合、同じ VPC ネットワークを共有する Cloud Router 間に iBGP セッションはありません。Cloud Router は、VPC サブネットとカスタム構成ルートのみをアドバタイズします。Cloud Router は、VPC ネットワークからの動的ルートをアドバタイズしません。

Google Cloud のネットワーク トポロジに関する推奨事項については、VPC 設計のためのベスト プラクティスとリファレンス アーキテクチャをご覧ください。

さらに、Google Cloud でハブ アンド スポーク トポロジを構築して管理するには、Network Connectivity Center を使用できます。

IPv6 トラフィックがルーティングされない

IPv6 ホストに接続する際に問題が発生した場合は、次の操作を行います。

  1. IPv4 ルートが正しくアドバタイズされていることを確認します。最初に IPv4 トラフィックを確認することで、一般的なネットワークの問題を除外できます。IPv4 ルートがアドバタイズされない場合は、このドキュメントに記載している一般的なトラブルシューティング手順を実施してください。

  2. ファイアウォール ルールを調べて、VPC ネットワークとオンプレミス ネットワーク間で IPv6 トラフィックが許可されていることを確認します。

  3. 学習したルートの利用可能な割り当てを超過したかどうかを判断します。学習したルートの割り当てを超過すると、IPv4 プレフィックスの前に IPv6 プレフィックスがドロップされます。割り当てと上限を確認するをご覧ください。

  4. IPv6 構成を必要とするすべてのコンポーネントが正しく構成されていることを確認します。

    • VPC サブネットが、IPV4_IPV6 スタックタイプを使用するように構成されている。

    • VPC サブネットの --ipv6-access-typeINTERNAL に設定されている。

    • サブネット上の Compute Engine VM が IPv6 アドレスで構成されている。

    • HA VPN ゲートウェイまたは Dedicated Interconnect の VLAN アタッチメントが、IPV4_IPV6 スタックタイプを使用するように構成されている。

    • BGP セッションで IPv6 ルートのアドバタイズが有効になっており、ネクストホップが IPv6 アドレスである。

Cloud Router が ICMPv6 ping レスポンスを返さない

ICMPv6 ping は、Cloud Router BGP アドレスではサポートされていません。Cloud Router BGP アドレスのレイヤ 3 接続をテストするには、ICMPv4 ping を使用します。

次のステップ