IP : IP ルーティング

最適ルーティングの実現と BGP メモリ消費の削減

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

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
      背景説明
完全な BGP ルーティング テーブルを受信する BGP ルータ
着信 AS_PATH フィルタ リストを使用して設定された BGP ルータ
メモリ関連の問題のトラブルシューティング
結論
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

この文書では、複数のインターネット サービス プロバイダー(ISP)に接続する企業ネットワークで、高度な最適ルーティングを実現するとともに Border Gateway Protocol(BGP; ボーダー ゲートウェイ プロトコル)ルータのメモリ要件を最小化する方法を説明します。 これは、ISP から完全な BGP ルーティング テーブルを受信する代わりに、ISP およびその直接接続の自律システム(AS)が起源のルートだけを受け入れる AS_PATH フィルタを使用することで実現します。

前提条件

要件

この文書に関する特別な要件はありません。

使用するコンポーネント

この文書は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

表記法

文書表記の詳細については、『シスコ テクニカル ティップスの表記法』を参照してください。

背景説明

このセクションでは、次のネットワーク ダイアグラムを例として使用します。 この例では、着信 BGP アップデートをルータ 1(Router 1)とルータ 2(Router 2)でフィルタリングし、ISP のルートおよび直接接続の AS のルートを受け入れます。 ルータ 1 は ISP-A のルートおよび直接接続の AS である C1 のルートを受け入れます。 同様に、ルータ 2 は ISP-B と C2 のルートを受け入れます。 ISP およびその顧客の AS に属さない残りのネットワークは、企業のルーティング ポリシーに応じて ISP-A または ISP-B に向かうデフォルト ルートに従います。

41a.gif

ISP からの約 100,000 のルートを格納した完全な BGP ルーティング テーブルをルータ 1 で受信する場合のメモリ使用率と、ルータ 1 で着信 AS_PATH フィルタを適用した場合のメモリ使用率を比較観察できます。

注:全供給データを構成する実際のプレフィックスの数は、ここで使用されている数とは異なります。 この文書では例の値が使用されています。 BGP テーブル全体を構成するプレフィックスの数を確認するには、ルート サーバが役立ちます (ルート サーバの詳細については、Traceroute.org を参照してください)。

完全な BGP ルーティング テーブルを受信する BGP ルータ

これはルータ 1 の設定です。

ルータ 1

hostname R1 
 ! 
 router bgp  XX 
  no synchronization 
  neighbor  157.x.x.x  remote-as 701 
  neighbor  157.x.x.x  filter-list 80 out 
 ! 
 ip as-path access-list 80 permit ^$ 
 ! 
 end

show ip bgp summary コマンドの出力には、ISP-A(BGP 隣接ルータ 157.x.x.x)から 98,410 のプレフィックスを受信したことが示されています。

R1# show ip bgp summary
 BGP router identifier 65.yy.yy.y, local AS number XX
 BGP table version is 611571, main routing table version 611571
 98769 network entries and 146299 paths using 14847357 bytes of memory
 23658 BGP path attribute entries using 1419480 bytes of memory
 20439 BGP AS-PATH entries using 516828 bytes of memory
 0 BGP route-map cache entries using 0 bytes of memory
 5843 BGP filter-list cache entries using 70116 bytes of memory
 BGP activity 534001/1904280 prefixes, 2371419/2225120 paths, scan interval 15 secs
 Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
 165.yy.yy.a     4  6xx9   32962  826287   611571    0    0 01:56:13        1
 165.yy.yy.b     4  6xx9   32961  855737   611571    0    0 01:56:12        1
 165.yy.yy.c     4  6xx9  569699  865164   611571    1    0 01:55:39    47885
 157.x.x.x       4   701 3139774  262532   611571    0    0 00:07:24    98410
 

show ip route summary コマンドの出力には、このルーティング テーブルに 80,132 の BGP ルートが組み込まれていることが示されています。

R1# show ip route summary
 IP routing table name is Default-IP-Routing-Table(0)
 Route Source    Networks    Subnets     Overhead    Memory (bytes)
 connected       0           4           256         576
 static          0           1           64          144
 eigrp 6         0           5           768         720
 bgp  XX         80132       18622       6320256     14326656
   External: 87616 Internal: 11138 Local: 0
 internal        854                                 994056
 Total           80986       18632       6321344     15322152
 

