概要

aggregate-addressコマンドで生成したBGP集約ルートのパスアトリビュートを制御するためのas-set/advertise-map/attribute-mapの設定のまとめです。

ネットワーク構成

次のネットワーク構成で、as-set、advertise-mapのオプションについて確認します。

図 as-set/advertise-map/attribute-map ネットワーク構成
図 as-set/advertise-map/attribute-map ネットワーク構成

R3 BGPルートの生成

R3でAS300内の100.100.1.0/24、100.100.2.0/24、100.100.3.0/24の3 つのBGPルートを生成して、R1へアドバタイズします。その際に、追加で次のようにアトリビュートを付加します。

ルートAS_PATHプリペンドCOMMUNITY
100.100.1.0/2410 20 30300:1
100.100.2.0/24111 222300:2
100.100.3.0/2410 20300:3
表 R3で付加する追加のアトリビュート

R3 BGPルートの生成とアトリビュート付加の設定

router bgp 300
 no synchronization
 bgp log-neighbor-changes
 network 100.100.1.0 mask 255.255.255.0
 network 100.100.2.0 mask 255.255.255.0
 network 100.100.3.0 mask 255.255.255.0
 neighbor 1.1.1.1 remote-as 100
 neighbor 1.1.1.1 ebgp-multihop 255
 neighbor 1.1.1.1 update-source Loopback0
 neighbor 1.1.1.1 send-community
 neighbor 1.1.1.1 route-map ADD_ATT out
 no auto-summary
!
ip bgp-community new-format
!
access-list 1 permit 100.100.1.0
access-list 2 permit 100.100.2.0
access-list 3 permit 100.100.3.0
!
route-map ADD_ATT permit 10
 match ip address 1
 set as-path prepend 10 20 30
 set community 300:1
!
route-map ADD_ATT permit 20
 match ip address 2
 set as-path prepend 111 222
 set community 300:2
!
route-map ADD_ATT permit 30
 match ip address 3
 set as-path prepend 10 20
 set community 300:3
!
route-map ADD_ATT permit 1000
!

R1のBGPテーブルは次のようになっています。

R1 show ip bgp

R1#show ip bgp
-- omitted --

   Network          Next Hop            Metric LocPrf Weight Path
*> 100.100.1.0/24   3.3.3.3                  0             0 300 10 20 30 i
*> 100.100.2.0/24   3.3.3.3                  0             0 300 111 222 i
*> 100.100.3.0/24   3.3.3.3                  0             0 300 10 20 i
R1#show ip bgp 100.100.1.0
BGP routing table entry for 100.100.1.0/24, version 25
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  172.16.1.11
  300 10 20 30
    3.3.3.3 (metric 2) from 3.3.3.3 (100.100.1.3)
      Origin IGP, metric 0, localpref 100, valid, external, best
      Community: 300:1
R1#show ip bgp 100.100.2.0
BGP routing table entry for 100.100.2.0/24, version 24
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  172.16.1.11
  300 111 222
    3.3.3.3 (metric 2) from 3.3.3.3 (100.100.1.3)
      Origin IGP, metric 0, localpref 100, valid, external, best
      Community: 300:2
R1#show ip bgp 100.100.3.0
BGP routing table entry for 100.100.3.0/24, version 23
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  172.16.1.11
  300 10 20
    3.3.3.3 (metric 2) from 3.3.3.3 (100.100.1.3)
      Origin IGP, metric 0, localpref 100, valid, external, best
      Community: 300:3

R1 通常の集約の設定

R1で100.100.1.0/24、100.100.2.0/24、100.100.3.0/24の3つのルートを単純にaggregate-addressコマンドで集約します。

R1 aggregate-address オプションなし

router bgp 100
 aggregate-address 100.100.0.0 255.255.0.0

R1のBGPテーブルに生成された集約ルート100.100.0.0/16を確認します。

R1 show ip bgp

R1#show ip bgp
-- omitted --

   Network          Next Hop            Metric LocPrf Weight Path
*> 100.100.0.0/16   0.0.0.0                            32768 i
*> 100.100.1.0/24   3.3.3.3                  0             0 300 10 20 30 i
*> 100.100.2.0/24   3.3.3.3                  0             0 300 111 222 i
*> 100.100.3.0/24   3.3.3.3                  0             0 300 10 20 i
R1#show ip bgp 100.100.0.0
BGP routing table entry for 100.100.0.0/16, version 26
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  3.3.3.3 172.16.1.11
  Local, (aggregated by 100 1.1.1.1)
    0.0.0.0 from 0.0.0.0 (1.1.1.1)
      Origin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic-aggregate, best

