【図解/BGP】aggregate-addressによるルート集約 ~ASSETやsummary-onlyの使い方,atomic_aggregateについて~

aggregate-address コマンドと atomic_aggrepate 属性

aggregate-address コマンドによってルート集約を行うことができます。

以下の構成図で 10.0.4.0/23 と 10.0.6.0/24 のルートを 10.0.4.0/22 に集約します。

RT3 で以下のように設定します。

RT3(config)# router bgp 30
RT3(config-router)# aggregate-address 10.0.4.0 255.255.252.0

これにより RT4 で通常ルート (10.0.4.0/23, 10.0.6.0/24) と共に集約ルート (10.0.4.0/22) も表示されます。

RT4# sh ip bgp

     Network        Next Hop   Metric  LocPrf  Weight  Path
 *>  10.0.4.0/23    10.1.34.3                       0  30 10 i
 *>  10.0.4.0/22    10.1.34.3       0               0  30 i
 *>  10.0.6.0/24    10.1.34.3                       0  30 20 i

RT3 側ではループ回避のために Null 0 ルートが作成されます。

RT3# sh ip route

      10.0.0.0/8 is variably subnetted, 9 subnets, 4 masks
B        10.0.4.0/22 [200/0], 00:00:37, Null0
B        10.0.4.0/23 [20/0] via 10.1.13.1, 00:00:49
B        10.0.6.0/24 [20/0] via 10.1.23.2, 00:00:49

Null0、ループ回避の考え方については以下を参照下さい。

関連記事

ルーティング・ループの確認方法 ルーティング・ループとは、IP パケットが、TTL が尽きるまでルータを 2 回以上通過する状態のことを言います。 ルーティング・ループの確認方法は 2 つあります。1 つ目は tracertもしくは[…]

さて、RT4 の BGP テーブルから分かる通り、集約されたルートには、その元ネタとなったルートの AS_PATH 情報が欠けています

具体的には、10.0.4.0/23 には AS_PATH=10、10.0.6.0/24 には AS_PATH=20 が付与されていましたが、集約後はそれらが無く、aggregate-address コマンドを設定した RT3 の AS_PATH=30 のみがセットされています。

また、集約ルートには情報が欠けたことを示す "ATOMIC_AGGREGATE" 属性が付与されます。(以下 UPDATE パケットのパケットキャプチャ)

蛇足ですが MED (MULTI_EXIT_DISC) 属性も付与されています。道理で BGP テーブルに metric 0 が表示されるわけです。

これではルート情報のループが発生する可能性があります。これを回避するためには as-set オプションを使います。

aggregate-address と ASSET オプション

先程の図例において、RT3 にて以下のように設定します。

RT3(config)# router bgp 30
RT3(config-router)# aggregate-address 10.0.4.0 255.255.252.0 as-set

これを設定することにより、AS_PATH や COMMUNITIES 属性等の情報が欠けることなく集約ルートに引き継がれます。

ただし、AS_PATH の順番情報は欠けてしまいます。

AS_PATH 属性は { path segment type , path segment length , path segment value} というフォーマットになっており、通常は "path segment type" は AS_SEQUENCE を示す "2" がセットされます。ですがルート集約により順番 (Sequence) 情報が欠けた場合は "path segment type" は AS_SET を示す "1" がセットされます。

順番情報が欠けたものについては BGP テーブル上では中括弧 {} で囲まれます。

RT4# sh ip bgp

     Network        Next Hop   Metric  LocPrf  Weight  Path
 *>  10.0.4.0/23    10.1.34.3                       0  30 10 i
 *>  10.0.4.0/22    10.1.34.3       0               0  30 {10,20} i
 *>  10.0.6.0/24    10.1.34.3                       0  30 20 i

パケットキャプチャを確認すると、ATOMIC_AGGREGATE 属性が付与されていません。情報が欠けていないからです。

 

参考までに、aggregate-address 設定で、as-set を付けなかった場合と付けた場合のパケットキャプチャを以下からダウンロードできます。

 

[as-set 無し]  https://milestone-of-se.nesuke.com/pcap/bgp-aggregate.pcapng

[as-set 有り]  https://milestone-of-se.nesuke.com/pcap/bgp-aggregate-asset.pcapng

 

ところで、集約ルートの元ネタ (10.0.4.0/23 とか 10.0.6.0/24) は消したいよ、というときは summary-only オプションを使います。

aggregate-address と summary-only オプション

先程の図例において、RT3 にて以下のように設定します。

RT3(config)# router bgp 30
RT3(config-router)# aggregate-address 10.0.4.0 255.255.252.0 as-set summary-only

これにより、10.0.4.0/23 と 10.0.6.0/24 は表示されなくなります。

RT4# sh ip bgp

     Network        Next Hop   Metric  LocPrf  Weight  Path
 *>  10.0.4.0/22    10.1.34.3       0               0  30 {10,20} i

as-set が付いていない場合は {10,20} が無い状態で表示されます。

ところで、aggregate-address は設定したら clear ip bgp * soft は不要です (なぜなら属性が変わる訳ではなく、アドバタイズされるルート自体が変わるから) が、summary-only を付ける場合、デフォルトではタイムラグがあります。

これは bgp aggregate-timer のデフォルト設定が 30 秒になっているためです。急なルート変更によるリソース (CPU/Memory) 消費を抑えるために『aggregate-timer expired となったら集約ルートを広報し、元ネタルートを withdraw (削除) する』といった挙動になります。

以下のコマンドで設定変更できます。0 は aggregate-timer の無効化になります。

RT3(config-router)# bgp aggregate-timer 0

IT/インフラエンジニアの地位とスキル向上のために

関連記事

IT 技術の進化はとどまることを知りません。矢継ぎ早に新たな技術が出てきたり、数年前の技術が時代遅れになったりと、IT エンジニアは勉強し続ける運命のようです。 それをどう思うかはあなた次第。 ビジネスの基本は『付加価値を与える[…]

IMG
関連記事

nesuke の考える NW エンジニアの2つの道 ネットワークエンジニアには 2 つの道があります。 1 つはネットワーク構築一筋で、L4 までをひたすらきっちりと構築していく道。 もう 1 つはネットワークを軸として深堀し[…]

IMG