次のコマンドでは BGP プロセスが RAM 内で占有するメモリ容量が示されます。

R1# show processes memory | begin BGP
  PID TTY  Allocated      Freed    Holding    Getbufs    Retbufs Process
   73   0  678981156   89816736   70811036          0          0 BGP Router
   74   0    2968320  419750112      61388    1327064        832 BGP I/O
   75   0          0    8270540       9824          0          0 BGP Scanner
                                  70882248 Total BGP
                                  77465892 Total all processes
 

BGP プロセスは約 71 MB のメモリを占有しています。

着信 AS_PATH フィルタ リストを使用して設定された BGP ルータ

この例では、着信フィルタ リストを適用して ISP-A およびその直接接続の AS が起源のルートだけを受け入れます。 この例では、ISP-A が外部 BGP(eBGP)によってデフォルト ルート(0.0.0.0)をアドバタイズしています。そのため、フィルタ リストを通過しないルートは ISP-A へのデフォルト ルートに従います。次に、フィルタ リストの設定を示します。

ルータ 1

hostname R1 
 ! 
 router bgp  XX 
  no synchronization 
  . 
  neighbor 157.x.x.x remote-as 701 
  neighbor 157.x.x.x filter-list 80 out 
  neighbor 157.x.x.x filter-list 85 in
 
 !--- この行は着信 BGP アップデートをフィルタリングします。
  
  ! 
 ip as-path access-list 80 permit ^$ 
 ip as-path access-list 85 permit ^701_[0-9]*$  
 
 !--- AS_PATH フィルタ リストが ISP と直接接続の
 !--- AS のルートをフィルタ処理します。
  
 ! 
 end

次の show ip bgp summary コマンド出力は、ISP-A(隣接ルータ 157.xx.xx.x)から受信した 31,667 のプレフィックスを示しています。

R1# show ip bgp summary
 BGP router identifier 165.yy.yy.y, local AS number XX
 BGP table version is 92465, main routing table version 92465
 36575 network entries and 49095 paths using 5315195 bytes of memory
 4015 BGP path attribute entries using 241860 bytes of memory
 3259 BGP AS-PATH entries using 78360 bytes of memory
 0 BGP route-map cache entries using 0 bytes of memory
 4028 BGP filter-list cache entries using 48336 bytes of memory
 BGP activity 1735069/3741144 prefixes, 4596920/4547825 paths, scan interval 15 secs
 Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
 165.yy.yy.a     4  6319  226694 1787061    92465    0    0 17:31:04        1
 165.yy.yy.b     4  6319  226814 1806986    92465    0    0 19:51:53        1
 165.yy.yy.c     4  6319 1041069 1822703    92465    0    0 19:44:52    17424
 157.xx.xx.x     4   701 14452518  456341    92465    0    0 19:51:37    31667
 

show ip route summary コマンドの出力は、このルーティング テーブルに 27,129 の BGP ルートがあることを示しています。

R1# show ip route summary
 IP routing table name is Default-IP-Routing-Table(0)
 Route Source    Networks    Subnets     Overhead    Memory (bytes)
 connected       0           4           256         576
 static          0           1           64          144
 eigrp 6319      0           6           896         864
 bgp 6319        27129       9424        2339392     5299332
   External: 19134 Internal: 17419 Local: 0
 internal        518                                 602952
 Total           27647       9435        2340608     5903868

BGP プロセスで使用されるメモリは次の出力のとおり、約 28 MB です。

R1# show processes memory | include BGP
  PID TTY  Allocated      Freed    Holding    Getbufs    Retbufs Process
   73   0  900742224  186644540   28115880          0          0 BGP Router
   74   0    5315232  556232160       6824    2478452        832 BGP I/O
   75   0          0   39041008       9824          0          0 BGP Scanner
                                  28132528 Total BGP
                                  34665820 Total all memory

メモリ関連の問題のトラブルシューティング

