IP : IP ルーティング

BGP ルートがアドバタイズされない場合のトラブルシューティング

2010 年 6 月 10 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2006 年 7 月 24 日) | フィードバック

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
基本ネットワーク文を使ってアナウンスされるルート
      トラブルシューティング ステップ
マスク付きのネットワーク文を使ってアナウンスされるルート
      トラブルシューティング ステップ
aggregate-address コマンドを使ってアナウンスされるルート
      トラブルシューティング ステップ
iBGP を通じて学習されたルートをアナウンスできない
      トラブルシューティング ステップ
redistribute static でアナウンスされるルート
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

このドキュメントの目的は、Border Gateway Protocol(BGP; ボーダー ゲートウェイ プロトコル)ルータが BGP ルートをピアにアナウンスしない状況におけるトラブルシューティングに役立つ体系的なアプローチを提供することです。

BGP テーブルにプレフィクスを追加してピアにアナウンスする方法は、次のようにいくつかあります。

  • ルータ BGP で基本の network コマンドを発行する。この方法は、Autonomous System(AS; 自律システム)から BGP ルートを発信するために使用されます。詳細は、『BGP ケース スタディ』の「network コマンド」セクションを参照してください。

  • Interior Gateway Protocol(IGP; 内部ゲートウェイ プロトコル)スタティック設定を再配布する。

  • 他の internal BGP(iBGP; 内部 BGP)ピアまたは external BGP(eBGP; 外部 BGP)ピアから学習した BGP ルートを伝播する。

    注:伝播されるのは、BGP ピアから受信した最適パスだけです。最適パス選択の詳細は、『BGP で最適パスを選択するアルゴリズム』を参照してください。

  • aggregate-address コマンドを発行する。詳細は、『BGP での経路集約について』を参照してください。



前提条件

要件

このドキュメントに関する特別な要件はありません。



使用するコンポーネント

このドキュメントは、特定のソフトウェアやハードウェアに限定されるものではありません。ただし、このドキュメントで示されている出力は、Cisco IOS® ソフトウェア バージョン 12.2(24)a が稼働している Cisco 2500 シリーズ ルータに基づくものです。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼動中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。



表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。



基本ネットワーク文を使ってアナウンスされるルート

ルートが基本ネットワーク文を使ってアナウンスされるとき、network コマンドの動作は、オート サマリーがイネーブルであるかディセーブルであるかによって異なります。オート サマリーは、イネーブルになっていると、ローカルから発信された BGP ネットワーク(network x.x.x.x)をクラスフルな境界にまとめます(BGP ではオート サマリーがデフォルトでイネーブルになっています)。サブネットがルーティング テーブル内に存在し、次の 3 つの条件が満たされる場合、ローカル ルーティング テーブル内にあるそのクラスフル ネットワークのあらゆるサブネット(コンポーネント ルート)が BGP に対して、クラスフル ネットワークを BGP テーブルにインストールするよう促します。

  • オート サマリーがイネーブル

  • ルーティング テーブル内のネットワークのクラスフル ネットワーク文

  • そのネットワーク文のクラスフル マスク

オート サマリーがディセーブルになっている場合、BGP テーブルにローカルで挿入されたルートはクラスフルな境界にまとめられません。

たとえば、次の条件が満たされる場合、BGP は、クラスフル ネットワーク 75.0.0.0 マスク 255.0.0.0 を BGP テーブルに挿入します。

  • ルーティング テーブルのサブネットが 75.75.75.0 マスク 255.255.255.0 である。

  • ネットワーク 75.0.0.0 を router bgp コマンドで設定する。

  • オート サマリーがイネーブルになっている。

これらの条件がすべて満たされない場合、BGP がエントリを BGP テーブルにインストールするのは、IP ルーティング テーブル内に完全な一致がある場合だけです。



トラブルシューティング ステップ

R101 でオート サマリーがイネーブルになっているときには、ルータはクラスフル ネットワーク 6.0.0.0/8 を R102 にアナウンスできません。

