目次
概要
ルートマップによるBGPルートフィルタの設定と確認コマンドについて解説します。ルートマップを利用すると、標準/拡張ACL、プレフィクスリスト、AS_PATH ACLなどを参照してフィルタするBGPルートを特定できます。また、フィルタだけではなく、BGPルートに追加でパスアトリビュートをセットできます。
関連記事
ルートマップによるBGPルートフィルタを理解するためには、ルートマップで参照する標準/拡張ACL、プレフィクスリスト、AS_PATH ACLでのルートフィルタを理解しておかなければいけません。以下の記事もあわせてご覧ください。
ルートマップによるBGPルートフィルタの設定の流れ
ルートマップでBGPルートをフィルタするための設定の流れは、以下の通りです。
- ルートマップでフィルタするルート情報を特定する
- 特定のネイバーへルートマップを適用する
- BGPルートを再送受信する
ルートマップによるBGPルートフィルタの設定コマンド
フィルタするためのルートマップを作成し、特定のBGPネイバーへ適用します。設定コマンドは以下の通りです。
BGPルートフィルタ ルートマップ
(config)#route-map <mat-tag> {permit | deny} [<seq-num>]
(config-route-map)#match <condition>
(config-route-map)#set <action>
(config)#router bgp <AS>
(config-router)#neighbor <ip-address> route-map <map-tag> {in|out}
<map-tag> : 任意のルートマップ名
permit | deny : permitまたはdenyを指定
<seq-num> : シーケンス番号。省略すると「10」
<condition> : 条件
<action> : 追加の処理
<AS> : AS番号
<ip-address> : BGPネイバーのIPアドレス
<map-tag>は、ルートマップの名前です。あまり長くしすぎないでわかりやすいルートマップ名を決めてください。<seq-num>は処理の順序です。<seq-num>が小さい順から処理を行います。
permit | deny でBGPルートを許可または拒否します。そして、match <condition>でフィルタ対象のBGPルートを特定します。標準/拡張ACL、ディストリビュートリスト、AS_PATH ACLを参照できます。その他の条件を設定することもできます。matchを省略すると、すべてです。
さらに、set <action>でpermitしたBGPルートに追加のアクションを設定します。主にパスアトリビュートをセットします。
以降、permit | deny およびmatch、setの設定についてもう少し詳しくみていきます。
permit | deny
BGPルートをどのように扱うかは、<map-tag>のうしろのpermit|denyです。このことをきちんと理解しておきましょう。match条件で参照する標準/拡張ACL、プレフィクスリスト、AS_PATH ACLのpermit|denyはmatch条件に一致しているかどうかを意味しているだけです。match条件に一致したBGPルートを<map-tag>のあとのpermit | denyの処理をします。
ルートマップのpermitはルート情報を許可します。ルートマップをinで適用していると、ネイバーから該当のBGPルートを受信します。ルートマップをoutで適用していると、ネイバーへ該当のBGPルートをアドバタイズします。そして、denyはルート情報の拒否です。つまり、ルートマップをinで適用しているときはネイバーからアドバタイズされた該当のBGPルートを破棄します。outで適用していれば、ネイバーへ該当のBGPルートをアドバタイズしません。
match条件 標準/拡張ACL
ルートマップのmatch条件で標準/拡張ACLを参照するための設定は以下です。
ルートマップ match条件 標準/拡張ACL
(config)#route-map <mat-tag> {permit | deny} [<seq-num>]
(config-route-map)#match ip address {<ACL-num> | <ACL-name>}
<ACL-num> : 参照するACL番号
<ACL-name> : 参照するACL名
標準ACLであれば、BGPルートのネットワークアドレスだけをチェックします。
拡張ACLであれば、BGPルートのネットワークアドレス+サブネットマスクをチェックします。
match条件 プレフィクスリスト
ルートマップのmatch条件でプレフィクスリストを参照するための設定は以下です。
ルートマップ match条件 プレフィクスリスト
(config)#route-map <mat-tag> {permit | deny} [<seq-num>]
(config-route-map)#match ip address prefix-list <prefix-list-name>
<prefix-list-name> : 参照するプレフィクスリスト名
プレフィクスリストを参照すると、BGPルートのネットワークアドレス+サブネットマスクをチェックします。
match条件 AS_PATH ACL
ルートマップのmatch条件でAS_PATH ACLを参照するための設定は以下です。
ルートマップ match条件 AS_PATH ACL
(config)#route-map <mat-tag> {permit | deny} [<seq-num>]
(config-route-map)#match as-path <as-path-acl-num>
<as-path-acl-num> : AS_PATH ACL番号
AS_PATH ACLを参照すると、BGPルートのAS_PATHアトリビュートをチェックします。
set <action>
BGPルートをフィルタするだけでなく、追加でパスアトリビュートをセットするにはset <action>の設定を行います。set <action>によって、permitされたBGPルートのパスアトリビュートをセットします。
BGPパスアトリビュートのセットに関連する主なset <action>は以下の表にまとめています。
set <action> | 概要 |
---|---|
set weight | WEIGTHをセットします。 |
set local-preference | LOCAL_PREFをセットします。 |
set origin | ORIGINをセットします。 |
set ip next-hop | NEXT_HOPをセットします。 |
set metric | MEDをセットします。 |
set as-path prepend | AS_PATHにプリペンドします。 |
set community | COMMUNITYをセットします。 |
set extcommunity | 拡張COMMUNITYをセットします。 |
暗黙のdeny
ルートマップにも標準/拡張ACL、プレフィクスリスト、AS_PATH ACLと同様に暗黙のdenyがあります。denyのシーケンスの条件しかないと、結局は暗黙のdenyによってすべてのBGPルートがdenyになってしまうので注意してください。
BGPルートの再送受信
ルートマップをネイバーに適用するだけでは、ルートフィルタは反映されません。BGPルートの再送受信が必要です。ルートマップを適用している方向によって、再送または再受信してください。特権EXECモードで次のコマンドを利用します。
BGPルート 再送受信
#clear ip bgp <ip-address> {in|out}
<ip-address> : ネイバーのIPアドレス
ルートマップによるBGPルートフィルタの確認コマンド
ルートマップによるBGPルートフィルタを確認するための主なshowコマンドを以下の表にまとめています。
コマンド | 概要 |
---|---|
#show route-map | BGPルートを特定するためのルートマップを確認します。また、ルートマップで参照している標準/拡張ACL、プレフィクスリスト、AS_PATH ACLもあわせて確認してください。 |
#show ip protocols | BGPネイバーに適用されているルートマップを確認します。 |
#show ip bgp | BGPテーブルを確認します。 |
#show ip bgp neighbor advertised-routes | 指定したBGPネイバーへアドバタイズするBGPルートを確認します。 |
#show ip bgp neighbor routes | 指定したBGPネイバーから受信したBGPルートを確認します。 |
まとめ
ポイント
- ルートマップによるBGPルートフィルタの設定の流れは以下の通りです。
- ルートマップでフィルタするルート情報を特定する
- 特定のネイバーへルートマップを適用する
- BGPルートを再送受信する
- ルートマップのmatch条件で標準/拡張ACL、プレフィクスリスト、AS_PATH ACLなどを参照してフィルタするBGPルートを特定します。
- match条件に一致したBGPルートをどのように扱うかは<map-tag>のあとの permit | deny です。
関連記事
以下の記事は、ルートマップ(route-map)による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プレフィックスの交換