概要

選択型集約とは、BGPでルートを集約したときに集約前ルートを全部送る、あるいは全く送らないというAll or Nothingではなく、一部の集約前ルートを選択して集約ルートとともにアドバタイズすることです。選択型集約を行うためのaggregate-addressコマンドのsuppress-mapオプションについて解説します。suppress-mapのオプションで、アドバタイズしない集約前ルートを決められます。

aggregate-addressコマンドのsuppress-mapオプション

suppress-mapオプションでの選択型集約は、デフォルトの集約前ルートをすべてアドバタイズすることをベースに考えます。suppress-mapのオプションによって、集約ルートといっしょにアドバタイズする集約前ルートの一部を止めることができます。

図 suppress-mapによる選択型集約
図 suppress-mapによる選択型集約

suppress-mapコマンドの構文は、次のようになります。

aggregate-address suppress-map

(config)#router bgp <AS>
(config-router)#aggregate-address <network-address> <subnetmask> suppress-map <route-map-name>

<AS>:AS番号
<network-address>:集約ルートのネットワークアドレス
<subnetmask>:集約ルートのサブネットマスク
<route-map-name>:ルートマップ名

suppress-mapのあとにルートマップを指定するのですが、ルートマップの設定で混乱しがちなので注意してください。suppress-mapは集約前ルートを「止める」ためのオプションです。そのため、suppress-mapのあとのルートマップでpermitされた集約前ルートがアドバタイズされなくなります。逆に、集約ルートといっしょにアドバタイズしたい集約前ルートは、ルートマップでdenyされるように設定します。

suppres-mapによる選択型集約の設定例

「図 suppress-mapによる選択型集約」での具体的な設定を考えます。以下の4つのBGPルートを集約した集約ルートを生成します。

  • 192.168.0.0/24
  • 192.168.1.0/24
  • 192.168.2.0/24
  • 192.168.3.0/24

これらの4つのルートを最も長いサブネットマスクで集約すると「192.168.0.0/22」です。この集約ルートと一緒に「192.168.1.0/24」「192.168.3.0/24」もアドバタイズします。つまり、集約前ルートの192.168.0.0/24と192.168.2.0/24のアドバタイズを止めます。このようなルート送信を行いたい場合のsuppress-mapの設定は以下の通りです。

suppress-map 設定例

access-list 1 permit 192.168.0.0
access-list 1 permit 192.168.2.0
!
route-map SUPP-MAP permit 10
 match ip address 1
!
router bgp 
 aggregate-address 192.168.0.0 255.255.252.0 suppress-map SUPP-MAP

ルートマップ「SUPP-MAP」のシーケンス10のmatchに一致するルートが192.168.0.0/24と192.168.2.0/24です。suppress-mapでルートマップSUPP-MAPを指定しているので、192.168.0.0/24と192.168.2.0/24の送信が抑制(suppress)されることになります。

ルートマップSUPP-MAPには、やはり最後に暗黙のdeny anyがあります。192.168.1.0/24と192.168.3.0/24は暗黙のdeny anyでdenyされます。そのため、この2つの集約前ルートのアドバタイズは抑制されず、集約ルートとともにネイバーにアドバタイズされるようになります。

suppress-mapのルートマップにはsetは必要ありません。また、アトリビュートをセットするときのように、その他のルートを全部permitする最後にシーケンス番号を大きくした条件(route-map <name> permit 1000など)も不要です。これをつけてしまうと、結局すべての集約前ルートが抑制対象になってしまうからです。

図 suppress-map設定例
図 suppress-map設定例

そして、suppress-mapの設定を行っている場合のBGPテーブルにも注目してください。suppress-mapで特定の集約前ルートのアドバタイズを抑制していると、BGPテーブルは「*(valid)」と「s(suppressed)」が混在するようになります。

suppress-mapを設定しているときのBGPテーブル

R1#sh ip bgp 
BGP table version is 8, local router ID is 100.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 192.168.0.0/22   0.0.0.0                            32768 i
s> 192.168.0.0/24   0.0.0.0                  0         32768 i
*> 192.168.1.0/24   0.0.0.0                  0         32768 i
s> 192.168.2.0/24   0.0.0.0                  0         32768 i
*> 192.168.3.0/24   0.0.0.0                  0         32768 i

まとめ

ポイント

  • suppress-mapは選択型集約を行うためのaggregate-addressコマンドのオプションです。suppress-mapは、すべてのネイバーに対しての選択型集約を行います。
  • suppress-mapの後ろにルートマップを指定します。ルートマップでpermitされたルートを抑制対象としてアドバタイズしません。

BGPの仕組み