suppress-map による集約前ルートの広報抑制
BGP で大量のルートを受け取るのは望ましくはありません。ルート集約というのが解決策の 1 つです。
集約前ルートを全て広報したくない場合は summary-only を使うことで実現できます。ですが集約前ルートを一部だけ広報したくない場合は suppress-map により実現することができます。
例えば以下のケースを考えます。
RT3 で 10.0.4.0/23 と 10.0.6.0/24 をルート集約し、10.0.4.0/22 を生成します。その際、as-set により AS_PATH 属性を引き継ぐこととします。
RT3(config-router)# aggregate-address 10.0.4.0 255.255.252.0 as-set summary-only
as-set を使った場合、集約ルート 10.0.4.0/22 には集約元の AS_PATH (このケースでは AS=10 と AS=20) が残るため、RT1 と RT2 は集約ルートを受け入れません。(ループ回避のため BGP テーブルに載せません)
また、summary-only により集約前ルートも抑制されてしまうため、RT1 には 10.0.6.0/24 も来ません。そのため、RT1 には 10.0.6.0/24 へのルートが完全にもらえない状態となります。
そこで、summary-only を使うのではなく、suppress-map で 10.0.4.0/23 だけを抑制してみます。
RT3(config)# ip prefix-list 1 permit 10.0.4.0/23 RT3(config)# route-map SMAP RT3(config-route-map)# match ip address prefix-list 1 RT3(config-route-map)# exit RT3(config)# router bgp 30 RT3(config-router)# aggregate-address 10.0.4.0 255.255.252.0 as-set suppress-map SMAP
これで RT1 には 10.0.6.0/24 のルートを受け取れるようになりました。
RT3 の BGP テーブルを比較してみます。summary-only の場合は 10.0.4.0/23 と 10.0.6.0/24 の両方で s (suppressed) が表示されていましたが、suppress-map では 10.0.4.0/23 だけが s (suppressed) 表示となります。
[summary-only]
RT3# do sh ip bgp
Network Next Hop Metric LocPrf Weight Path
s 10.0.4.0/23 10.1.35.5 0 50 40 10 i
s> 10.1.13.1 0 0 10 i
*> 10.0.4.0/22 0.0.0.0 100 32768 {10,20} i
s> 10.0.6.0/24 10.1.23.2 0 0 20 i
[suppress-map]
RT3# do sh ip bgp
Network Next Hop Metric LocPrf Weight Path
s 10.0.4.0/23 10.1.35.5 0 50 40 10 i
s> 10.1.13.1 0 0 10 i
*> 10.0.4.0/22 0.0.0.0 100 32768 {10,20} i
*> 10.0.6.0/24 10.1.23.2 0 0 20 i
suppress-map は aggregate-address コマンド内で指定するため、全ネイバーに反映されます。
unsuppress-map による抑制解除
ところで先程の suppress-map の構成例でもまだ問題が残っています。
RT2 も 10.0.4.0/22 と 10.0.4.0/23 が受け取れないため、孤立してしまっていることです。そこで、RT2 に限定して 10.0.4.0/22 を送信する (つまり抑制を解除する) ことのできる、unsuppress-map を使います。
RT3(config)# ip prefix-list 1 permit 10.0.4.0/23 RT3(config)# route-map SMAP RT3(config-route-map)# match ip address prefix-list 1 RT3(config-route-map)# exit RT3(config)# router bgp 30 RT3(config-router)# aggregate-address 10.0.4.0 255.255.252.0 as-set suppress-map SMAP RT3(config-router)# neighbor 10.1.23.2 unsuppress-map SMAP
unsuppress-map は suppress-map と異なり、ネイバー単位で設定ができます。また、RT3 の BGP テーブル (show ip bgp) の状態は変わりません (unsuppress-map で指定した抑制ルートも変わらず s の表記のまま)。
summary-only と unsuppress-map
また、unsuppress-map は summary-only により抑制されたルートにも解除効果があります。また、別の利用例として、負荷分散への使い方もあります。
以下の例では、10.0.6.0/24 への抑制を解除し、ロンゲストマッチを使って下側のルート (10.1.122.0/24 セグメント) を優先的に使うように仕向けています。
RT1(config)# ip prefix-list 1 permit 10.0.6.0/24 RT1(config)# route-map UNSMAP RT1(config-route-map)# match ip address prefix-list 1 RT1(config-route-map)# exit RT1(config)# router bgp 10 RT1(config-router)# aggregate-address 10.0.4.0 255.255.252.0 as-set summary-only RT1(config-router)# neighbor 10.1.122.2 unsuppress-map UNSMAP
RT2 の BGP テーブルを確認します。
RT2# do sh ip bgp
Network Next Hop Metric LocPrf Weight Path
* 10.0.4.0/22 10.1.122.1 0 0 10 i
*> 10.1.121.1 0 0 10 i
*> 10.0.6.0/24 10.1.122.1 0 0 10 i
10.0.4.0/22 の NextHop が 10.1.121.1 で、10.0.6.0/24 の NextHop が 10.1.122.1 となっていることが確認できます。
コメント