目次
概要
ルートダンプニングは、BGPルートがフラップしたときにその影響を小さくするための機能です。BGPルートダンプニングの仕組みとCisco IOSでの設定コマンドについて解説します。
ルートダンプニングとは
特定のネットワークがアップダウンを繰り返してフラップ状態になると、トリガードアップデートにより、BGPのコンバージェンスプロセスが発生します。そのため、BGPを実行しているルータに大きな負荷がかかることがあります。また、BGPアップデートの頻発によってネットワークリソースの無駄にもなります。BGPでは、ルートのフラップの影響を小さくするためのルートダンプニング機能があります。
ルートダンプニングは、ルートのフラップが発生するとそのルートにペナルティを与えます。ペナルティが一定のしきい値(サプレスリミット)を超えるとそのルートをダンプニング状態として利用できないようにします。
ルートのペナルティは時間の経過とともに低下します。ダンプニング状態のルートはペナルティが再利用のしきい値(リユースリミット)を下回ると、再度利用できるようになります。
この図は、ルートダンプニングの制御の様子を表しています。ルートダンプニングを有効にしているルートに対するペナルティと時間のグラフです。
時間t1でルートがフラップすると、そのルートにペナルティが与えられます。デフォルトでペナルティの値は1000です。まだこの状態では、ペナルティはサプレスリミットを超えていませんのでダンプニングされずに、通常のトリガードアップデートが行われます。ルートに与えられたペナルティは時間の経過とともに低下します。デフォルトは15分ごとにペナルティは半分になります。この時間を半減期といいます。
時間t2で再度フラップすると、再びペナルティが与えられます。サプレスリミットを超えてしまったので、ルートはダンプニング状態となりルートが利用できなくなります。時間が経過してペナルティが減少して時間t3でリユースリミットを下回ると、ルートを再利用できるようになります。なお、フラップが継続してペナルティがリユースリミットを下回らなくても、最大抑制時間を経過するとダンプニング状態は解除されます。次の表に、ルートダンプニングの動作のパラメータをまとめています。
パラメータ | 意味 | デフォルト |
---|---|---|
ペナルティ | ルートがフラップしたときに与えられるペナルティ値。変更不可 | 1000 |
サプレスリミット | ルートをダンプニング状態にするときのペナルティのしきい値 | 2000 |
リユースリミット | ダンプニング状態を解除するペナルティのしきい値 | 750 |
半減期 | ルートのペナルティ値が半分になるまでの時間 | 15分 |
最大抑制時間 | ルートをダンプニング状態とする最大の時間 | 60分 |
なお、ルートダンプニングはEBGPネイバーから受信したBGPルートのみが対象です。IBGPネイバーから学習したルートは、ルートダンプニングは有効ではありません。
ルートダンプニングの設定コマンド
ルートダンプニングの設定は次のコマンドを使います。
ルートダンプニングの設定
(config)#router bgp <AS>
(config-router)#bgp dampening [<half-life> <reuse-limit> <suppress-limit> <max-suppress-time>]
<AS>:AS番号
<half-life>:半減期。デフォルト15分
<reuse-limit>:リユースリミット。デフォルト750
<suppress-limit>:サプレスリミット。デフォルト2000
<max-suppress-time>:最大抑制時間。デフォルト60分
このコマンドですべてのEBGPルートについてルートダンプニングを有効にします。bgp dampeningコマンドのみを入力すると、すべてのパラメータはデフォルトの値でルートダンプニングが有効になります。
また、特定のルートに対してのみルートダンプニングを有効にしたい場合は、ルートマップを関連付けます。
ルートダンプニングの設定 ルートマップの関連付け
(config)#router bgp <AS>
(config-router)#bgp dampening route-map <route-map-name>
<AS>:AS番号
<route-map-name>:ルートマップ名
関連付けたルートマップのmatch条件に一致したBGPルートについてルートダンプニングが有効化されます。また、ダンプニングのパラメータも細かく設定できます。ルートマップでダンプニングのパラメータを指定するのは、set dampeningコマンドを使います。
ルートマップ ダンプニングのパラメータ設定
(config)#route-map <map-tag> permit <seq>
(config-route-map)#match <condition>
(config-route-map)#set dampening <half-life> <reuse-limit> <suppress-limit> <max-suppress-time>
<map-tag>:ルートマップ名
<seq>:シーケンス番号
<condition>:match条件
<half-life>:半減期。デフォルト15分
<reuse-limit>:リユースリミット。デフォルト750
<suppress-limit>:サプレスリミット。デフォルト2000
<max-suppress-time>:最大抑制時間。デフォルト60分
なお、ルートのペナルティはshow ip bgp <prefix>で確認することができます。clear ip bgp flap-statisticsコマンドで、ペナルティをクリアしてダンプニング状態を手動で解除することもできます。
ルートダンプニングの設定例
次のネットワーク構成でルートダンプニングを設定します。
R1でルートダンプニングを有効にします。ダンプニングのパラメータは以下の通りです。
ペナルティ | ルートがフラップしたときに与えられるペナルティ値。変更不可 | 1000 |
サプレスリミット | ルートをダンプニング状態にするときのペナルティのしきい値 | 1500 |
リユースリミット | ダンプニング状態を解除するペナルティのしきい値 | 600 |
半減期 | ルートのペナルティ値が半分になるまでの時間 | 5分 |
最大抑制時間 | ルートのダンプニング状態におく最大の時間 | 20分 |
R1 ダンプニング有効化
router bgp 100 bgp dampening 5 600 1500 20
ISP1で100.1.1.0/24、100.1.2.0/24、100.1.3.0/24はループバックインタフェースでエミュレートしています。そのループバックインタフェースをシャットダウンします。すると、R1のBGPテーブルは次のようになります。
R1 BGPテーブル(初回のフラップ時)
R1#show ip bgp BGP table version is 13, 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 h 100.1.1.0/24 172.16.1.11 0 0 1 i h 100.1.2.0/24 172.16.1.11 0 0 1 i h 100.1.3.0/24 172.16.1.11 0 0 1 i R1#show ip bgp 100.1.1.0 BGP routing table entry for 100.1.1.0/24, version 5 Paths: (1 available, no best path) Flag: 0x820 Not advertised to any peer 1 (history entry) 172.16.1.11 from 172.16.1.11 (111.1.1.11) Origin IGP, metric 0, localpref 100, external Dampinfo: penalty 977, flapped 1 times in 00:00:12
ISP1でループバックインタフェースがシャットダウンされているにもかかわらず、R1のBGPテーブルに100.1.1.0/24、100.1.2.0/24、100.1.3.0/24が存在しているかのように見えますが、これは無効なルートです。ダンプニングを有効にしているため、フラップしたルートの履歴を記録しています。「h」はルートの履歴という意味です。詳細なルート情報を確認すると、フラップしたためにペナルティが与えられていることがわかります。
ISP1でループバックインタフェースを有効化します。そして、再びシャットダウンしてから有効化して、ルートをフラップさせます。R1でBGPテーブルを見ると、次のようになります。
R1 BGPテーブル(2回目のフラップ時)
R1#show ip bgp BGP table version is 13, 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 *d 100.1.1.0/24 172.16.1.11 0 0 1 i *d 100.1.2.0/24 172.16.1.11 0 0 1 i *d 100.1.3.0/24 172.16.1.11 0 0 1 i R1#show ip bgp 100.1.1.0 BGP routing table entry for 100.1.1.0/24, version 11 Paths: (1 available, no best path) Flag: 0x820 Not advertised to any peer 1, (suppressed due to dampening) 172.16.1.11 from 172.16.1.11 (111.1.1.11) Origin IGP, metric 0, localpref 100, valid, external Dampinfo: penalty 1761, flapped 2 times in 00:01:32, reuse in 00:07:50
2回目のフラップによって、ペナルティがサプレスリミットを超えたためにルートがダンプニング状態になっていることがわかります。ルートはR1のBGPテーブル上に存在していて、validであるもののそのルートを利用できずに、ネイバーにルートを送信しません。そのため、次のようにR3のBGPテーブルにはルートが存在しません。
R3 BGPテーブル(ダンプニング時)
R3#show ip bgp R3#
まとめ
ポイント
- BGPルートダンプニングは、ルートのフラップの影響を小さくするための機能です。
- BGPルートがフラップするとペナルティを与えて、しきい値を超えたBGPルートを一定時間利用不可能にします。
- ルートダンプニングは、そのルータで扱うBGPルート一括で有効化することができます。
- ルートマップによって特定の条件に基づいたBGPルートのみを対象にダンプニングを有効化できます。
BGPの仕組み
- BGPの概要 ~AS間でルート情報を交換~
- BGPの動作
- BGPの基本設定と確認コマンド
- BGPピアグループ(Peer Group) ~ネイバーの設定をまとめよう~
- BGPネイバーの状態
- BGPコンフェデレーションの設定
- BGPコンフェデレーションの設定例
- BGPネイバー認証
- BGP Well Known Mandatory アトリビュート -ORIGIN/AS_PATH/NEXT_HOP-
- 図解!BGPベストパス選択アルゴリズム
- BGP 基本的な設定についての演習[Cisco]
- BGPの基本的な設定についての演習 ~トラブルシュート~
- BGP KEEPALIVEタイマ/ホールドタイムの設定
- BGPルート 最小送信間隔の設定
- BGPルートダンプニング
- マルチホーム – インターネット接続の冗長化 –
- マルチホームAS BGPルートフィルタのポイント
- マルチホームAS ベストパス選択のポイント
- マルチホームAS IGPとBGPの連携のポイント
- マルチホームAS BGPの設定例
- IP-VPNでのBGPの利用 設定例
- BGPルートフィルタの種類
- BGPルートフィルタ -ディストリビュートリスト-
- BGPルートフィルタ -ディストリビュートリスト設定例-
- BGPルートフィルタ -プレフィクスリスト-
- BGPルートフィルタ -プレフィクスリスト設定例-
- BGPルートフィルタ -フィルタリスト(AS_PATH ACL)-
- BGPルートフィルタ -フィルタリスト(AS_PATH ACL)設定例-
- BGPルートフィルタ -ルートマップ(route-map)-
- BGPルートフィルタ -ルートマップ(route-map)設定例-
- BGP neighbor allowas-inコマンド
- BGP neighbor as-overrideコマンド
- BGPルート RIB Failure
- BGPルート アドミニストレイティブディスタンスの制御
- BGPルートの負荷分散
- BGPルート 条件付き生成
- BGPルート 条件付きアドバタイズ
- BGP ルート集約 自動集約
- BGPルート集約 networkコマンドによる集約
- BGPルート集約 networkコマンドによる集約 設定例
- BGP ルート集約 aggregate-addressコマンドによる集約
- aggregate-addressコマンドのオプション summary-only
- aggregate-addressコマンドのオプション attribute-map
- aggregate-addressコマンドのオプション as-set
- aggregate-addressコマンドのオプション advertise-map
- aggregate-addressコマンド as-set/attribute-map/advertise-map 設定例
- BGP選択型集約の概要
- BGP選択型集約 suppress-map
- BGP選択型集約 unsuppress-map
- BGP 選択型集約 suppress-map/unsuppress-map 設定例
- BGP local-as ~ネイバーに他のASのように見せる~
- BGP neighbor remove-private-ASコマンド
- bgp fast external-fallover
- BGP プレフィクス数の制限
- BGP COMMUNITYアトリビュートの使い方
- BGP Well-known COMMUNITYのルートフィルタ設定例
- BGP プライベートCOMMUNITYによるルート制御の設定例
- [演習]BGP応用 Part1:BGP基本設定
- [演習]BGP応用 Part2:ルート集約
- [演習]BGP応用 Part3:ポリシーベースルーティング
- [演習]BGP応用 Part4:トラブルシューティング
- BGP 設定ミスの切り分けと修正 Part1
- BGP 設定ミスの切り分けと修正 Part2
- BGP 設定ミスの切り分けと修正 Part3
- BGP 設定ミスの切り分けと修正 Part4
- BGP 設定ミスの切り分けと修正 Part5
- BGP 設定ミスの切り分けと修正 Part6
- BGP 設定ミスの切り分けと修正 Part7
- IPv6 BGPの設定例 Part1
- IPv6 BGPの設定例 Part2
- 2021年10月4日 Facebookに何が起こったか?
- IPv4 BGPネイバーでのIPv6プレフィックスの交換