unsuppress-mapによる選択型集約

unsuppress-mapは「suppress」を打ち消す「un」が接頭語についているので、「抑制しない」という意味です。unsuppress-mapの考え方は、まずsummary-onlyで集約前ルートを全部抑制しておきます。その上で、「ネイバー単位」で「抑制しない」集約前ルートを指定して、集約ルートとともにそのネイバーにアドバタイズするという動きになります。

unsuppress-mapの設定

unsuppress-mapの設定を考えます。まず、aggregate-addressのオプションとしてsummary-onlyを指定します。これで、集約前ルートをとりあえず全部抑制します。そして、次のように特定のネイバーに対してunsuppress-mapを指定します。

unsuppress-mapの設定

(config-router)#neighbor <ip-address> unsuppress-map <route-map-name>

<ip-address> : ネイバーのIPアドレス
<route-map-name> : 適用するルートマップ名

unsuppress-mapの後にはルートマップを指定します。このルートマップの中でpermitされたルートがunsuppressつまり送信されるようになります。

unsuppress-mapの設定例

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

以下の図のネットワークをサンプルネットワークとしてunsupress-mapの選択型集約を考えます。

図 選択型集約サンプルネットワーク
図 選択型集約サンプルネットワーク

R1では、AS2(R2)、AS3(R3)とEBGPを確立し100.1.1.0/24~100.1.4.0/24のルートをnetworkコマンドでアドバタイズします。R1(AS1)の設定は次の通りです。

R1

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

R2(AS2)、R3(AS3)はシンプルにR1とのEBGPネイバーを設定します。設定は下記の通りです。

R2

router bgp 2
 neighbor 12.12.12.1 remote-as 1
 neighbor 12.12.12.1 send-community

R3

router bgp 3
 neighbor 13.13.13.1 remote-as 1
 neighbor 13.13.13.1 send-community

unsuppress-mapの設定と確認

R1からR2へは集約ルート100.1.0.0/16とともに100.1.2.0/24、100.1.4.0/24の集約前ルートを一緒にアドバタイズします。一方、R1からR3へは集約ルート100.1.0.0/16とともに100.1.1.0/24、100.1.3.0/24の集約前ルートを一緒にアドバタイズする設定を行います。R1で下記のように設定します。

R1 unsuppress-mapの設定

route-map UNSUPPRESS_R2
 match ip address TO_R2
!
ip access-list standard TO_R2
 permit 100.1.2.0
 permit 100.1.4.0
!
route-map UNSUPPRESS_R3
 match ip address TO_R3
!
ip access-list standard TO_R3
 permit 100.1.1.0
 permit 100.1.3.0
!
router bgp 100
 aggregate-address 100.1.0.0 255.255.0.0 summary-only
 neighbor 12.12.12.2 unsuppress-map UNSUPPRESS_R2
 neighbor 13.13.13.3 unsuppress-map UNSUPPRESS_R3

設定してR1でBGPテーブルを見ると、次のようになります。

R1

R1#sh ip bgp
*Mar  1 00:27:37.216: %SYS-5-CONFIG_I: Configured from console by console
BGP table version is 14, local router ID is 100.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.1.0.0/16     0.0.0.0                            32768 i
s> 100.1.1.0/24     0.0.0.0                  0         32768 i
s> 100.1.2.0/24     0.0.0.0                  0         32768 i
s> 100.1.3.0/24     0.0.0.0                  0         32768 i
s> 100.1.4.0/24     0.0.0.0                  0         32768 i

summary-onlyが効いているので、集約前ルートの頭に全部「s」がついています。これでは、unsuppress-mapがちゃんと動作しているよくわかりません。そこで、実際にネイバーにアドバタイズしているBGPルートを確認しましょう。show ip bgp neighbors <neighbor-address> advertised-routesのコマンドで特定のネイバーにアドバタイズしたBGPルートを確認できます。

R1

R1#sh ip bgp neighbors 12.12.12.2 advertised-routes
BGP table version is 10, local router ID is 100.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.1.0.0/16     0.0.0.0                            32768 i
s> 100.1.2.0/24     0.0.0.0                  0         32768 i
s> 100.1.4.0/24     0.0.0.0                  0         32768 i
R1#sh ip bgp neighbors 13.13.13.3 advertised-routes
BGP table version is 10, local router ID is 100.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.1.0.0/16     0.0.0.0                            32768 i
s> 100.1.1.0/24     0.0.0.0                  0         32768 i
s> 100.1.3.0/24     0.0.0.0                  0         32768 i

これを見ると、R1からR2とR3へアドバタイズしているBGPルートは次のようになっています。

R1からR2:100.1.0.0/16、100.1.2.0/24、100.1.4.0/24
R1からR3:100.1.0.0/16、100.1.1.0/24、100.1.3.0/24

unsuppress-mapがきちんと機能していることがわかります。

なお、BGPルートを受け取るR2とR3側のBGPテーブルは次のようになっています。

R2

R2#sh ip bgp
BGP table version is 56, local router ID is 12.12.12.2
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.1.0.0/16     12.12.12.1               0             0 1 i
*> 100.1.2.0/24     12.12.12.1               0             0 1 i
*> 100.1.4.0/24     12.12.12.1      

R3

R3#sh ip bgp
BGP table version is 59, local router ID is 100.3.1.3
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.1.0.0/16     13.13.13.1               0             0 1 i
*> 100.1.1.0/24     13.13.13.1               0             0 1 i
*> 100.1.3.0/24     13.13.13.1               0             0 1 i

図 unsuppress-mapによる選択型集約
図 unsuppress-mapによる選択型集約

unsuppress-mapのまとめ

  • 選択型集約を行う方法
  • ネイバーごとに選択型集約を行う
  • neighbor unsuppress-mapコマンドの後ろにルートマップを指定する
  • ルートマップでpermitされたルートをアドバタイズする