web-dev-qa-db-ja.com

クアッガはルートを発表し続けます

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テーブルがゼブラからの更新を取得していないということです。

4
Kyle Brandt

質問を正しく理解していれば、ネットワークへの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が分割され、追加の障害モードが発生することに注意してください。いずれも適切ではありません。

2
pehrs