bgp_noad_01.gif

  1. R101 が 6.0.0.0/8 を R102 にアナウンスするかどうかを確認します。表示される出力は、R101 が 6.0.0.0/8 を R102 にアナウンスしていないことを示します。

    R101# 
    show ip bgp neighbors 10.10.10.2 advertised-routes
    
    R101#
  2. 実行中の設定を確認します。この例では、R101 はクラスフル ネットワーク文で設定されることを示しています。オート サマリーは、このシナリオのために使われた Cisco IOS ソフトウェア バージョンではデフォルトでイネーブルになっています。

    R101# 
    show running-config | begin bgp
    
    router bgp 1
     network 6.0.0.0
     neighbor 10.10.10.2 remote-as 2
     [...]
  3. ルーティング テーブルにネットワーク 6.0.0.0/8 のコンポーネント ルート(クラスフル ルートまたはサブネット ルート)があるかどうかを確認します。

    R101# 
    show ip route 6.0.0.0 255.0.0.0 longer-prefixes 
    
    R101#
  4. R101 IP ルーティング テーブルにはコンポーネント ルート(クラスフル ルートまたはサブネット ルート)がないので、ネットワーク 6.0.0.0 は BGP テーブルにインストールされません。network コマンドで設定されるプレフィクスが BGP テーブルにインストールされる最低条件は、IP ルーティング テーブルにコンポーネント ルートを持つことです。そのため、IGP 経由またはスタティック設定経由のいずれかで学習して、R101 がネットワーク 6.0.0.0/8 用のコンポーネント ルートを必ず持つようにします。例では、スタティック ルートは null 0 に設定されています。

    R101(config)# ip route 6.6.10.0 255.255.255.0 null 0 200
    
  5. IP ルーティング テーブルが 6.0.0.0/8 用のコンポーネント ルートを持つとすぐに、BGP はクラスフル ネットワークを BGP テーブルにインストールします。

    R101# show ip route 6.0.0.0  255.0.0.0 longer-prefixes 
    
    [..]
         6.0.0.0/24 is subnetted, 1 subnets
    S       6.6.10.0 is directly connected, Null0
    
    
  6. BGP への変更を有効にして、ネットワーク 6.0.0.0/8 の R102 へのアナウンスを開始するには、BGP 近接ルータをクリアするか、ピアへのソフト リセットを行う必要があります。この例では、変更を有効にするためのピア 10.10.10.2 へのソフト リセット発信を示します。ソフト リセットの詳細は、『BGP の設定』の「ルーティング ポリシー変更の管理」セクションを参照してください。

    R101# clear ip bgp 10.10.10.2 [soft] out
    R101#
  7. show ip bgp コマンドは、クラスフル ネットワーク 6.0.0.0/8 が BGP に挿入されたことを示します。

    R101# show ip bgp | include 6.0.0.0 
    *> 6.0.0.0 0.0.0.0 0 32768 i
  8. R101 がルートを R102 にアナウンスすることを確認します。

    R101# show ip bgp neighbors 10.10.10.2 advertised-routes | include 6.0.0.0 
    *> 6.0.0.0 0.0.0.0 0 32768 i

    注:オート サマリーがディセーブルになっているときに、BGP は、ルーティング テーブルで正確に一致するルートが存在するときにだけネットワーク 6.0.0.0/8 をインストールします。サブネット ルートは存在するものの、ルーティング テーブルに正確に一致するルート(6.0.0.0/8)がない場合、BGP はネットワーク 6.0.0.0/8 を BGP テーブルにインストールしません。



マスク付きのネットワーク文を使ってアナウンスされるルート

メジャー ネット境界(255.0.0.0、255.255.0.0、または 255.255.255.0)に位置するネットワークにはマスクを含める必要はありません。たとえば、network 172.16.0.0 コマンドは、BGP テーブルにプレフィクス 172.16.0.0/16 を送信するのに十分です。ただし、メジャー ネット境界に位置しないネットワークは、network 172.16.10.0 mask 255.255.255.0 などのマスク付きのネットワーク文にする必要があります。

マスク付きのネットワーク文には、BGP テーブルにインストールされるように、ルーティング テーブル内の正確なルートが必要です。



トラブルシューティング ステップ

R101 は、ネットワーク 172.16.10.0/24 を R102 にアナウンスすることができません。

