概要

BGPで特定のネイバーとルート情報を送受信する際にフィルタをかけられます。BGPでのルートフィルタでは、「どうやってルート情報を特定するか」が重要です。

BGPルートフィルタの種類について解説します。

BGPルートフィルタの種類

BGPで特定のネイバーと送受信するルート情報をフィルタするためには、次の方法があります。

  • ディストリビュートリスト
  • プレフィクスリスト
  • フィルタリスト
  • ルートマップ

この中でルートマップは、単純なフィルタだけではなくパスアトリビュートの付加・変更もできます。

ルートフィルタの種類として、ネイバーへ適用するコマンドをカタカナ表記しています。

ルートフィルタのポイント

ルートフィルタで大事なポイントは2つあります。

  1. フィルタ対象のルートの指定
  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ルート情報を特定して、動作を決めます。プレフィクスリストは、ネットワークアドレスのビットパターンとサブネットマスクの範囲を条件として設定できます。

そして、プレフィクスリストのpermit/denyは、ルート情報を許可または拒否するという動作です。

フィルタリスト

フィルタリストは、フィルタする対象のBGPルート情報をAS_PATH ACLによって特定します。AS_PATH ACLはBGPルートに特有のAS_PATHアトリビュートを参照します。AS_PATHに含まれるAS番号の文字列を正規表現の条件として設定します。

AS_PATH ACLのpermit/denyは、ルート情報を許可または拒否するという動作です。

ルートマップ

ルートマップは、結局、上記のディストリビュートリスト/プレフィクスリスト/フィルタリストを参照します。ルートマップのmatch条件でディストリビュートリスト/プレフィクスリスト/フィルタリストを関連付けることで、フィルタ対象のBGPルートを特定します。

ルートマップを利用であれば、ディストリビュートリスト/プレフィクスリスト/フィルタリストを組み合わせたANDやOR条件でルートを指定することもできます。

match条件でディストリビュートリスト/プレフィクスリスト/フィルタリスト以外の条件を設定してももちろんOKです。

ルートマップのpermit/denyは、ルート情報を許可または拒否するという動作です。ルートマップのpermit/denyとルートマップで参照しているディストリビュートリスト/プレフィクスリスト/フィルタリストのpermit/denyの組み合わせが少しややこしくなるので注意してください。最終的にルートマップのpermit/denyでルート情報を許可または拒否することを明確にしてください。そして、permitしたBGPルートに対して、追加でパスアトリビュートをセットできます。

ルート情報の指定のまとめ

各フィルタ方法において、参照する情報やルートに指定方法についてまとめたものが次の表です。

フィルタ方法参照する情報ルートの指定
ディストリビュートリストネットワークアドレス標準アクセスリスト
ネットワークアドレス+ サブネットマスク 拡張アクセスリスト
プレフィクスリストネットワークアドレス+ サブネットマスクプレフィクスリスト
フィルタリストAS_PATHアトリビュートAS_PATHアクセスリスト
ルートマップ上記すべて上記すべて
表 BGPルートフィルタの特徴

また、次の図は、それぞれのルートフィルタによってBGPルート情報のどの部分を参照しているかをまとめたものです。

図 BGPでのルートフィルタ
図 BGPでのルートフィルタ

ルートマップが最も柔軟でさまざまな情報に基づいて、BGPルートをフィルタできます。ルートマップはわかりやすくいえば、ジョーカーみたいに万能です。でも、ルートマップをきちんと利用するには、ディストリビュートリスト/プレフィクスリスト/フィルタリストを理解していることが前提です。

まとめ

ポイント

  • 特定のネイバーと送受信するBGPルートをフィルタすることができます。
  • BGPルートのフィルタのポイントは、「どうやってルート情報を特定するか」です。

BGPの仕組み