目次
概要
BGPで特定のネイバーとルート情報を送受信する際にフィルタをかけられます。BGPでのルートフィルタでは、「どうやってルート情報を特定するか」が重要です。
BGPルートフィルタの種類について解説します。
BGPルートフィルタの種類
BGPで特定のネイバーと送受信するルート情報をフィルタするためには、次の方法があります。
- ディストリビュートリスト
- プレフィクスリスト
- フィルタリスト
- ルートマップ
この中でルートマップは、単純なフィルタだけではなくパスアトリビュートの付加・変更もできます。
ルートフィルタの種類として、ネイバーへ適用するコマンドをカタカナ表記しています。
ルートフィルタのポイント
ルートフィルタで大事なポイントは2つあります。
- フィルタ対象のルートの指定
- フィルタするタイミング
BGPの場合、フィルタするタイミングはネイバーとの送信/受信で決まっているので、大事なことは「どうやってルート情報を特定するか」ということです。以降で、「どうやってルート情報を特定するか」にフォーカスして、各フィルタ方法を解説します。
IGPでのルートのフィルタは、インタフェースでルート情報を送信/受信したり再配送したりするタイミングで行います。
他のルーティングプロトコルからBGPへ再配送するときにフィルタをかけることができますが、ここではネイバーとの送信/受信のタイミングを考えます。
フィルタするルート情報の指定
ディストリビュートリスト
ディストリビュートリストは、フィルタする対象のBGPルート情報をACLで指定します。標準ACLによってルート情報のネットワークアドレスを参照します。標準ACLは、本来、IPパケットの送信元IPアドレスを条件とします。しかし、ディストリビュートリストで利用する場合、標準ACLは、ネットワークアドレスの条件となります。
ネットワークアドレスだけではなく、サブネットマスクも参照してフィルタするルート情報を指定するために拡張ACLを利用します。拡張ACLの送信元IPアドレスの条件はネットワークアドレスとして解釈します。そして、宛先IPアドレスの条件をサブネットマスクとして解釈します。
標準/拡張ACLのpermit/denyは、ルート情報を許可または拒否するという動作です。具体的には、inで適用しているとpermitはルート情報を受信します。outで適用しているとpermitはルート情報をアドバタイズするという意味です。また、inで適用しているときにdenyはルート情報を破棄します。outで適用しているとdenyはルート情報をアドバタイズしません。
ディストリビュートリストで利用するACLは、「用途によってACLの意味が変わる」ということの典型的な例です。
関連記事
ディストリビュートリストによるBGPルートフィルタの設定と確認コマンドについて、以下の記事もあわせてご覧ください。
ディストリビュートリストによるBGPルートフィルタの具体的な設定例です。
プレフィクスリスト
プレフィクスリストによって、フィルタする対象のBGPルート情報を特定して、動作を決めます。プレフィクスリストは、ネットワークアドレスのビットパターンとサブネットマスクの範囲を条件として設定できます。
そして、プレフィクスリストのpermit/denyは、ルート情報を許可または拒否するという動作です。
関連記事
プレフィクスリストによるBGPルートフィルタの設定と確認コマンドについて、以下の記事もあわせてご覧ください。
プレフィクスリストによるBGPルートフィルタの具体的な設定例です。
フィルタリスト
フィルタリストは、フィルタする対象のBGPルート情報をAS_PATH ACLによって特定します。AS_PATH ACLはBGPルートに特有のAS_PATHアトリビュートを参照します。AS_PATHに含まれるAS番号の文字列を正規表現の条件として設定します。
AS_PATH ACLのpermit/denyは、ルート情報を許可または拒否するという動作です。
関連記事
フィルタリスト(AS_PATH ACL)によるBGPルートフィルタの設定と確認コマンドについて、以下の記事もあわせてご覧ください。
フィルタリスト(AS_PATH ACL)によるBGPルートフィルタの具体的な設定例です。
ルートマップ
ルートマップは、結局、上記のディストリビュートリスト/プレフィクスリスト/フィルタリストを参照します。ルートマップのmatch条件でディストリビュートリスト/プレフィクスリスト/フィルタリストを関連付けることで、フィルタ対象のBGPルートを特定します。
ルートマップを利用であれば、ディストリビュートリスト/プレフィクスリスト/フィルタリストを組み合わせたANDやOR条件でルートを指定することもできます。
match条件でディストリビュートリスト/プレフィクスリスト/フィルタリスト以外の条件を設定してももちろんOKです。
ルートマップのpermit/denyは、ルート情報を許可または拒否するという動作です。ルートマップのpermit/denyとルートマップで参照しているディストリビュートリスト/プレフィクスリスト/フィルタリストのpermit/denyの組み合わせが少しややこしくなるので注意してください。最終的にルートマップのpermit/denyでルート情報を許可または拒否することを明確にしてください。そして、permitしたBGPルートに対して、追加でパスアトリビュートをセットできます。
関連記事
ルートマップ(route-map)によるBGPルートフィルタの設定と確認コマンドについて、以下の記事もあわせてご覧ください。
ルートマップ(route-map)によるBGPルートフィルタの具体的な設定例です。
ルート情報の指定のまとめ
各フィルタ方法において、参照する情報やルートに指定方法についてまとめたものが次の表です。
フィルタ方法 | 参照する情報 | ルートの指定 |
---|---|---|
ディストリビュートリスト | ネットワークアドレス | 標準アクセスリスト |
ネットワークアドレス+ サブネットマスク | 拡張アクセスリスト | |
プレフィクスリスト | ネットワークアドレス+ サブネットマスク | プレフィクスリスト |
フィルタリスト | AS_PATHアトリビュート | AS_PATHアクセスリスト |
ルートマップ | 上記すべて | 上記すべて |
また、次の図は、それぞれのルートフィルタによって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プレフィックスの交換