概要

CiscoルータでBGPルートを集約するaggregate-addressコマンドにはたくさんのオプションがあります。オプションは、以下の2つに分類できます。

  • 集約前のルートをどう扱うか
  • 集約ルートのアトリビュートをどうするか

advertise-mapは、「集約ルートのアトリビュートをどうするか」についてのオプションです。そして、as-setと一緒に使うオプションです。

as-setによって集約ルートに集約前のルートのアトリビュートを継承させることができます。そのとき、集約前の「すべて」のルートのAS番号、コミュニティが集約ルートに継承されます。advetise-mapを利用すると、特定の集約前ルートのアトリビュートのみを集約ルートに継承させることができます。

aggregate-addressのオプション advertise-map

advertise-mapは、as-setと一緒に使うオプションです。as-setによって集約ルートに集約前のルートのアトリビュートを継承させることができます。そのとき、集約前の「すべて」のルートのAS番号、COMMUNITYが集約ルートに継承されます。advertise-mapを利用すると、特定の集約前ルートのアトリビュートのみを集約ルートに継承させることができます。

以下の図は、advertise-mapによって、集約ルート192.168.0.0/22に集約前ルート192.168.1.0/24と192.168.3.0/24のアトリビュートを継承する様子を示しています。

図 aggregate-addressのオプション advertise-map
図 aggregate-addressのオプション advertise-map

advertise-mapオプションの設定は、まずas-setが必要です。そして、ルートマップを指定します。ルートマップでpermitされる集約前ルートのアトリビュートが集約ルートに継承されることになります。

aggregate-address advertise-map

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

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

先の図のルータの設定は次のようになります。

advertise-map 設定例

access-list 1 permit 192.168.1.0
access-list 1 permit 192.168.3.0
!
route-map ADV-MAP permit 10
 match ip address 1
!
router bgp 
 aggregate-address 192.168.0.0 255.255.252.0 as-set advertise-map ADV-MAP

advertise-mapのオプションで指定するルートマップにはsetは不要です。ルートマップのmatch条件で継承させたい集約前ルートが一致するようにします。

aggregate-address advertise-mapオプション 設定例

ネットワーク構成と初期設定

次のネットワーク構成のR1でaggregate-addressのadvertise-mapオプションを考えましょう。

 図 aggregate-address as-set/advertise-mapオプション 設定例 ネットワーク構成
図 aggregate-address as-set/advertise-mapオプション 設定例 ネットワーク構成

aggregate-addressを設定する前のR1~R4のBGPに関する設定は次のとおりです。

R1 初期設定

R1では、AS2(R2)、AS3(R3)、AS4(R4)との間でEBGPネイバーを確立して、100.1.1.0/24~100.1.4.0/24をnetworkコマンドでアドバタイズしています。

R1 Initial Configuration

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

R2 初期設定

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

R2 Initial Configuration

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

R3 初期設定

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

R3 Initial Configuration

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

R4 初期設定

R4ではAS1(R1)とEBGPネイバーを確立しています。

aggregate-addressを設定する前のR1~R4のBGPに関する設定は次のとおりです。

R1 初期設定

R1では、AS2(R2)、AS3(R3)、AS4(R4)との間でEBGPネイバーを確立して、100.1.1.0/24~100.1.4.0/24をnetworkコマンドでアドバタイズしています。

R1 Initial Configuration

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

R2 初期設定

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

R2 Initial Configuration

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

R3 初期設定

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

R3 Initial Configuration

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

R4 初期設定

R4ではAS1(R1)とEBGPネイバーを確立しています。

R4 Initial Configuration

router bgp 4
 neighbor 14.14.14.1 remote-as 4
 neighbor 14.14.14.1 send-community
 ip bgp-community new-format

as-setのみのaggregate-addressコマンド

まずは、R1での集約の設定にas-setのオプションを追加します。また、集約ルートのみを考えるために、summary-onlyも設定します。

R1 aggregate-address as-set

router bgp 1
 aggregate-address 100.0.0.0 255.0.0.0 as-set summary-only

すると、集約前のすべてのルートのAS番号とコミュニティが継承された集約ルート100.0.0.0/8が生成されアドバタイズされます。R1でBGPテーブルを見てみます。

R1 show ip bgp 100.0.0.0

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
図 aggregate-address as-setオプション
図 aggregate-address as-setオプション

advertise-mapの設定

advertise-mapは特定の集約前ルートのアトリビュート「のみ」を集約ルートに継承させるために使います。advertise-mapの後にはルートマップを指定し、ルートマップの中でpermitされたルートのアトリビュート(AS番号、コミュニティ)が集約ルートに継承されることになります。

実際にadvertise-mapを使ってみましょう。集約前のルートのうち、次のルートのアトリビュートのみを継承するように設定します。

  • 100.2.1.0/24 AS-PATH=2、Community=2:1000
  • 100.3.3.0/24 AS-PATH=3、Community=3:3000

まずは上のルートをpermitするためのルートマップを作ります。ルートマップの名前はSPECIFIC_ROUTEとし、match条件でACL1を参照します。

R1 advertise-mapで適用するルートマップの作成

access-list 1 permit 100.2.1.0
access-list 1 permit 100.3.3.0
!
route-map SPECIFIC-ROUTE permit 10
 match ip address 1

そして、BGPのコンフィグレーションモードでaggregate-addressにas-setとadvertise-mapのオプションををつけます。

R1 aggregate-addressコマンドにadvertise-mapを追加

router bgp 1
 aggregate-address 100.0.0.0 255.0.0.0 as-set summary-only advertise-map SPECIFIC_ROUTE

これにより、100.0.0.0/8には、100.2.1.0/24と100.3.3.0/24のAS番号、コミュニティのみが継承されるようになります。このことをR1とR4のBGPテーブルで確認してみます。

R1 show ip bgp 100.0.0.0

R1#sh ip bgp 100.0.0.0
BGP routing table entry for 100.0.0.0/8, version 28
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, atomic-aggregate, best
Community: 2:1000 3:3000

R4 show ip bgp 100.0.0.0

R4#sh ip bgp 100.0.0.0
BGP routing table entry for 100.0.0.0/8, version 41
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, atomic-aggregate, best
Community: 2:1000 3:3000
図 aggregate-address advertise-mapオプション
図 aggregate-address advertise-mapオプション

まとめ

ポイント

  • advertise-mapは「集約ルートのアトリビュートをどうするか」のオプションです。集約ルートに特定の集約前ルートだけのAS番号、COMMUNITYを継承させるために使う
  • advertise-mapのあとにはルートマップを指定します。ルートマップでpermitされたルートのアトリビュートを継承します。

BGPの仕組み