Quggaを使用して2つのルーターにBGPをセットアップしました。アドバタイズしているIPブロックを保持しているインターフェイスをダウンすると、zerbaはそのルートをテーブルから削除しますが、bgpdはアドバタイズを続けます。隣接するBGPテーブルと、アドバタイズを実行しているルーターからのshow ip bgp nei 172.16.14.1 ad
コマンドを介してアドバタイズされていることがわかります。このインターフェイスは、アドバタイズされている完全なルートを保持するため、集約はありません。
誰もが以前にこれに遭遇したように...それはルーティングプロトコルの主な機能を根本的に壊しているようです...
更新:
ルーターには、BGPテーブルとして次のものがあります。
so-rt1# show ip bgp
BGP table version is 0, local router ID is 172.16.14.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 0.0.0.0 12.12.12.12 200 0 5555 i
* 15.15.15.0/24 172.16.14.2 0 100 0 i
*> 0.0.0.0 0 32768 i
Total number of prefixes 2
私が発表する15.15.15.0/24ネットワークの場合、直接接続ルート(最後のエントリ)が優先されるルートです。 15.15.15.0/24を保持するインターフェイスをシャットダウンすると、直接接続されたルートがBGPテーブルから削除されないだけでなく、それでも優先ルートになります。したがって、そのインターフェイスをシャットダウンした後、BGPテーブルはまったく同じままです。
Zebraは、直接接続された15.15.15.0/24ルートが存在しないことを認識しています。インターフェイスが起動しているときにshow ip route
で表示され、シャットダウンするとエントリが失われます。したがって、私が思う問題は、BGPテーブルがゼブラからの更新を取得していないということです。
質問を正しく理解していれば、ネットワークへのIGP(またはローカル)ルートがあり、BGPを介してアナウンスします。ルートがIGP(またはローカル)で消えたら、BGPにルートをプルさせます。
その場合、あなたは間違ったことをしている(TM)、そしてQuaggaはあなたにこれを簡単にさせないでしょう。ネットワークコマンドのマニュアルから:
BGP: network A.B.C.D/M
This command adds the announcement network.
router bgp 1
network 10.0.0.0/8
This configuration example says that network 10.0.0.0/8 will be announced
to all neighbors. Some vendors' routers don't advertise routes if they
aren't present in their IGP routing tables; bgp doesn't care about IGP
routes when announcing its routes.
これは、IGP情報をBGPでエクスポートすると簡単に取得できるフラッピングが増加するためです。インターネット上にはすでに十分なルートチャーンがあり、IGPからBGPにルーティング情報を再配布することは悪い習慣と考えられています。 BGPはIGPではないため、IGPを1つとして悪用しないでください;)
また、この特定のルートがなくなった場合に分割ASの状況に陥らない限り、インターネットからルートをプルするための良いケースは実際にはわかりません(フラッピングが発生し、数時間または数日湿るリスクがあります)。そして、これが引き起こす可能性のある奇妙なルーティングの問題から身を守りたいと思っています。 (この場合、ルーターをオンラインのままにするかどうかを検討する必要があります。Split-ASの状況は厄介です!)
正しい解決策(TM)は、IGPが何をしているかに関係なく、ルートをできるだけ安定させたままにすることです。ネットワークへの接続が失われた場合は、トラフィックをローカルにドロップするだけです。ネットワークへのIGPルートがダウンしている場合は、トランジットプロバイダーにループバックしないようにしてください。
基本的なルールは、「インターネット全体が知っている必要があるものでない限り、BGPアナウンスを変更しない」ことです。 IGPがバタバタしていることは、他のインターネットが気にしていることではありません。
編集:
私が理解していることから、あなたのネットワークは次のようになります。
Provider (AS 5555) --------------------- Provider (AS 5555)
(12.12.12.12) |
| eBGP |eBGP
| |
Router1---------15.15.15.0/24---------------Router2
172.16.14.1 172.16.14.2
| iBGP |
--------------------------------------------
そして、あなたの問題は、Router1のインターフェースを15.15.15.0/24に向けて停止した場合、ネットワークのアナウンスを停止して、データを172.16.14.2にシフトすることです。ピアリングポリシーに対するこのタイプの自動変更は、通常行うことではなく、私が知る限り、Quaggaでサポートされているものではありません。代わりに、IGPを介してデータを再ルーティングし、ピアリングを静的に保つことが期待されます。ピアリングに変更を加える場合は、MED(MULTI_EXIT_DISC)を変更して、トラフィックを適切なルーターに誘導します。
15.15.15.0/24を削除すると、ASが分割され、追加の障害モードが発生することに注意してください。いずれも適切ではありません。