IP : ボーダー ゲートウェイ プロトコル(BGP)

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

2015 年 11 月 25 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2010 年 6 月 10 日) | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

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

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

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

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

  • 他の内部 BGP(iBGP)または外部 BGP(eBGP)ピアで学習した BGP ルートを伝搬します。

    注: BGP ピアから受信した最適パスのみが伝搬されます。 最適パスの選択に関する情報については、「BGP で最適パスを選択するアルゴリズム」を参照してください。

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

前提条件

要件

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

使用するコンポーネント

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

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

表記法

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

基本的なネットワークステートメントを使用してアナウンスされるルート

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

  • オート サマリーが有効

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

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

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

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

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

トラブルシューティングの手順

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

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 から学習するかスタティック設定を介して、ネットワーク 6.0.0.0/8 のコンポーネント ルートが R101 に存在することを確認します。 例では、スタティック ルートは 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 で変更内容を有効にし、R102 にネットワーク 6.0.0.0/8 のアナウンスを開始するには、BGP 近隣ルータをクリアーするかピアに対してソフト リセットを行う必要があります。 この例では、変更を有効にするためのピア 10.10.10.2 へのソフト リセット発信を示します。 ソフト リセットの詳細は、『BGP の設定』の「ルーティング ポリシー変更の管理」セクションを参照してください。

    R101# clear ip bgp 10.10.10.2 [soft] out
    R101#
  7. BGP で変更内容を有効にし、R102 にネットワーク 6.0.0.0/8 のアナウンスを開始するには、BGP 近隣ルータをクリアーするかピアに対してソフト リセットを行う必要があります。 この例では、変更を有効にするためのピア 10.10.10.2 へのソフト リセット発信を示します。 ソフト リセットの詳細は、『BGP の設定』の「 ルーティング ポリシー変更の管理>」セクションを参照してください。

    R101# show ip bgp | include 6.0.0.0 
    *> 6.0.0.0 0.0.0.0 0 32768 i
    
  8. 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
  9. 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 にアナウンスすることができません。

/image/gif/paws/19345/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#show ip bgp 172.16.10.0/24
    R101# BGP routing table entry for 172.16.10.0/24, version 24480684
          Bestpath Modifiers: deterministic-med
          Paths: (4 available, best #3)
          Not advertised to any peer   <---- not advertised to any peers

    上記の出力は、R101 から R102 に 192.168.32.0/22 がアナウンスされていないことを示します。

  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 で変更内容を有効にし、R102 にネットワーク 6.0.0.0/8 をアナウンスするには、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 での経路集約について』を参照してください。

トラブルシューティングの手順

/image/gif/paws/19345/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 ルーティング テーブル内に存在する必要があります。 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 にアナウンスできないことが示されています。

/image/gif/paws/19345/bgp_noad_04.gif

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

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

    上記の出力は、R101 から R102 にプレフィクス 130.130.130.0/24 がアナウンスされていないことを示します。 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