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

BGP でのルート集約について

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


目次


概要

Border Gateway Protocol(BGP; ボーダー ゲートウェイ プロトコル)では、aggregate-address address mask [as-set] [summary-only] [suppress-map map-name] [advertise-map map-name] [attribute-map map-name] コマンドにより、特定の複数経路を 1 つの経路に集約することができます。 引数を使用せずに aggregate-address コマンドを発行すると、個別の経路のアトリビュート(AS_PATH やコミュニティなど)が継承されないため、詳細な設定が失われる原因になります。 このドキュメントでは、aggregate-address コマンドを使用する際にさまざまなアトリビュートを操作する方法と、その伝搬を促す方法を説明しています。

前提条件

要件

次の項目に関する知識があることが推奨されます。

使用するコンポーネント

このドキュメントは、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。 ただし、この資料の設定は Cisco IOS によってテストされましたか。 ソフトウェア リリース 12.2(28)。

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

表記法

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

ネットワーク構成図

/image/gif/paws/5441/aggregation1.gif

as-set 引数を使用しない集約

as-set 引数を使用すると、Autonomous System(AS; 自律システム)の数学的集合を持つ集約アドレスが作成されます。 この as-set 引数では、すべての個別経路の AS_PATH アトリビュートが要約されます。 次の設定例を使用すると、この機能と、BGP によるループの検出と回避においてこの引数がどのように役立つのかを調べることができます。

ルータ A
Current configuration: 

 hostname RouterA 
 ! 
 interface Serial1 
  ip address 2.2.2.2 255.0.0.0 
 !  
interface Loopback0
  ip address 160.20.1.1 255.255.0.0
 !
 router bgp 100 
  network 160.20.0.0 

!--- Router A advertises network 160.20.0.0/16.      

  neighbor 2.2.2.1 remote-as 300 
 ! 
 end

ルータ B
Current configuration: 

 hostname RouterB 
 ! 
 interface Serial0 
  ip address 3.3.3.3 255.0.0.0 
 ! 
interface Loopback0
  ip address 160.10.1.1 255.255.0.0
 !
 router bgp 200 
  network 160.10.0.0 

!--- Router B advertises network 160.10.0.0/16.      

  neighbor 3.3.3.1 remote-as 300 
 ! 
 end

ルータ C
Current configuration: 

 hostname RouterC 
 ! 
 interface Serial0 
  ip address 2.2.2.1 255.0.0.0 
 ! 
 interface Serial1 
  ip address 3.3.3.1 255.0.0.0 
 ! 
 interface Serial2 
  ip address 4.4.4.1 255.0.0.0 
 ! 
 router bgp 300 
  neighbor 2.2.2.2 remote-as 100 
  neighbor 3.3.3.3 remote-as 200 
  neighbor 4.4.4.4 remote-as 400 
  aggregate-address 160.0.0.0 255.0.0.0 summary-only  

!--- The network is summarized, and Router C only
!--- advertises 160.0.0.0/8.

 ! 
 end  

ルータ D
Current configuration: 

 hostname RouterD
 ! 
 interface Serial0 
  ip address 4.4.4.4 255.0.0.0 
 ! 
 router bgp 400 
  neighbor 4.4.4.1 remote-as 300                     
 ! 
 end 

Router C(AS-300)では、AS-100 からの経路 160.20.0.0/16 と AS-200 からの経路 160.10.0.0/16 が集約されます。 この操作はルータ D にだけルータ C. Router C の summary-only 引数をアナウンスする集約 160.0.0.0/8 を設定したので発生します。 集約 160.0.0.0/8 は、Classless Interdomain Routing(CIDR; クラスレス ドメイン間ルーティング)の経路です。 より具体的な経路である 160.10.0.0/16 および 160.20.0.0/16 は、次に示す Router C の BGP テーブルのように抑制されます。

RouterC# 
show ip bgp
 
BGP table version is 6, local router ID is 4.4.4.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
*> 160.0.0.0/8      0.0.0.0                            32768 i
s> 160.10.0.0       3.3.3.3                  0             0 200 i
s> 160.20.0.0       2.2.2.2                  0             0 100 i

ルータ D. Observe の BGPテーブルはアグリゲートルートのパス情報ここにあります:

RouterD# 
show ip bgp

