はじめに
こんにちは。ネットワークエンジニアの「だいまる」です。
今回は、BGPで送受信している経路を集約する方法をまとめていきたいと思います。
経路集約とは?
概要
経路集約とは「BGPやOSPF、IS-ISなどのルーティングプロトコルでやり取りされている経路をまとめる機能」です。

経路数を少なくすることができるのがメリットです!
インターネット上には100万経路に近い経路が広報されており、内部ネットワークも場所によっては膨大な数の経路が広報されています。
この経路を集約しない場合、ハイスペックなルータが必要となるため、費用が莫大になります。
また、インターネットを流れる経路は一般的に「/24より短いPrefix」で広報する暗黙ルールが存在します。

この暗黙ルールを守るため、集約が必要になります!
ルータの負荷軽減やインターネットのルールを守るため、経路集約を行う必要があるのです。
(イメージ図)
設定方法(Cisco IOS)
経路集約の設定方法は、以下のコマンドで実行できます。
(config-router)#aggregate-address <IPアドレス> <サブネットマスク> (オプション)
この設定方法に記載したオプションは以下の表にまとめます。
| オプション項目 | 詳細 |
|---|---|
| advertise-map | 集約経路に継承させる集約前ルートの属性(Attribute)をroute-mapで指定 |
| as-set | ・デフォルト:集約経路を生成するルータが属するAS番号のみ付加 ・オプション:集約前経路のAS番号も付加したい場合に利用 |
| attribute-map | 集約経路にroute-mapで指定した属性(Attirbute)を付与 ※advertise-mapとの違いは、新規に属性付加する点 |
| route-map | 集約経路にroute-map指定(Attribute等の付与) |
| summary-only | 集約経路のみ広報する場合に利用 ※デフォルト:集約経路と個別経路を両方広報する |
| suppress-map | 特定の集約経路の広報をroute-mapを利用することで抑制可能 |
動作確認
今回は、項目① 「経路集約」と項目②「summary-only」の2種類を確認していきます。
検証構成
検証構成は、BGPの他記事と同じ構成で確認していきます。

ルータ1とルータ2でAS200からもらった経路に対し設定していきます!
確認項目①:経路集約
まずはルータ4で事前確認を実施していきます。
Router4#show ip bgp
BGP table version is 12, local router ID is 10.10.4.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
r>i 10.10.1.1/32 10.10.1.1 0 100 0 i
r>i 10.10.2.1/32 10.10.2.1 0 100 0 i
r>i 10.10.3.1/32 10.10.3.1 0 100 0 i
*> 10.10.4.1/32 0.0.0.0 0 32768 i
* i 10.20.5.1/32 10.10.2.1 0 100 0 200 i
*>i 10.10.1.1 0 100 0 200 i
*>i 10.20.6.1/32 10.10.1.1 0 100 0 200 i
* i 10.10.2.1 0 100 0 200 i
* i 10.20.7.1/32 10.10.2.1 0 100 0 200 i
*>i 10.10.1.1 0 100 0 200 i
*>i 10.30.8.1/32 10.10.2.1 0 100 0 300 i
*>i 10.40.9.1/32 10.10.1.1 0 100 0 400 i
*>i 10.40.19.1/32 10.10.1.1 0 100 0 400 i
この状態から「10.20.X.1/32」を「10.20.0.0/16」に集約していきます。
Router1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#router bgp 100
Router1(config-router)#aggregate-address 10.20.0.0 255.255.0.0
Router1(config-router)#end

Router2にもこの設定を追加しています!
設定後の状態を確認していきましょう。
以下のログを見ると「10.20.0.0/16」に集約されていることがわかると思います。
Router4#show ip bgp
BGP table version is 13, local router ID is 10.10.4.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
r>i 10.10.1.1/32 10.10.1.1 0 100 0 i
r>i 10.10.2.1/32 10.10.2.1 0 100 0 i
r>i 10.10.3.1/32 10.10.3.1 0 100 0 i
*> 10.10.4.1/32 0.0.0.0 0 32768 i
* i 10.20.0.0/16 10.10.2.1 0 100 0 i
*>i 10.10.1.1 0 100 0 i
* i 10.20.5.1/32 10.10.2.1 0 100 0 200 i
*>i 10.10.1.1 0 100 0 200 i
*>i 10.20.6.1/32 10.10.1.1 0 100 0 200 i
* i 10.10.2.1 0 100 0 200 i
* i 10.20.7.1/32 10.10.2.1 0 100 0 200 i
*>i 10.10.1.1 0 100 0 200 i
*>i 10.30.8.1/32 10.10.2.1 0 100 0 300 i
*>i 10.40.9.1/32 10.10.1.1 0 100 0 400 i
*>i 10.40.19.1/32 10.10.1.1 0 100 0 400 i
確認項目②:summary-only
次にデフォルトでは、集約した経路と個別経路両方を広報する仕様になっていますが、これを集約経路だけ広報する「summary-onlly」オプションの動作確認を行います。
Router4#show ip bgp
BGP table version is 13, local router ID is 10.10.4.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
r>i 10.10.1.1/32 10.10.1.1 0 100 0 i
r>i 10.10.2.1/32 10.10.2.1 0 100 0 i
r>i 10.10.3.1/32 10.10.3.1 0 100 0 i
*> 10.10.4.1/32 0.0.0.0 0 32768 i
* i 10.20.0.0/16 10.10.2.1 0 100 0 i
*>i 10.10.1.1 0 100 0 i
* i 10.20.5.1/32 10.10.2.1 0 100 0 200 i
*>i 10.10.1.1 0 100 0 200 i
*>i 10.20.6.1/32 10.10.1.1 0 100 0 200 i
* i 10.10.2.1 0 100 0 200 i
* i 10.20.7.1/32 10.10.2.1 0 100 0 200 i
*>i 10.10.1.1 0 100 0 200 i
*>i 10.30.8.1/32 10.10.2.1 0 100 0 300 i
*>i 10.40.9.1/32 10.10.1.1 0 100 0 400 i
*>i 10.40.19.1/32 10.10.1.1 0 100 0 400 i
この状態に以下のコマンドをRouter1とRouter2に設定していきます。
(config-router)#aggregate-address 10.20.0.0/16 summary-only
では実際に投入したログを見てみましょう。
Router1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#router bgp 100
Router1(config-router)#aggregate-address 10.20.0.0 255.255.0.0 summary-only
Router1(config-router)#end

同様にRouter2にもこの設定を追加しています!
最後にRouter4の状態を見てみましょう。
Router4#show ip bgp
BGP table version is 19, local router ID is 10.10.4.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
r>i 10.10.1.1/32 10.10.1.1 0 100 0 i
r>i 10.10.2.1/32 10.10.2.1 0 100 0 i
r>i 10.10.3.1/32 10.10.3.1 0 100 0 i
*> 10.10.4.1/32 0.0.0.0 0 32768 i
* i 10.20.0.0/16 10.10.2.1 0 100 0 i
*>i 10.10.1.1 0 100 0 i
*>i 10.30.8.1/32 10.10.2.1 0 100 0 300 i
*>i 10.40.9.1/32 10.10.1.1 0 100 0 400 i
*>i 10.40.19.1/32 10.10.1.1 0 100 0 400 i
実際に集約経路のみの広報となっていることがわかります。
最後に
今回は、BGPの経路制御の第一弾として「経路集約」についてまとめてみました。
直近、ブログを改善しているため、prefix-list/route-mapに関する制御やその他の経路制御は別の記事で作成する予定です。