bgp_noad_02.gif

  1. R101 が 172.16.10.0/24 プレフィクスを R102 にアナウンスしたかどうかを確認します。

    R101# show ip bgp neighbors 10.10.10.2 advertised-routes
    R101#

    前述の出力は、R101 が 192.168.32.0/22 を R102 にアナウンスしていないことを示します。

  2. 実行中の設定を確認します。

    R101# show run | begin bgp
    router bgp 1
      network 172.16.10.0

    注:ネットワーク 172.10.10.0/24 を発信したいと考えているとします。このネットワークは クラス B ネットワーク(255.255.0.0)の境界に位置しません。マスク 255.255.255.0 付きのネットワーク文をそれが動作するように設定する必要があります。

  3. マスク付きのネットワーク文が設定された後、show run コマンドが次に似た出力を示します。

    R101# show run | begin bgp
    router bgp 1
      network 172.16.10.0 mask 255.255.255.0
  4. このルートが BGP ルーティング テーブル内にあるかどうかを確認します。

    R101# show ip bgp | include 172.16.10.0
    R101#

    ネットワーク 172.16.10.0/24 は、BGP テーブルには存在しません。

  5. IP ルーティング テーブルに正確なルートが存在するかどうかを確認します。表示された出力は、ルーティング テーブルに正確なルートが存在しないことを示します。

    R101# show ip route 172.16.10.0 255.255.255.0   
    % Network not in table
    R101#
  6. 発信させるルートをどれにするのかを決定します。次に、IGP を修正するか、スタティック ルートを設定します。

    R101(config)# ip route 172.16.10.0 255.255.255.0 null 0 200
    
  7. IP ルーティング テーブルをチェックします。

    R101# show ip route 172.16.10.0 255.255.255.0 longer-prefixes 
    
    [..]
         172.16.0.0/24 is subnetted, 1 subnets
    S       172.16.10.0 is directly connected, Null0
  8. ルートが BGP テーブル内に存在することを確認します。

    R101# show ip bgp | include 172.16.10.0 
    *> 172.16.10.0/24   0.0.0.0                  0         32768 i
  9. BGP への変更を有効にして、ネットワーク 6.0.0.0/8 の R102 へのアナウンスを開始するには、BGP 近接ルータをクリアするか、ピアへのソフト リセットを行う必要があります。この例は、ピア 10.10.10.2 へのソフト リセット発信を使用します。ソフト リセットの詳細は、『BGP の設定』の「ルーティング ポリシー変更の管理」セクションを参照してください。

    R101# clear ip bgp 10.10.10.2 [soft] out
    
  10. ルートが R102 にアドバタイズされていることを確認します。

    R101# show ip bgp  neighbors 10.10.10.2 advertised-routes | include 172.16.10.0
    *> 172.16.10.0/24   0.0.0.0                  0         32768 i
    


aggregate-address コマンドを使ってアナウンスされるルート

BGP では、aggregate-address address mask コマンドを使って特定のルートの 1 つのルートへの集約ができます。集約は、BGP ルーティング テーブル内に存在するルートに適用されます。これは、IP ルーティング テーブル内に存在するルートに適用される network コマンドとは対照的です。集約は、BGP ルーティング テーブル内に集約アドレスの特定のルートが少なくとも 1 つ以上存在する場合に実行できます。BGP 集約と関連する属性の詳細は、『BGP での経路集約について』を参照してください。



トラブルシューティング ステップ

bgp_noad_03.gif

