【BGP】経路集約(aggregate-address、advertise-map、as-set)

 R1の個別ルートにそれぞれコミュニティを設定し、それがas-setされた集約ルートでどのように引き継がれるか、そして、advertise-mapを使用して、属性値をどのように変更できるかを確認します。

 advertise-mapは集約前ルートの属性を集約ルートへ継承させる際に値を操作できるコマンドで、as-setと合わせて使用します。

 基本設定は、前回の記事は以下を参照してください。

 R1の個別ルート172.16.0.0/24〜172.16.3.0/24のそれぞれにコミュニティ値1:0〜1:3を割り当て、R2に広告します。 そしてR2では集約ルートを作成し、R3へ集約ルートを広告してみます。

スポンサーリンク

集約ルートに対する属性値の継承確認

 まず、R1で個別ルートをプレフィックスリストで指定します。

R1(config)# ip prefix-list L100 permit 172.16.0.0/24
R1(config)# ip prefix-list L101 permit 172.16.1.0/24
R1(config)# ip prefix-list L102 permit 172.16.2.0/24
R1(config)# ip prefix-list L103 permit 172.16.3.0/24

 各プレフィックスに対して、コミュニティ値を設定するルートマップを作成します。ここで、コミュニティのフォーマットも変更しておきます。

R1(config)# ip bgp-community new-format

R1(config)# route-map SET-COMMUNITY permit 10
R1(config-route-map)#  match ip address prefix-list L100
R1(config-route-map)#  set community 1:0
R1(config-route-map)#!
R1(config-route-map)# route-map SET-COMMUNITY permit 20
R1(config-route-map)#  match ip address prefix-list L101
R1(config-route-map)#  set community 1:1
R1(config-route-map)#!
R1(config-route-map)# route-map SET-COMMUNITY permit 30
R1(config-route-map)#  match ip address prefix-list L102
R1(config-route-map)#  set community 1:2
R1(config-route-map)#!
R1(config-route-map)# route-map SET-COMMUNITY permit 40
R1(config-route-map)#  match ip address prefix-list L103
R1(config-route-map)#  set community 1:3
R1(config-route-map)#!

 R1のneighborコマンドに上のルートマップを出力側で設定します。また、コニュニティも広告するため、send-communityも忘れず設定します。

R1(config)# router bgp 1
R1(config-router)# neighbor 192.168.12.2 send-community
R1(config-router)# neighbor 192.168.12.2 route-map SET-COMMUNITY out

 R2のBGPテーブルで個別ルートそれぞれにコミュニティ値が付与されていることを確認します。