BGP プロセスで使用されるメモリを確認するには、show processes memory | include bgp コマンドを使用します。 次に、メモリの使用過多に起因する一般的な問題を示します。

  • メモリ割り当てのエラー「%SYS-2-MALLOCFAIL」。 このエラーメッセージに関する詳細については、『メモリ問題のトラブルシューティング』を参照してください。

  • Telnet セッションの拒否。

  • 一部の show コマンドから何も出力されない。

  • 「Low on memory」エラー メッセージが出力される。

  • コンソールにメッセージ「Unable to create EXEC - no memory or too many processes」が出力される。

  • ルータがハングする。または、コンソールがまったく応答しない。 詳細は、『Cisco ルータの CPU 使用率が高い場合のトラブルシューティング』を参照してください。

1 つの BGP ピアからの完全なグローバル BGP ルーティング テーブルを保存するには、ルータに少なくとも 128 MB の RAM があると最適です。 完全な BGP テーブルを受信する Catalyst 6500/6000 では、256 MB RAM 搭載の Multilayer Switch Feature Card 2(MSFC2; マルチレイヤ スイッチ フィーチャ カード 2)を使用して、Cisco Bug ID CSCdt13244登録ユーザ専用)を回避することをお薦めします。 BGP ルートによるメモリ消費は、マルチパスのサポート、ソフト再構成、ピア数、AS_PATH など、アトリビュートの数に依存します。 BGP メモリ要件の詳細については、RFC 1774leavingcisco.com を参照してください。


一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。

Cisco Express Forwarding および distributed Cisco Express Forwarding(CEF; シスコ高速転送機能、dCEF; 分散 CEF)スイッチングの場合、メモリ消費はルーティング テーブルのサイズに依存します。 CEF には主なコンポーネントが 2 つあります。

  • Forwarding Information Base(FIB; 転送情報ベース)

  • 隣接関係テーブル

どちらのテーブルも DRAM メモリに保管されます。 Versatile Interface Processor(VIP)またはラインカードにも、十分な DRAM の空き容量があることを確認してください。 「%FIB-3-FIBDISABLE : Fatal error, slot [#]: no memory」および「%FIB-3-NOMEM」エラー メッセージは、カードのメモリ容量が不十分であることを示します。

dCEF を有効にする前に、VIP またはラインカードを確認することをお薦めします。 メモリの容量を確認するには、次の手順を実行します。

  1. グローバル設定モードで ip cef コマンドを発行して、セントラル CEF を設定します。

    FIB テーブルが作成されるまで待ちます。

  2. show ip cef summary コマンドを使用して、セントラル FIB テーブルのサイズを確認します。

  3. VIP またはラインカードに、同サイズの FIB テーブルを格納するだけの十分な DRAM があるかどうかを判別します。

    show controller vip [slot#] tech コマンドを発行し、show memory summary コマンドの出力を確認します。

完全なインターネット BGP ルーティングを実行する場合は、VIP またはラインカードに少なくとも 128 MB の RAM が搭載されていると最適です。

CEF または dCEF の絡む、メモリ関連問題のトラブルシューティングの詳細については、『Cisco Express Forwarding 関連エラー メッセージのトラブルシューティング』を参照してください。

結論

次の表は、フィルタ リストを実装することによって節約できるメモリ容量を示しています。

 

プレフィックスの数

メモリ消費

フィルタなし

98,410

70,882,248

AS フィルタ

31,667

28,132,528

BGP ルータでは、その隣接ルータの完全な BGP ルーティング テーブル(98,410 ルート)を受信すると、約 71 MB のメモリが消費されます。 着信アップデートに AS_PATH フィルタが適用されると、BGP ルーティング テーブルのサイズは 31,667 ルートまで削減され、メモリ消費量は約 28 MB になります。 メモリ使用の削減率は 60 % を上回り、最適なルーティングが得られます。

Cooperative Association for Internet Data Analysis(CAIDA)が生成した AS Internet Graph leavingciscgifo.com を見れば、一番高い相互接続性を持つ ISP(図の中央に一番近い ISP)を確認できます。 相互接続性が低くなると、AS_PATH フィルタを通過するルートは少なくなり、BGP のメモリ消費もより少なくなります。 しかし、AS_PATH フィルタを設定する場合、デフォルト ルート(0/0)の設定が必要になることに留意してください。 AS_PATH フィルタ リストを通過しないルートは、デフォルト ルートに従います。


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

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


関連情報


Document ID: 12512