このネットワーク ダイアグラムで、R101 は集約アドレス 192.168.32.0/22 を R102 にアナウンスできません。ネットワーク 192.168.32.0/22 は、次の 3 つのクラス C アドレス レンジを集約します。

  • 192.168.33.0/24

  • 192.168.35.0/24

  • 192.168.35.0/24

  1. R101 が 192.168.32.0/22 を R102 にアナウンスしていないことを確認します。

    R101# show ip bgp neighbors 10.10.10.2 advertised-routes | include 192.168.32.0 
    R101#
  2. 実行中の設定を確認します。

    router bgp 1
       [..]
       aggregate-address 192.168.32.0 255.255.252.0 summary-only
       neighbor 10.10.10.2 remote-as 2

    R101 は、「summary-only」属性を使用して R102 に集約アドレスだけをアナウンスするように設定されています。

  3. IP ルーティング テーブルをチェックします。

    R101# show ip route 192.168.32.0 255.255.252.0 longer-prefixes 
    [..]
    S    192.168.33.0/24 is directly connected, Null0

    IP ルーティング テーブルには、集約 192.168.32.0/22 のコンポーネント ルートがあります。ただし、集約アドレスをピアにアナウンスするには、コンポーネント ルートが、IP ルーティング テーブルではなく BGP ルーティング テーブル内に存在する必要があります。

  4. コンポーネント ルートが BGP ルーティング テーブル内に存在するかどうかを確認します。

    R101# show ip bgp 192.168.32.0 255.255.252.0 longer
       R101#

    出力は、BGP テーブルにはコンポーネント ルートがないことを示しているので、次の論理的なステップは、コンポーネント ルートを BGP テーブル内に確実に存在させることです。

  5. この例では、コンポーネント ルート 192.168.33.0 が network コマンドを使って BGP テーブルにインストールされています。

    R101(config)# router bgp 1
    R101(config-router)# network 192.168.33.0
    
  6. コンポーネント ルートが BGP テーブル内に存在するかどうかを確認します。

    R101# show ip bgp 192.168.32.0 255.255.252.0 longer-prefixes 
    BGP table version is 8, local router ID is 10.10.20.1
    Status codes:s suppressed, d damped, h history, * valid, > best, i - internal
    Origin codes:i - IGP, e - EGP, ?- incomplete
    
       Network          Next Hop            Metric LocPrf Weight Path
    *> 192.168.32.0/22  0.0.0.0                            32768 i
    s> 192.168.33.0     0.0.0.0                  0         32768 i
    R101#

    この「s」は、コンポーネント ルートが「summary-only」引数のために抑制されたことを意味します。

  7. 集約が R102 にアナウンスされることを確認します。

    R101# show ip bgp n 10.10.10.2 advertised-routes | include 192.168.32.0/22
    *> 192.168.32.0/22  0.0.0.0


iBGP を通じて学習されたルートをアナウンスできない

同期をイネーブルにした BGP ルータは、iBGP を通じて学習されたルートがその IGP 内で確認できない場合、それらのルートを他の eBGP ピアにアドバタイズしません。IGP が iBGP を通じて学習されたルートへのルートを持っていると仮定すると、ルータは、eBGP ピアへの iBGP ルートをアナウンスします。それ以外の場合、ルータはルートを IGP と同期していないものとして扱い、そのルートをアドバタイズしません。ルータ BGP で no synchronization コマンドを使って同期をディセーブルにすることによって、BGP は IGP で iBGP ルートを確認できなくなります。詳細は、『BGP ケース スタディ』の「同期」セクションを参照してください。



トラブルシューティング ステップ

ダイアグラムでは、R101 が、iBGP 経由で R103 からプレフィクス 130.130.130.0/24 を学習し、それを eBGP ピアである R102 にアナウンスできないことが示されています。

