はじめに
このドキュメントでは、ボーダー ゲートウェイ プロトコル(BGP)ルータが BGP ルートをピアにアナウンスしない場合のトラブルシューティング方法について説明します。
前提条件
要件
このドキュメントに関する固有の要件はありません。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。ただし、このドキュメントに示されている出力は、Cisco IOS® ソフトウェアバージョン 12.2(24)a を実行する Cisco 2500 シリーズ ルータに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
ドキュメントの表記法の詳細は、「シスコ テクニカル ティップスの表記法」を参照してください。
背景説明
このドキュメントでは、ボーダー ゲートウェイ プロトコル(BGP)ルータが BGP ルートをピアにアナウンスしない場合のトラブルシュート状況に役立つ体系的なアプローチを提示します。
BGP テーブルにプレフィクスを追加してピアにアナウンスする方法は、次のようにいくつかあります。
-
ルータ BGP で基本の network コマンドを発行する。この方法は、Autonomous System(AS; 自律システム)から BGP ルートを発信するために使用されます。詳細については、「BGP ケーススタディ 1」の network コマンドのセクションを参照してください。
-
Interior Gateway Protocol(IGP; 内部ゲートウェイ プロトコル)またはスタティック設定を再配布します。
-
他の内部 BGP(iBGP)または外部 BGP(eBGP)ピアで学習した BGP ルートを伝搬します。
注:BGP ピアから受信した最適パスのみが伝播されます。最適パスの選択に関する情報については、「BGP で最適パスを選択するアルゴリズム」を参照してください。
-
aggregate-address コマンドを発行する。詳細は、『BGP での経路集約について』を参照してください。
基本的なネットワークステートメントを使用してアナウンスされるルート
ルートが基本的なnetwork文によってアナウンスされるとき、networkコマンドの動作は、オートサマリーがイネーブルかディセーブルかによって異なります。オートサマリーが有効な場合、ローカルに発信された BGP ネットワーク(ネットワーク x.x.x.x)はクラスフル境界にまとめられます(デフォルトでは、BGP でオートサマリーが有効になっています)。サブネットがルーティング テーブル内に存在し、次の 3 つの条件が満たされる場合、ローカル ルーティング テーブル内にあるそのクラスフル ネットワークのあらゆるサブネット(コンポーネント ルート)が BGP に対して、クラスフル ネットワークを BGP テーブルにインストールするよう促します。
オート サマリーがディセーブルになっている場合、BGP テーブルにローカルで挿入されたルートはクラスフルな境界にまとめられません。
たとえば、次の条件が満たされる場合、BGP は、クラスフル ネットワーク 10.0.0.0 マスク 255.0.0.0 を BGP テーブルに挿入します。
これらの条件がすべて満たされない場合、BGP がエントリを BGP テーブルにインストールするのは、IP ルーティング テーブル内に完全な一致がある場合だけです。
次の手順でトラブルシュートを行います
R101 で auto-summary が有効になっている場合、ルータはクラスフルネットワーク 172.16.0.0/16 を R102 にアナウンスできません。
ルータがアナウンスできません
-
R101 が 172.16.0.0/16 を R102 にアナウンスするかどうかを確認します。ここに示す出力では、R101 が 172.16.0.0/16 を R102 にアナウンスしないことが確認できます。
R101#show ip bgp neighbors 10.10.10.2 advertised-routes
Total number of prefixes 0
R101#
-
設定が実行されているかどうかを確認します。この例では、R101 はクラスフル ネットワーク文で設定されることを示しています。オート サマリーは、このシナリオのために使われた Cisco IOS ソフトウェア バージョンではデフォルトでイネーブルになっています。
R101#show running-config | begin bgp
router bgp 1
network 172.16.0.0
neighbor 10.10.10.2 remote-as 2
[...]
-
ルーティングテーブルに network172.16.0.0/16 のコンポーネントルート(クラスフルルートまたはサブネットルート)があるかどうかを確認します。
R101#show ip route 172.16.0.0 255.255.0.0 longer-prefixes
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override, p - overrides from PfR
Gateway of last resort is not set
R101#sh ip route 172.16.0.0 255.255.0.0 longer-prefixes
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override, p - overrides from PfR
Gateway of last resort is not set
R101#
-
R101 IP ルーティングテーブルにはコンポーネントルート(クラスフルルートまたはサブネットルート)がないため、ネットワーク 172.16.0.0 は BGP テーブルにインストールされません。network コマンドで設定されるプレフィクスが BGP テーブルにインストールされる最低条件は、IP ルーティング テーブルにコンポーネント ルートを持つことです。そのため、R101 にネットワーク 172.16.0.0/16 のコンポーネントルートがあることを確認します。これは、ルートが IGP または静的設定を介してそれを学習した場合に実行されます。例では、スタティック ルートは null 0 に設定されています。
R101(config)#ip route 172.16.10.0 255.255.255.0 null0 200
-
IP ルーティング テーブルが 172.16.0.0/16 用のコンポーネント ルートを持つとすぐに、BGP はクラスフル ネットワークを BGP テーブルにインストールします。
R101#show ip route 172.16.0.0 255.255.0.0 longer-prefixes
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override, p - overrides from PfR
Gateway of last resort is not set
172.16.0.0/24 is subnetted, 1 subnets
S 172.16.10.0 is directly connected, Null0
BGP で変更を有効にし、ネットワーク 172.16.0.0/16 から R102 へのアナウンスを開始するには、BGP ネイバーを消去するか、ピアへのソフトリセットを行う必要があります。この例では、変更を有効にするためのピア 10.10.10.2 へのソフト リセット発信を示します。
R101#clear ip bgp 10.10.10.2 soft out
R101#
-
show ip bgp コマンドは、クラスフル ネットワーク 172.16.0.0/16 が BGP に挿入されたことを示します。
R101#show ip bgp | include 172.16.0.0
*> 172.16.0.0 0.0.0.0 0 32768 i
R101#
-
R101 がルートを R102 にアナウンスすることを確認します。
R101#show ip bgp neighbors 10.10.10.2 advertised-routes | include 172.16.0.0
*> 172.16.0.0 0.0.0.0 0 32768 i
注:auto-summary を無効にすると、ルーティングテーブル内のルートと完全に一致する場合、BGP はネットワーク 172.16.0.0/16 をインストールします。サブネットルートは存在するものの、ルーティングテーブル内のルート(172.16.0.0/16)と完全に一致しない場合、BGP は BGP テーブルにネットワーク 172.16.0.0/16 をインストールしません。
マスクを含むネットワークステートメントを使用してアナウンスされるルート
メジャー ネット境界(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 にアナウンスすることができません。
ネットワーク 172.16.10.0/24 を R102 にアナウンスできません
-
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
この出力では、R101 が 192.168.32.0/22 を R102 にアナウンスしていないことが確認できます。
2. 設定が実行されているかどうかを確認します。
R101#show run | begin bgp
router bgp 1
network 172.16.10.0
注:ネットワーク 172.16.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
-
このルートが BGP ルーティング テーブル内にあるかどうかを確認します。
R101#show ip bgp | include 172.16.10.0
R101#
ネットワーク 172.16.10.0/24 は、BGP テーブルには存在しません。
-
IP ルーティング テーブルに正確なルートが存在するかどうかを確認します。表示された出力は、ルーティング テーブルに正確なルートが存在しないことを示します。
R101#show ip route 172.16.10.0 255.255.255.0
% Network not in table
R101#
-
発信させるルートをどれにするのかを決定します。次に、IGP を修正するか、静的ルートを設定します。
R101(config)#ip route 172.16.10.0 255.255.255.0 null0 200
-
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
-
BGP テーブルにルートが存在することを確認します。
R101#show ip bgp | include 172.16.10.0
*> 172.16.10.0/24 0.0.0.0 0 32768 i
-
BGP で変更を有効にし、ネットワーク 172.16.10.0/24 から R102 へのアナウンスを開始するには、BGP ネイバーを消去するか、ピアへのソフトリセットを行う必要があります。この例は、ピア 10.10.10.2 へのソフト リセット発信を使用します。
R101#clear ip bgp 10.10.10.2 soft out
-
ルートが 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 でのルート集約について」を参照してください。
この問題のトラブルシュートを行うには、次の手順を使用します
aggregate-address コマンドを使用してアナウンスされるルート
このネットワーク ダイアグラムで、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
-
R101 が 192.168.32.0/22 を R102 にアナウンスしていないことを確認します。
R101#show ip bgp neighbors 10.10.10.2 advertised-routes | include 192.168.32.0
R101#
-
設定が実行されているかどうかを確認します。
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 テーブルにコンポーネント ルートを確実に含める必要があります。
-
次の例では、コンポーネントルート192.168.33.0がnetworkコマンドによってBGPテーブルにインストールされています。
R101(config)#router bgp 1
R101(config-router)#network 192.168.33.0
-
コンポーネント ルートが 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 引数が原因でコンポーネントルートが抑制されることを意味します。
-
集約が R102 にアナウンスされることを確認します。
R101#show ip bgp neighbors 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 で学習したルートへのルートがあり、ルータは iBGP ルートを eBGP ピアにアナウンスします。それ以外の場合、ルータはそのルートを IGP と同期していないものとして扱い、アドバタイズしません。 BGP が IGP で iBGP ルート検証を行わないようにするには、ルータ BGP で no synchronization コマンドを使用して同期を無効にします。詳細は、『BGP ケース スタディ』の「同期」セクションを参照してください。
次の手順でトラブルシュートを行います
次の図では、R101 は iBGP を介して R103 からプレフィックス 10.130.130.0/24 を学習しており、それを eBGP ピア R102 にアナウンスできません。
R101 は eBGP ピア R102 にアナウンスできません。
-
まず、R101 をチェックします。
R101#show ip bgp neighbors 10.10.20.2 advertised-routes | include 10.130.130.0
R101#
この出力は、R101 がプレフィックス 10.254.255.255/24 を R102 にアナウンスしていないことを確認しています。
R101 にある BGP テーブルを確認します。
R101#show ip bgp 10.130.130.0 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
* i10.130.130.0/24 10.10.20.3 0 100 0 i
R101#
ネットワーク 10.130.130.0/24 は、BGP テーブル内に存在します。しかしネットワーク 10.130.130.0/24 には、最適ルートのステータスコード(>)がありません。これは、BGP で最適パスを選択するアルゴリズムがこのプレフィクスを最適なパスとして選択しなかったことを意味します。ベストパスのみが BGP ピアにアナウンスされるため、ネットワーク 10.130.130.0/24 は R102 にアナウンスされません。次に、BGP パス選択基準がこのネットワークを最適なルートとして選択しなかった理由をトラブルシューティングする必要があります。
-
show ip bgp prefix コマンドの出力を検討して、プレフィクスが最適なルートとして選択されず、また IP ルーティング テーブルにもインストールされなかったことの詳細を探ります。
R101#show ip bgp 10.130.130.0
BGP routing table entry for 10.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 (10.130.130.3)
Origin IGP, metric 0, localpref 100, valid, internal, not synchronized
出力は、プレフィックス 10.130.130.0/24 が同期されていないことを示しています。
注:Cisco Bug ID CSCdr90728(BGPパスが同期されないものとしてマークされていない)を特定する前は、show ip bgp prefix コマンドはパスが同期されないものとしてマークされていることを示していませんでした。この問題は、Cisco IOS ソフトウェア リリース 12.1(4) 以降では修正されています。
2. BGP 設定が実行されているかどうかを確認します。
この出力は、BGP 同期が有効になっていることを示しています。Cisco IOS ソフトウェアでは、デフォルトで 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
3. 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
60 秒ごとに BGP テーブルをスキャンし、BGP パスの選択基準に基づいて決定を行う BGP スキャナの次回の実行時に、ネットワーク 10.130.130.0 がインストールされます(同期が無効になっているため)。つまり、ルートのインストールにかかる最長時間は 60 秒ですが、no synchronization コマンドがいつ設定されたか、および BGP スキャナの次のインスタンスがいつ発生するかによって、これよりも短くなる可能性があります。そのため、次の検証ステップまで 60 秒待つことをお勧めします。
-
ルートがインストールされていることを確認します。
次の出力では、プレフィックス 10.130.130.0/24 は最適なルートであることが確認されたため、IP ルーティングテーブルにインストールされ、ピア 10.10.10.2 に伝播されます。
R101#show ip bgp 10.130.130.0
BGP routing table entry for 10.254.255.255/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 (10.130.130.3)
Origin IGP, metric 0, localpref 100, valid, internal, best
R101#show ip bgp neighbors 10.10.10.2 advertised-routes | include 10.130.130.0/24
*>i10.130.130.0/24 10.10.20.3 0 100 0 i
redistribute static でアナウンスされるルート
ルータが 2 つのリンクで接続されており、ルートが BGP とフローティング スタティック ルート経由で学習されている場合、フローティング スタティック ルートがルーティング テーブルにインストールされます。これは、BGP ルートに障害が発生して、スタティック ルートが再配布された場合に発生します。BGP ルートがオンラインに戻る場合、ルーティング テーブル内のフローティング スタティック ルートは BGP ルートを反映して変更されることがありません。
この問題は、BGP プロセスで redistribute static コマンドを削除して、BGP ルート経由のフローティング スタティック ルートのプライオリティ設定を回避した場合に解決できます。
関連情報