aggregate-addrssコマンドのオプションなしで集約すると、集約前ルートのAS_PATHアトリビュートに含まれるAS番号やCOMMUNITYが集約ルートにはいっさい現れないことがわかります。

as-setオプション

R1のaggregate-addressの設定にas-setオプションを追加して、集約ルートのアトリビュートを確認します。

R1 aggregate-address as-set

router bgp 100
 aggregate-address 100.100.0.0 255.255.0.0 as-set

as-setオプションを追加してから、R1のBGPテーブルを確認します。

R1 show ip bgp

R1#show ip bgp
BGP table version is 27, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 100.100.0.0/16   0.0.0.0                       100  32768 {300,10,20,30,111,222} i
*> 100.100.1.0/24   3.3.3.3                  0             0 300 10 20 30 i
*> 100.100.2.0/24   3.3.3.3                  0             0 300 111 222 i
*> 100.100.3.0/24   3.3.3.3                  0             0 300 10 20 i
R1#show ip bgp 100.100.0.0
BGP routing table entry for 100.100.0.0/16, version 27
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  3.3.3.3 172.16.1.11
  {300,10,20,30,111,222}, (aggregated by 100 1.1.1.1)
    0.0.0.0 from 0.0.0.0 (1.1.1.1)
      Origin IGP, localpref 100, weight 32768, valid, aggregated, local, best
      Community: 300:1 300:2 300:3

as-setオプションをつけることで、集約ルートに集約前ルートのAS番号やCOMMUNITYを継承させることができます。

図 as-setオプション
図 as-setオプション

advertise-mapオプション

as-setだけでは、すべての集約前ルートのアトリビュート(AS番号、COMMUNITY)を継承します。advertise-mapで、特定の集約前ルートからのみアトリビュートを継承するようにできます。

R1でadvertise-mapによって、100.100.1.0/24と100.100.3.0/24の集約前ルートのアトリビュートを継承するように設定します。

R1 advertise-map

access-list 1 permit 100.100.1.0
access-list 3 permit 100.100.3.0
!
route-map ADV-MAP permit 10
 match ip address 1
route-map ADV-MAP permit 20
 match ip address 3
!
router bgp 100
 aggregate-address 100.100.0.0 255.255.0.0 as-set advertise-map ADV-MAP

advertise-mapオプションを追加したあと、集約ルートのアトリビュートを確認します。

R1 show ip bgp

R1#show ip bgp 100.100.0.0
BGP routing table entry for 100.100.0.0/16, version 28
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  3.3.3.3 172.16.1.11
  {300,10,20,30}, (aggregated by 100 1.1.1.1)
    0.0.0.0 from 0.0.0.0 (1.1.1.1)
      Origin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic-aggregate, best
      Community: 300:1 300:3

ルートマップADV-MAPで100.100.1.0/24と100.100.3.0/24がpermitされるようにしています。ですから、集約ルート100.100.0.0/16には下記のアトリビュートが継承されるようになっています。

  • 100.100.1.0/24のアトリビュート
    • AS_PATH:300 10 20 30
    • COMMUNITY:300:1
  • 100.100.3.0/24のアトリビュート
    • AS_PATH:300 10 20
    • COMMUNITY:300:3
図 advertise-map
図 advertise-map

attribute-mapオプション

attribute-mapで集約ルートにさらにアトリビュートを追加します。100.100.0.0/16に対して、下記のアトリビュートを追加しましょう。

  • MED:50
  • LOCAL_PREFERENCE:500

R1での設定は次のようになります。

R1 attribute-map

route-map ATT-MAP permit 10
 set metric 50
 set local-preference 500
!
router bgp 100
 aggregate-address 100.100.0.0 255.255.0.0 as-set advertise-map ADV-MAP attribute-map ATT-MAP

attribute-mapオプションを追加したあと、集約ルートのアトリビュートを確認します。

R1 show ip bgp

R1#show ip bgp 100.100.0.0
BGP routing table entry for 100.100.0.0/16, version 30
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  3.3.3.3 172.16.1.11
  {300,10,20,30}, (aggregated by 100 1.1.1.1)
    0.0.0.0 from 0.0.0.0 (1.1.1.1)
      Origin IGP, metric 50, localpref 500, weight 32768, valid, aggregated, local, atomic-aggregate, best
      Community: 300:1 300:3

このようにattribute-mapオプションで指定したアトリビュートをセットして集約ルートを生成できるようになります。

BGPの仕組み