bgp_noad_04.gif

  1. まず、R101 をチェックします。

    R101# show ip bgp neighbors 10.10.20.2 advertised-routes | include 130.130.130.0
    R101#

    前述の出力は、R101 がプレフィクス 130.130.130.0/24 を R102 にアナウンスしていないことを示しています。R101 にある BGP テーブルを確認します。

    R101# show ip bgp 130.130.130 255.255.255.0 longer
    BGP table version is 4, local router ID is 10.10.20.1
    Status codes:s suppressed, d damped, h history, * valid, > best, i - internal
    Origin codes:i - IGP, e - EGP, ?- incomplete
    
       Network          Next Hop            Metric LocPrf Weight Path
    * i130.130.130.0/24 10.10.20.3               0    100      0 i
    R101#

    ネットワーク 130.130.130.0/24 は、BGP テーブル内に存在します。ただし、ネットワーク 130.130.130.0/24 は最適なルート(>)のステータス コードを持っていません。これは、BGP で最適パスを選択するアルゴリズムがこのプレフィクスを最適なパスとして選択しなかったことを意味します。BGP ピアにアナウンスされるのは最適なパスだけなので、ネットワーク 130.130.130.0/24 は R102 にアナウンスされません。次に、BGP パス選択基準がこのネットワークを最適なルートとして選択しなかった理由をトラブルシューティングする必要があります。

  2. show ip bgp prefix コマンドの出力を検討して、プレフィクスが最適なルートとして選択されず、また IP ルーティング テーブルにもインストールされなかったことの詳細を探ります。

    R101# show ip bgp 130.130.130.0
    BGP routing table entry for 130.130.130.0/24, version 4
    Paths:(1 available, no best path)
      Not advertised to any peer
      Local
        10.10.20.3 from 10.10.20.3 (130.130.130.3)
          Origin IGP, metric 0, localpref 100, valid, internal, not synchronized

    出力は、プレフィクス 130.130.130.0/24 が同期化されていないことを示しています。

    注:バグ CSCdr90728(「BGP paths are not marked as not synchronized(BGP パスは同期されないものとしてマーキングされない)」)を特定する前に、show ip bgp prefix コマンドはパスが同期されないものとしてマーキングされていることを示しませんでした。この問題は、Cisco IOS ソフトウェア リリース 12.1(4) 以降では修正されています。

  3. 実行中の BGP 設定を確認します。

    R101# show ip protocols 
    Routing Protocol is "bgp 1"
      Outgoing update filter list for all interfaces is not set
      Incoming update filter list for all interfaces is not set
      IGP synchronization is enabled
      Automatic route summarization is disabled
      Neighbor(s):
        Address          FiltIn FiltOut DistIn DistOut Weight RouteMap
        10.10.10.2                                           
        10.10.20.3                                           
      Maximum path: 1
      Routing for Networks:
      Routing Information Sources:
        Gateway         Distance      Last Update
        10.10.20.3           200      01:48:24
      Distance:external 20 internal 200 local 200

    前述の出力は、BGP 同期がイネーブルになっていることを示しています。Cisco IOS ソフトウェアでは、デフォルトで BGP 同期がイネーブルになっています。

  4. 同期をディセーブルにするように BGP を設定します。ルータ BGP で no synchronization コマンドを発行します。

    R101(config)# router bgp 1
    
    R101(config-router)# no synchronization 
    
    R101# show ip protocols 
    
    Routing Protocol is "bgp 1"
      Outgoing update filter list for all interfaces is not set
      Incoming update filter list for all interfaces is not set
      IGP synchronization is disabled
      Automatic route summarization is disabled
      Neighbor(s):
        Address          FiltIn FiltOut DistIn DistOut Weight RouteMap
        10.10.10.2                                           
        10.10.20.3                                           
      Maximum path: 1
      Routing for Networks:
      Routing Information Sources:
        Gateway         Distance      Last Update
        10.10.20.3           200      01:49:24
      Distance:external 20 internal 200 local 200

    BGP テーブルを 60 秒ごとにスキャンして BGP パス選択基準をベースにして決定を行う BGP スキャナの次回の実行中に、ネットワーク 130.130.130.0 がインストールされます(同期がディセーブルになっているため)。これは、ルートをインストールするための最大時間が 60 秒であるか、それよりも短いことが、no synchronization コマンドが設定されたときと、BGP スキャナの次のインスタンスが発生したときに従って決定されることを意味しています。そのため、最適なのは、確認の次のステップに移る前に 60 秒間待つことです。

  5. ルートがインストールされていることを確認します。

    出力では、プレフィクス 130.130.130.0/24 が最適なルートであることが示されています。そのため、それは IP ルーティング テーブルにインストールされ、ピア 10.10.10.2 に伝播されます。

    R101# show ip bgp 130.130.130.0
    BGP routing table entry for 130.130.130.0/24, version 5
    Paths:(1 available, best #1, table Default-IP-Routing-Table)
      Advertised to non peer-group peers:
      10.10.10.2 
      Local
        10.10.20.3 from 10.10.20.3 (130.130.130.3)
          Origin IGP, metric 0, localpref 100, valid, internal, best
    
    R101# show ip bgp neighbors 10.10.10.2 advertised-routes | include 130.130.130.0/24
    *>i130.130.130.0/24 10.10.20.3               0    100      0 i


redistribute static でアナウンスされるルート

ルータが 2 つのリンクで接続されており、ルートが BGP とフローティング スタティック ルート経由で学習されている場合、フローティング スタティック ルートがルーティング テーブルにインストールされます。これは、BGP ルートに障害が発生して、スタティック ルートが再配布された場合に発生します。BGP ルートがオンラインに戻る場合、ルーティング テーブル内のフローティング スタティック ルートは BGP ルートを反映して変更されることがありません。

この問題は、BGP プロセスで redistribute static コマンドを削除して、BGP ルート経由のフローティング スタティック ルートのプライオリティ設定を回避した場合に解決できます。




関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報




Document ID: 19345