R2# show ip bgp 172.16.0.0
BGP routing table entry for 172.16.0.0/24, version 57
Paths: (1 available, best #1, table default)
  Advertised to update-groups:
     1         
  Refresh Epoch 5
  1
    192.168.12.1 from 192.168.12.1 (172.16.3.1)
      Origin IGP, metric 0, localpref 100, valid, external, best
      Community: 1:0

R2# show ip bgp 172.16.1.0
BGP routing table entry for 172.16.1.0/24, version 54
Paths: (1 available, best #1, table default)
  Advertised to update-groups:
     1         
  Refresh Epoch 5
  1
    192.168.12.1 from 192.168.12.1 (172.16.3.1)
      Origin IGP, metric 0, localpref 100, valid, external, best
      Community: 1:1


R2# show ip bgp 172.16.2.0
BGP routing table entry for 172.16.2.0/24, version 53
Paths: (1 available, best #1, table default)
  Advertised to update-groups:
     1         
  Refresh Epoch 5
  1
    192.168.12.1 from 192.168.12.1 (172.16.3.1)
      Origin IGP, metric 0, localpref 100, valid, external, best
      Community: 1:2

R2# show ip bgp 172.16.3.0
BGP routing table entry for 172.16.3.0/24, version 52
Paths: (1 available, best #1, table default)
  Advertised to update-groups:
     1         
  Refresh Epoch 5
  1
    192.168.12.1 from 192.168.12.1 (172.16.3.1)
      Origin IGP, metric 0, localpref 100, valid, external, best
      Community: 1:3

 R2で学習している個別ルートを集約し、R3へ広告します。 集約ルートには個別ルートのコミュニティを継承させるため、aggregate-addressas-setを付与し、かつ、neighborコマンドのsend-communityも設定します。 今回は集約ルートのみ(summary-only)を広告します。

R2(config)# ip bgp-community new-format

R2(config)# router bgp 2
R2(config-router)# neighbor 192.168.23.3 send-community
R2(config-router)# aggregate-address 172.16.0.0 255.255.252.0 summary-only as-set

 R2のBGPテーブルを見ると、集約ルートが生成されていることが確認できます。

R2# show ip bgp
BGP table version is 70, local router ID is 2.2.2.2
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, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 s>  172.16.0.0/24    192.168.12.1             0             0 1 i
 *>  172.16.0.0/22    0.0.0.0                            32768 i
 s>  172.16.1.0/24    192.168.12.1             0             0 1 i
 s>  172.16.2.0/24    192.168.12.1             0             0 1 i
 s>  172.16.3.0/24    192.168.12.1             0             0 1 i

 さらに集約ルートの詳細を見ると、個別ルートのすべてのコミュニティ値(1:1〜1:4)を引き継いでいることがわかります。

R2# show ip bgp 172.16.0.0 255.255.252.0
BGP routing table entry for 172.16.0.0/22, version 71
Paths: (1 available, best #1, table default)
  Advertised to update-groups:
     1          2         
  Refresh Epoch 1
  1, (aggregated by 2 2.2.2.2)
    0.0.0.0 from 0.0.0.0 (2.2.2.2)
      Origin IGP, localpref 100, weight 32768, valid, aggregated, local, best
      Community: 1:0 1:1 1:2 1:3

 R3のBGPテーブルを確認します。R3でもBGPのコミュニティのフォーマットを変更するよう設定します。

R3(config)# ip bgp-community new-format

R3# show ip bgp 172.16.0.0
BGP routing table entry for 172.16.0.0/22, version 50
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 3
  2 1, (aggregated by 2 2.2.2.2)
    192.168.23.2 from 192.168.23.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, external, best
      Community: 1:0 1:1 1:2 1:3

 コミュニティ値として1:1〜1:4が付与されていることがわかります。

スポンサーリンク

集約ルートに対する属性値の継承設定(advertise-map)

 ここで、advertise-mapにより継承する属性を操作します。 例えば、R2からR3へ広告する集約ルートで、集約前ルートである172.16.1.0/24と172.16.2.0/24に付与されているコミュニティのみ継承したいとします。

 まず、継承したい個別ルートを指定します。今回はアクセスリストを使用します。

R2(config)# access-list 1 permit 172.16.1.0 0.0.0.255
R2(config)# access-list 1 permit 172.16.2.0 0.0.0.255

 上のアクセスリストを指定するルートマップを設定します。

R2(config)# route-map ATTRIBUTE permit 10 
R2(config-route-map)#  match ip address 1
R2(config-route-map) #exit

 aggregate-addressのオプションであるadvertise-mapにより、ルートマップを指定します。

R2(config)# router bgp 2
R2(config-router)# aggregate-address 172.16.0.0 255.255.252.0 as-set summary-only advertise-map ATTRIBUTE

R3のBGPテーブルで集約ルートを確認すると、コミュニティが1:1と1:2のみ継承されていることが確認できます。

R3# show ip bgp 172.16.0.0 255.255.252.0
BGP routing table entry for 172.16.0.0/22, version 15
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 2
  2 1, (aggregated by 2 2.2.2.2)
    192.168.23.2 from 192.168.23.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, external, atomic-aggregate, best
      Community: 1:1 1:2

その他 BGP関連記事は   >>  ルーティングプロトコル(BGP)まとめ << より参照できます。

コメント