Table of Contents
aggregate-addressのオプション as-set
CiscoルータでBGPルートを集約するaggregate-addressコマンドにはたくさんのオプションがあります。オプションは、以下の2つに分類できます。
- 集約前のルートをどう扱うか
- 集約ルートのアトリビュートをどうするか
as-setは、「集約ルートのアトリビュートをどうするか」についてのオプションです。as-setによって集約ルートに集約前のルートのアトリビュートを継承させることができます。
サンプルトポロジと事前設定
次のサンプルトポロジのR1でaggregate-addressのas-setオプションを考えましょう。

R1~R4のaggregate-addressを設定する前のBGPに関する設定は次のとおりです。
R1
interface Loopback0 ip address 100.1.2.1 255.255.255.0 secondary ip address 100.1.3.1 255.255.255.0 secondary ip address 100.1.4.1 255.255.255.0 secondary ip address 100.1.1.1 255.255.255.0 ! router bgp 1 network 100.1.1.0 mask 255.255.255.0 network 100.1.2.0 mask 255.255.255.0 network 100.1.3.0 mask 255.255.255.0 network 100.1.4.0 mask 255.255.255.0 neighbor 12.12.12.2 remote-as 2 neighbor 12.12.12.2 send-community neighbor 13.13.13.3 remote-as 3 neighbor 13.13.13.3 send-community neighbor 14.14.14.4 remote-as 4 neighbor 14.14.14.4 send-community ip bgp-community new-format
R1では、AS2(R2)、AS3(R3)、AS4(R4)との間でEBGPネイバーを確立して、100.1.1.0/24~100.1.4.0/24をnetworkコマンドでアドバタイズしています。
R2
interface Loopback0 ip address 100.2.2.1 255.255.255.0 secondary ip address 100.2.3.1 255.255.255.0 secondary ip address 100.2.4.1 255.255.255.0 secondary ip address 100.2.1.1 255.255.255.0 ! router bgp 2 network 100.2.1.0 mask 255.255.255.0 network 100.2.2.0 mask 255.255.255.0 network 100.2.3.0 mask 255.255.255.0 network 100.2.4.0 mask 255.255.255.0 neighbor 12.12.12.1 remote-as 1 neighbor 12.12.12.1 send-community neighbor 12.12.12.1 route-map COMMUNITY ip bgp-community new-format ! route-map COMMUNITY permit 10 match ip address 1 set community 2:1000 route-map COMMUNITY permit 20 match ip address 2 set community 2:2000 route-map COMMUNITY permit 30 match ip address 3 set community 2:3000 route-map COMMUNITY permit 40 match ip address 4 set community 2:4000 route-map COMMUNITY permit 1000 ! access-list 1 permit 100.2.1.0 access-list 2 permit 100.2.2.0 access-list 3 permit 100.2.3.0 access-list 4 permit 100.2.4.0
R2ではAS1(R1)とEBGPを確立し、100.2.1.0/24~100.2.4.0/24のルートにCOMMUNITYをつけてアドバタイズしています。それぞれのルートのCOMMUNITYは次のとおりです。
100.2.1.0/24 2:1000
100.2.2.0/24 2:2000
100.2.3.0/24 2:3000
100.2.4.0/24 2:4000
R3
interface Loopback0 ip address 100.3.2.1 255.255.255.0 secondary ip address 100.3.3.1 255.255.255.0 secondary ip address 100.3.4.1 255.255.255.0 secondary ip address 100.3.1.1 255.255.255.0 ! router bgp 3 network 100.3.1.0 mask 255.255.255.0 network 100.3.2.0 mask 255.255.255.0 network 100.3.3.0 mask 255.255.255.0 network 100.3.4.0 mask 255.255.255.0 neighbor 13.13.13.1 remote-as 1 neighbor 13.13.13.1 send-community neighbor 13.13.13.1 route-map COMMUNITY ip bgp-community new-format ! route-map COMMUNITY permit 10 match ip address 1 set community 3:1000 route-map COMMUNITY permit 20 match ip address 2 set community 3:2000 route-map COMMUNITY permit 30 match ip address 3 set community 3:3000 route-map COMMUNITY permit 40 match ip address 4 set community 3:4000 route-map COMMUNITY permit 1000 ! access-list 1 permit 100.3.1.0 access-list 2 permit 100.3.2.0 access-list 3 permit 100.3.3.0 access-list 4 permit 100.3.4.0
R3ではAS1(R1)とEBGPネイバーを確立し、100.3.1.0/24~100.3.4.0/24のルートにCOMMUNITYをつけてアドバタイズしています。それぞれのルートのCOMMUNITYは次のとおりです。
100.3.1.0/24 3:1000
100.3.2.0/24 3:2000
100.3.3.0/24 3:3000
100.3.4.0/24 3:4000
R4
router bgp 4 neighbor 14.14.14.1 remote-as 4 neighbor 14.14.14.1 send-community ip bgp-community new-format
R4ではAS1(R1)とEBGPネイバーを確立しています。
R1で集約ルートのアドバタイズ
R1でAS1の100.1.1.0/24~100.1.4.0/24のルート、AS2の100.2.1.0/24~100.2.4.0/24のルート、AS3の100.3.1.0/24~100.3.4.0/24のルートを集約して100.0.0.0/8としてアドバタイズします。集約ルートのみ考えたいので簡単にするために、summary-onlyオプションをつけます。
R1
router bgp 1 aggregate-address 100.0.0.0 255.0.0.0 summary-only
この設定で、R1は集約ルート100.0.0.0/8が生成してBGPテーブルに載せ、ほかのBGPネイバーにアドバタイズします。この集約ルートのアトリビュートに注目します。
R1
R1#sh ip bgp 100.0.0.0 BGP routing table entry for 100.0.0.0/8, version 14 Paths: (1 available, best #1, table Default-IP-Routing-Table) Flag: 0x820 Advertised to non peer-group peers: 12.12.12.2 13.13.13.3 14.14.14.4 Local, (aggregated by 1 100.1.1.1) 0.0.0.0 from 0.0.0.0 (100.1.1.1) Origin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic-aggregate, best
集約ルートのアトリビュートを見ると、AS-PATH、COMMUNITYがありません。AS2およびAS3からアドバタイズされたルートにはAS-PATHやCOMMUNITYが付加されているのですが、集約ルートには集約前のルートのAS-PATHやCOMMUNITYが付加されていません。R4でも100.0.0.0/8のルートのアトリビュートを確認します。
R4
R4#sh ip bgp 100.0.0.0 BGP routing table entry for 100.0.0.0/8, version 40 Paths: (1 available, best #1, table Default-IP-Routing-Table) Not advertised to any peer 1 , (aggregated by 1 100.1.1.1) 14.14.14.1 from 14.14.14.1 (100.1.1.1) Origin IGP, metric 0, localpref 100, valid, external, best
R4で見ると、100.0.0.0/8のAS-PATHが「1」になりCOMMUNITYはありません。100.0.0.0/8というルートはAS1で発生したルートのように見えているわけです。100.0.0.0/8の範囲に含まれるもともとのルートのAS番号、COMMUNITYはすべて失われます。