BGP table version is 6, local router ID is 4.4.4.4
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
*> 160.0.0.0/8      4.4.4.1                                0 300 i

集約経路 160.0.0.0/8 は、発信元コード IGP を持つ AS-300 から発信されたものと見なされます。 この経路では、AS-200 の 160.10.0.0/16 と AS-100 の 160.20.0.0/16 の個別のプレフィクスに関する特定の AS_PATH 情報がすべて失われています。

as-set 引数を使用した集約

次に、Router C 上の aggregate-address コマンドで as-set 引数を設定します。 新しい設定を次に示します。

ルータ C
Current configuration: 

 hostname RouterC 
 ! 
 interface Serial0 
  ip address 2.2.2.1 255.0.0.0 
 ! 
 interface Serial1 
  ip address 3.3.3.1 255.0.0.0 
 ! 
 interface Serial2 
  ip address 4.4.4.1 255.0.0.0 
 ! 
 router bgp 300 
  neighbor 2.2.2.2 remote-as 100 
  neighbor 3.3.3.3 remote-as 200 
  neighbor 4.4.4.4 remote-as 400 
  aggregate-address 160.0.0.0 255.0.0.0 summary-only as-set

!--- With the as-set configuration command, the aggregate 
!--- inherits the attributes of the more-specific routes.

 ! 
 end 

次に、この引数によって、Router D で show ip bgp 出力がどのような影響を受けるのかを調べます。

RouterD# 
show ip bgp

BGP table version is 2, local router ID is 4.4.4.4
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
*> 160.0.0.0/8      4.4.4.1                                0 300 {200,100} i

as-set 引数により、集約経路に関する BGP テーブルのパス情報は、300 {200,100} からの集合を含むように変更されています。 この集合は、AS-200 と AS-100 を通過した経路が実際に集約されていることを示しています。 経路が通過した場所が記録されるため、as-set 情報はルーティング ループの回避において重要になります。

クローズド ネットワークでは、この集約情報は BGP 経由で伝搬され、as-set に掲載されている AS の 1 つに戻されます。 この伝搬によって、ループが発生する可能性が生じます。 BGP のループ検出動作では、集約アップデートの as-set に自分自身の AS 番号が記録され、集約が廃棄されます。 この処理によって、ループが防止されます。

注: as-set 引数には、集約される個別の各経路に関する情報が含まれます。 また個別の経路での変更により、集約のアップデートが引き起こされます。 例では、160.10.0.0/16 がダウンした場合、集約のパス情報が 300 {200,100} から 300 {200} に変更されます。 集約はアップデートされます。 数十、数百という経路が集約される場合、集約を形成する経路に問題があると、集約に絶えずフラップが生じる可能性があります。

集約経路のアトリビュートの変更

as-set 引数を使用した集約」セクションでは、as-set を使用して、特定の経路に関する AS_PATH アトリビュートを保存する方法を説明しました。 場合によっては、集約経路のアトリビュートの変更を要求できることがあります。 このようなアトリビュートの例としては、メトリック、コミュニティ、発信元などがあります。

このセクションでは、aggregate-address アトリビュートを操作するために、attribute-map 引数を使用する方法を取り上げています。 この場合、no-export コミュニティ アトリビュートを使用して、1 つまたは複数の具体的な集約された経路を設定します。 Router A によってコミュニティ アトリビュート no-export がネットワーク 160.20.0.0/16 に設定され、このネットワークが Router C にアナウンスされます。 このセクションでは、この設定を示しています。 Router C では、160.0.0.8 が集約されながら、コミュニティ アトリビュート no-export が継承されます。 したがって、160.0.0.0/8 は Router D にアドバタイズされません。 Routers B、C、および D の設定は変更されません。 Router A の新しい設定を次に示します。

ルータ A
Current configuration: 

 hostname RouterA 

 ! 
 interface Serial1 
  ip address 2.2.2.2 255.0.0.0 
 !  
 router bgp 100 
  network 160.20.0.0 

!--- Router A advertises network 160.20.0.0/16.

  neighbor 2.2.2.1 remote-as 300 
  neighbor 2.2.2.1 send-community 
  neighbor 2.2.2.1 route-map SET_NO_EXPORT out 
 ! 
 access-list 1 permit 160.20.0.0 0.0.255.255 
 route-map SET_NO_EXPORT permit 10 
  match ip address 1 
  set community no-export 

