概要

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

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

attribute-mapは、「集約ルートのアトリビュートをどうするか」についてのオプションです。attribute-mapによって集約ルートにアトリビュートを付加することができます。

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

aggregate-addressコマンドで生成した集約ルートにも当然パスアトリビュートが付加されています。デフォルトでは、以下のパスアトリビュートです。

  • ORIGIN:IGP
  • NEXT_HOP:0.0.0.0
  • AS_PATH:なし
  • WEIGHT:32768
  • LOCAL_PREFERENCE:100
  • MED:なし
  • AGGREGATOR:ローカルAS番号とルータID
  • ATOMIC-AGGREGATE

attribute-mapオプションによって集約ルートを生成するときに、MEDやLOCAL_PREFERENCE、COMMUNITYなどのアトリビュートを付加することができます。

図 attribute-mapで集約ルート生成時にアトリビュートをセット
図 attribute-mapで集約ルート生成時にアトリビュートをセット

attribute-mapオプションでは、ルートマップ名を指定します。ルートマップのsetコマンドで集約ルートに付加したいアトリビュートを設定します。

aggregate-address attribute-map

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

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

attribute-mapで指定するルートマップにはmatch条件は必要ありません。これは、対象が集約ルートであることが決まっているからです。

関連記事

aggregate-address attribute-mapの設定例

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

次のネットワーク構成のR1でaggregate-addressのattribute-mapオプションの設定を行います。

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

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

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
 ip bgp-community new-format

R1では、R2とEBGPネイバーを確立して100.1.1.0/24~100.1.4.0/24のルートをnetworkコマンドでアドバタイズしています。

R2 Initial Configuration

router bgp 2
 neighbor 12.12.12.1 remote-as 1
 neighbor 12.12.12.1 send-community
 ip bgp-community new-format

R2は、単純にR1とのEBGPネイバーを設定しているだけです。

また、COMMUNITYアトリビュートを扱うので、R1とR2に以下のコマンドの設定も行っています。

  • neighbor send-community
  • ip bgp-community new-format

neighbor send-communityコマンドで、BGPルートに付加されているCOMMUNITYアトリビュートを削除しないようにしています。ip bgp-community new-formatコマンドは、COMMUNITYの表記をわかりやすくするための設定です。

R1で集約ルートのアドバタイズ

R1で100.1.1.0/24~100.1.4.0/24を集約したルート情報100.1.0.0/16を生成します。

R1 集約ルートの生成

router bgp 1
 aggregate-address 100.1.0.0 255.255.0.0

この設定により、集約ルート100.1.0.0/16が生成されてBGPテーブルに載り、R2へアドバタイズされます。このときの集約ルート100.1.0.0/16のアトリビュートを確認します。そのためにR1でshow ip bgp 100.1.0.0の結果を見ます。

R1 集約ルートのアトリビュートの確認

R1#sh ip bgp 100.1.0.0
BGP routing table entry for 100.1.0.0/16, version 6
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to non peer-group peers:
12.12.12.2
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

集約ルートのアトリビュートは、atomic-aggregateやaggregatorがつけられていますが、それ以外のOriginやLocal_preferenceなどのアトリビュートはnetworkコマンドで生成したルートと同じです。

集約ルートにアトリビュートを付加するには、アドバタイズするときにアウトバウンドでルートマップを適用してもできます。しかし、attribute-mapを利用すると、集約ルートを生成したときにアトリビュートを付加することができます。

attribute-mapによる集約ルートへのアトリビュート付加

attibute-mapを使って、集約ルートにCOMMUNITYを付加してみましょう。attribute-mapのあとには、ルートマップを指定します。このルートマップはすごくシンプルに考えてください。attribute-mapのあとのルートマップにはmatch条件は要りません。aggregate-addressコマンドで生成した集約ルートが対象になるので、match条件を指定する必要はありません。setコマンドで集約ルートに付加したいアトリビュートを設定すればいいだけです。

では、例として集約ルートにCOMMUNITY 1:1000をつけるためのattribute-mapの設定を考えます。まず、COMMUNITYを付加するルートマップ(AGG_COM)を次のように作ります。

R1 アトリビュートマップ用のルートマップの設定

route-map AGG_COM permit 10
 set community 1:1000

そして、このルートマップをaggregate-addressのattribute-mapオプションで適用します。

R1 attribute-mapオプションでルートマップを適用

router bgp 1
 aggregate-ddress 100.1.0.0 255.255.0.0 attribute-map AGG_COM

これによって、集約ルート100.1.0.0/16にCOMMUNITY 1:1000が付加されます。そのことを確認しましょう。R1のBGPテーブルを確認します。

R1 集約ルート100.1.0.0/16

R1#sh ip bgp 100.1.0.0
BGP routing table entry for 100.1.0.0/16, version 7
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to non peer-group peers:
12.12.12.2
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
Community: 1:1000

BGPテーブルの集約ルート100.1.0.0/16の詳細な情報を確認すると、最後の行でCOMMUNITY 1:1000が付加されていることがわかります。

図 attribute-mapで集約ルートにCOMMUNITYを付加
図 attribute-mapで集約ルートにCOMMUNITYを付加

このルートを受信するR2でも見てみましょう。

R2 BGPテーブルの確認

R2#sh ip bgp 100.1.0.0
BGP routing table entry for 100.1.0.0/16, version 7
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Flag: 0x880
Not advertised to any peer
1, (aggregated by 1 100.1.1.1)
12.12.12.1 from 12.12.12.1 (100.1.1.1)
Origin IGP, metric 0, localpref 100, valid, external, atomic-aggregate, best
Community: 1:1000

R2でもCOMMUNITY 1:1000が付加されている集約ルート100.1.0.0/16を受信していることが確認できます。

まとめ

ポイント

  • attribute-mapは「集約ルートのアトリビュートをどうするか」のオプションです。集約ルートにアトリビュートを付加するために利用します。
  • attribute-mapのあとにルートマップを指定します。ルートマップはmatch条件なしで付加したいアトリビュートをsetで設定します。

BGPの仕組み