そこで、集約前のAS番号、COMMUNITYを集約ルートに継承させるためにつけるオプションがas-setです。
R1で集約ルートのアドバタイズ as-setオプション
R1での集約の設定にas-setのオプションを追加します。
R1
router bgp 1 aggregate-address 100.0.0.0 255.0.0.0 as-set summary-only
これにより、集約ルート100.0.0.0/8のアトリビュートがどう変わったかがポイントです。R1のBGPテーブルでは次のようになります。
R1
R1#sh ip bgp 100.0.0.0 BGP routing table entry for 100.0.0.0/8, version 27 Paths: (1 available, best #1, table Default-IP-Routing-Table) Flag: 0x820 Advertised to non peer-group peers: 12.12.12.2 13.13.13.3 14.14.14.4 {2,3}, (aggregated by 1 100.1.1.1) 0.0.0.0 from 0.0.0.0 (100.1.1.1) Origin IGP, localpref 100, weight 32768, valid, aggregated, local, best Community: 2:1000 2:2000 2:3000 2:4000 3:1000 3:2000 3:3000 3:4000
集約前のルートのAS番号であるAS2とAS3の情報が{ }でくくられて集約ルートについています。そして、集約前のルートについていたCOMMUNITYがすべて集約ルートに付加されています。{ }でくくっているのは、順番はわからないが、このAS番号が集約前ルートに含まれているという意味です。もし、仮に集約前ルートのAS-PATHがすべて同一であれば{ }でくくられません。
R4でもBGPテーブルを確認すると次のようになります。
R4
R4#sh ip bgp 100.0.0.0 BGP routing table entry for 100.0.0.0/8, version 40 Paths: (1 available, best #1, table Default-IP-Routing-Table) Not advertised to any peer 1 {2,3}, (aggregated by 1 100.1.1.1) 14.14.14.1 from 14.14.14.1 (100.1.1.1) Origin IGP, metric 0, localpref 100, valid, external, best Community: 2:1000 2:2000 2:3000 2:4000 3:1000 3:2000 3:3000 3:4000

as-setまとめ
- 「集約ルートのアトリビュートをどうするか」のオプション
- 集約ルートに集約前ルートのAS番号、COMMUNITYを継承させるために使う
- aggregate-addressの中でas-setを指定する
関連記事
「ネットワークのおべんきょしませんか?」内の記事を検索
BGPの仕組み
- BGPの概要 ~AS間でルート情報を交換~
- BGPの動作
- BGPの基本設定と確認コマンド
- BGPネイバーの状態
- BGPコンフェデレーションの設定
- BGPコンフェデレーションの設定例
- BGPネイバー認証
- BGP Well Known Mandatory アトリビュート
- BGP 基本的な設定についての演習[Cisco]
- BGPの基本的な設定についての演習 ~トラブルシュート~
- BGP ルート集約 自動集約
- BGPルート集約 networkコマンドによる集約
- BGP ルート集約 aggregate-addressコマンドによる集約
- aggregate-addressコマンドのオプション summary-only
- aggregate-addressコマンドのオプション attribute-map
- aggregate-addressコマンドのオプション as-set
- aggregate-addressコマンドのオプション advertise-map
- BGP選択型集約の概要
- BGP選択型集約 suppress-map
- BGP選択型集約 unsuppress-map
- BGP local-as ~ネイバーに他のASのように見せる~
- bgp fast external-fallover
- BGP プレフィクス数の制限
- BGP COMMUNITYアトリビュートの使い方
- BGP Well-known COMMUNITYのルートフィルタ設定例
- BGP プライベートCOMMUNITYによるルート制御の設定例
- BGP 設定ミスの切り分けと修正 Part1
- BGP 設定ミスの切り分けと修正 Part2
- BGP 設定ミスの切り分けと修正 Part3
- BGP 設定ミスの切り分けと修正 Part4
- BGP 設定ミスの切り分けと修正 Part5
- BGP 設定ミスの切り分けと修正 Part6
- IPv6 BGPの設定例 Part1
- IPv6 BGPの設定例 Part2
- IPv4 BGPネイバーでのIPv6プレフィックスの交換