!--- This sets the community attribute no-export.    

  at Router A for route 160.20.0.0/16 
 ! 
 end

160.0.0.0/8 に対する Router C の BGP テーブルを次に示します。

RouterC# show ip bgp 160.0.0.0
BGP routing table entry for 160.0.0.0/8, version 9
Paths: (1 available, best #1, not advertised to EBGP peer)
  Not advertised to any peer
  {200,100}, (aggregated by 300 4.4.4.1)
    0.0.0.0 from 0.0.0.0 (4.4.4.1)
      Origin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic-
aggregate, best, ref 2
      Community: no-export

community no-export は eBGP ピアルータ D. Router D にルータ C からの 160.0.0.0 を学ばなかったことをアグリゲートルートのルータ C 発表を示します停止します:

RouterD# show ip bgp 160.0.0.0
% Network not in table

集約経路のコミュニティ アトリビュートを no-export から none に操作するために、Router C で attribute-map 引数を設定できます。 この設定により、集約を Router D にアドバタイズすることができます。

ルータ C
Current configuration: 

 hostname RouterC 
 ! 
 interface Serial0 
  ip address 2.2.2.1 255.0.0.0 
 ! 
 interface Serial1 
  ip address 3.3.3.1 255.0.0.0 
 ! 
 interface Serial2 
  ip address 4.4.4.1 255.0.0.0 
 ! 
 router bgp 300 
  neighbor 2.2.2.2 remote-as 100 
  neighbor 3.3.3.3 remote-as 200 
  neighbor 4.4.4.4 remote-as 400 
  aggregate-address 160.0.0.0 255.0.0.0 
  as-set summary-only attribute-map Map 

!--- Use of the attribute-map argument allows
!--- you to change the community of the aggregate.
 
 ! 
 route-map Map permit 10 
  set community none 

!--- This sets the community of the aggregate to none.

 end

次に、160.0.0.0/8 に関する Router C の BGP テーブルを調べます。 集約経路に対してコミュニティは設定されていないため、Router C によって 160.0.0.0/8 が Router D にアドバタイズされます。

RouterC# show ip bgp 160.0.0.0
BGP routing table entry for 160.0.0.0/8, version 6
Paths: (1 available, best #1)
  Advertised to non peer-group peers:
  2.2.2.2 3.3.3.3 4.4.4.4
  {200,100}, (aggregated by 300 4.4.4.1)
    0.0.0.0 from 0.0.0.0 (4.4.4.1)
      Origin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic-
aggregate, best, ref 2

Router D の show ip bgp 160.0.0.0 出力は、Router D によって Router C から集約経路 160.0.0.0/8 が学習されたことを示しています。

RouterD# show ip bgp 160.0.0.0
BGP routing table entry for 160.0.0.0/8, version 10
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Not advertised to any peer
  300 {200,100}, (aggregated by 300 4.4.4.1)
    4.4.4.1 from 4.4.4.1 (4.4.4.1)
      Origin IGP, localpref 100, valid, external, best

advertise-map を使用した、特定経路のサブセットの集約

集約経路を形成する個別のプレフィクスを制御すると、集約によってどのアトリビュートが伝達されるのかを判断する際に便利です。 変更の例のアグリゲートルートからプレフィクス 160.20.0.0 をアグリゲートルート セクションの属性除いて下さい。 この場合、集約 160.0.0.0/8 ではコミュニティ アトリビュート no-export が継承されません。 この変更を行うには、Router C で advertise-map 引数を設定します。

ルータ C
Current configuration: 

 hostname RouterC 
 ! 
 interface Serial0 
  ip address 2.2.2.1 255.0.0.0 
 ! 
 interface Serial1 
  ip address 3.3.3.1 255.0.0.0 
 ! 
 interface Serial2 
  ip address 4.4.4.1 255.0.0.0 
 ! 
 router bgp 300 
  neighbor 2.2.2.2 remote-as 100 
  neighbor 3.3.3.3 remote-as 200 
  neighbor 4.4.4.4 remote-as 400 
  aggregate-address 160.0.0.0 255.0.0.0
  as-set summary-only advertise-map SELECT_SP_ROUTE   

!--- You exclude a particular prefix with the
!--- use of advertise-map.

 ! 
 access-list 1 permit 160.10.0.0 0.0.255.255 
 ! 
 route-map SELECT_SP_ROUTE permit 10 
  match ip address 1 
 ! 
 end

次に、160.0.0.0/8 に関する Router C の BGP テーブルを調べます。

RouterC# show ip bgp 160.0.0.0
BGP routing table entry for 160.0.0.0/8, version 15
Paths: (1 available, best #1)
  Advertised to non peer-group peers:
  2.2.2.2 4.4.4.4
  200, (aggregated by 300 2.2.2.1)
    0.0.0.0 from 0.0.0.0 (2.2.2.1)
      Origin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic-
aggregate, best, ref 2

AS-200 だけ集約の As_path情報の一部です; AS-100 は情報の一部ではないです。 また、コミュニティ no-export は 160.20.0.0/16 からは継承されません。 したがって、集約経路は Router D にアナウンスされます。 show ip bgp 160.0.0.0 出力にアナウンスメントが表示されます。

RouterD# show ip bgp 160.0.0.0
BGP routing table entry for 160.0.0.0/8, version 7
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Not advertised to any peer
  300 200, (aggregated by 300 4.4.4.1)
    4.4.4.1 from 4.4.4.1 (4.4.4.1)
      Origin IGP, localpref 100, valid, external, atomic-aggregate, best
ip bgp 160.0.0.0

注: 集約 as-set には AS-200 のみが含まれるため、AS-100 の Router A によって集約経路が受け入れられ、ルーティング テーブルに組み込まれます。 BGP ループ検出メカニズムがこの経路の受け入れの原因です。 BGP ループ検出メカニズムでは、as-set にある自分自身の AS が検出されません。

RouterA# show ip bgp
BGP table version is 3, local router ID is 160.20.0.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
*> 160.0.0.0/8      2.2.2.1                                0 300 200 i
*> 160.20.0.0       0.0.0.0                  0         32768 i

他のコンフィギュレーション コマンドでの suppress-map の使用の影響

aggregate-address コマンドには、suppress-map などの他のコンフィギュレーション コマンドが含まれます。 すべてのコンフィギュレーション コマンドの組み合せの使用による影響を理解するためには、as-set コンフィギュレーション コマンドを使用する場合に、より具体的な経路からのアトリビュートだけが aggregate-address によって継承されることに注意してください。 aggregate-address によって継承可能なアトリビュートの例としては、no-exportno-advertise などが挙げられます。

  • summary-only コンフィギュレーション コマンドとともに suppress-map コンフィギュレーション コマンドを使用すると、summary-only コンフィギュレーション コマンドの効果が失われます。 suppress-map コンフィギュレーション コマンドの使用を組み合せると、suppress-map によって抑制されるより具体的な経路はアドバタイズされません。 ただし、suppress-map の対象ではない経路は、集約された経路に加えてアドバタイズされます。 したがって、このセクションでの注意事項は、summary-only コンフィギュレーション コマンドの使用の有無にかかわらず、suppress-map の使用に適用されます。

  • suppress-map とともに as-set を使用すると、抑制された経路がアドバタイズされていなくても、すべての抑制された経路のアトリビュートが集約された経路によって継承されます。 ただし、attribute-map などの他のコンフィギュレーション コマンドの使用によって、継承されたアトリビュートを上書きできます。 「集約経路のアトリビュートの変更」セクションでは、attribute-map の使用を説明しています。

  • advertise-map とともに as-setsuppress-map のコンフィギュレーション コマンドを使用すると、集約が形成されます。 集約では、suppress-map によって経路が抑制されているかどうかに関係なく、advertise-map で選択された経路からのみアトリビュートが継承されます。 「advertise-map を使用した、特定経路のサブセットの集約」セクションを参照してください。

  • as-set や他のコンフィギュレーション コマンドとともに advertise-mapattribute-map を使用すると、attribute-map によって advertise-map で選択されたアトリビュートが上書きされます。

一般的に、advertise-map を使用すると、advertise-map のみが集約に影響します。 advertise-map が使用されない場合、集約ではより具体的な経路(抑制された経路と抑制されていない経路の両方)のアトリビュートが継承されます。 どちらの場合も、attribute-map コンフィギュレーション コマンドを使用して、選択されたアトリビュートを上書きできます。

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

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


関連情報


Document ID: 5441