目次
概要
BGPルートをアドバタイズするときに、BGPテーブル上に特定のBGPルートがある or ないという条件をつけることができます。BGPルートの条件付きアドバタイズについて解説します。
BGPルートの条件付きアドバタイズとは
BGPでは、特定のルート情報がBGPテーブルにあるorないという条件にしたがって、ルートをアドバタイズすることができます。これをルートの条件付きアドバタイズと呼んでいます。
BGPルートの条件付きアドバタイズの設定
条件付きアドバタイズには、neighbor advertise-mapコマンドを使います。コマンドの構文は次の通りです。
BGPルート 条件付きアドバタイズ
(config)#router bgp <AS>
(config-router)#neighbor <ip-address> advertise-map <route-map-name> {exist-map <route-map-name>|non-exist-map <route-map-name>}
<AS>:AS番号
<ip-address>:ネイバーのIPアドレス
advertise-map <route-map-name>:条件を満足したときにアドバタイズするルートの指定をルートマップで行います。
exist-map <route-map-name>:ルートマップで指定したルートがBGPテーブル存在すれば条件を満足。
non-exist-map <route-map-name>:ルートマップで指定したルートがBGPテーブルに存在しなければ条件を満足。
条件付きアドバタイズの動作は、まずexist-mapまたはnon-exist-mapでBGPテーブル上のルートをトラッキングして、条件を満足するかどうかを確認します。条件を満足すれば、advertise-mapで指定したルートがネイバーにアドバタイズされることになります。
BGPルートの条件付きアドバタイズの設定例(neighbor advertise-map non-exist-map)
次のネットワーク構成で条件付きアドバタイズの動作を確認します。
R1で100.1.1.0/24がないときに、R3へ199.1.1.0/24を送信するように条件付きアドバタイズの設定を行います。「条件となるBGPルートがない」ことからnon-exist-mapを利用します。R1では、次のような設定になります。
R1 条件付きアドバタイズの設定
access-list 3 permit 199.1.1.0 access-list 4 permit 100.1.1.0 ! route-map ADV-MAP permit 10 match ip address 3 ! route-map NON-EXIST permit 10 match ip address 4 ! router bgp 100 network 199.1.1.0 neighbor 3.3.3.3 advertise-map ADV-MAP non-exist-map NON-EXIST
標準ACL4で条件となるBGPルート「100.1.1.0/24」を指定しています。このACL4をルートマップ「NON-EXIT」で参照しています。また、条件付きアドバタイズの対象となるBGPルート「199.1.1.0/24」を標準ACL5で指定しています。最終的にはルートマップ「ADV-MAP」でACL5を参照します。
ネイバー3.3.3.3に対して、neighbor advertise-map non-exist-mapのコマンドで ADV-MAPとNON-EXITを関連付ければOKです。
R1のBGPテーブルおよびR3へ送信しているルートを確認します。
R1 BGPテーブル、R3へ送信しているルート
R1#show ip bgp BGP table version is 26, 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.1.1.0/24 172.16.1.11 0 0 1 i *> 100.1.2.0/24 172.16.1.11 0 0 1 i *> 100.1.3.0/24 172.16.1.11 0 0 1 i *> 199.1.1.0 0.0.0.0 0 32768 i R1#show ip bgp neighbors 3.3.3.3 advertised-routes BGP table version is 26, 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.1.1.0/24 172.16.1.11 0 0 1 i *> 100.1.2.0/24 172.16.1.11 0 0 1 i *> 100.1.3.0/24 172.16.1.11 0 0 1 i
BGPテーブルには、networkコマンドによって199.1.1.0/24が載せられています。ですが、BGPテーブルに100.1.1.0/24が存在しているために、R3へ199.1.1.0/24はアドバタイズされていません。
ここでISP1から100.1.1.0/24の送信を止めます。すると、R1のBGPテーブルから100.1.1.0/24が削除され、non-exist-mapの条件が満足されるようになります。そして、R1はadvertise-mapで指定した199.1.1.0/24のルートをR3へ199.1.1.0/24のルートを送信するようになります。
R1 BGPテーブル、R3へ送信しているルート(non-exit-mapの条件を満足)
R1#show ip bgp BGP table version is 31, 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.1.2.0/24 172.16.1.11 0 0 1 i *> 100.1.3.0/24 172.16.1.11 0 0 1 i *> 199.1.1.0 0.0.0.0 0 32768 i R1#show ip bgp neighbors 3.3.3.3 advertised-routes BGP table version is 32, 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.1.2.0/24 172.16.1.11 0 0 1 i *> 100.1.3.0/24 172.16.1.11 0 0 1 i *> 199.1.1.0 0.0.0.0 0 32768 i
まとめ
ポイント
- BGPルートのアドバタイズをするときに、BGPテーブル上に特定のBGPルートがある or ないという条件をつけることができます。
- BGPルートの条件付きアドバタイズのコマンドは次の通りです。
- (config)#router bgp <AS>
(config-router)#neighbor <ip-address> advertise-map <route-map-name> {exist-map <route-map-name>|non-exist-map <route-map-name>} - advertise-mapでルートマップを参照して、条件付きでアドバタイズするBGPルートを指定します。
- exist-mapまたはnon-exist-mapでルートマップを参照して、条件となるBGPルートを指定します。
- (config)#router bgp <AS>
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プレフィックスの交換