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

ルートフィルタを考えるときのポイントは次の2つです。

  • フィルタするルート情報の指定
  • フィルタを適用するタイミング

まず、フィルタするルート情報をきちんと指定しなければいけません。許可するべきルート情報あるいは、拒否するべきルート情報を決めます。そして、そのフィルタを適用するタイミングを決めます。このときに、ルーティングプロセスの動作をしっかりと意識しておきましょう。

以降で、この2つのポイントについて詳しく見ていきます。

フィルタするルート情報の指定

ルート情報に含まれるどのような情報に基づいて許可するか、それとも拒否するかを決定します。フィルタするルート情報の指定で最もよく利用するのが、ネットワークアドレス/サブネットマスクです。ルート情報のネットワークアドレス/サブネットマスクを指定して、許可するか拒否するかを決めるために主に次の3通りの設定を行います。

  • ディストリビュートリスト(distribute-list)
  • プレフィクスリスト(prefix-list)
  • ルートマップ(route-map)
ルート情報のネットワークアドレス/サブネットマスクの情報以外を見てフィルタをかけることも可能です。
フィルタするルート情報の指定
図 フィルタするルート情報の指定

ディストリビュートリスト(distribute-list)

ディストリビュートリストは、標準ACLによってルート情報のネットワークアドレスを指定して、許可(permit)または拒否(deny)するかを決定します。ネットワークアドレスしかみられないことに注意してください。

ACLはパケットフィルタリングで利用するときには、IPパケットのヘッダの情報を指定するために使います。それが、ディストリビュートリストとしてルートフィルタに利用するときには、ルート情報のネットワークアドレスを指定するために利用します。ACLは用途によって、その意味がまったく違ってくることに注意してください。


ディストリビュートリストによるルートフィルタの詳細は以下の記事をご覧ください。


プレフィクスリスト(prefix-list)

プレフィクスリストは、ルート情報のネットワークアドレス/サブネットマスクを指定して、許可(permit)または拒否(deny)します。プレフィクスリストの設定で、ネットワークアドレスのビットパターンとサブネットマスクの範囲を決めることができます。


プレフィクスリストによるルートフィルタの詳細は、以下の記事をご覧ください。


ルートマップ(route-map)

ルートマップを利用すると、ルート情報のネットワークアドレス/サブネットマスクだけではなく、それ以外の情報に基づいて許可(permit)または拒否(deny)します。また、許可したルート情報のメトリックの値を変更するなどもできます。

ルートマップでネットワークアドレス/サブネットマスクを見るときには、標準ACLまたはプレフィクスリストを関連づけます。

フィルタを適用するタイミング

フィルタするルート情報を決めたら、そのフィルタを適用するタイミングを考えます。フィルタを適用するタイミングとして、主に2つあります。

  • インタフェースでルート情報を送受信するとき
  • ルーティングプロセス間で再配送するとき

BGPを除いて、ルーティングプロトコルを設定するときには、最終的にはインタフェースで有効化します。ルーティングプロセスとインタフェースが関連付けられて、インタフェースからルート情報を送受信できるようになります。そのときにフィルタを適用することができます。

また、複数のルーティングプロセス間で再配送するときにフィルタを適用することも可能です。

フィルタを適用するタイミング
図 フィルタを適用するタイミング
BGPでは、インタフェースでルート情報を送信するときのフィルタの適用はできません。BGPでは、特定のネイバーとルート情報を送受信するときにフィルタを適用します。

OSPFでのルートフィルタの制限

OSPFを利用している場合、ルートフィルタの制限があります。それは、フィルタを適用するタイミングとしてインタフェースから送信するときの設定は機能しません。

設定自体はできてしまいますが、機能しません。

OSPFはリンクステート型ルーティングプロトコルです。OSPFでインタフェースから送受信される情報は、単純なネットワークアドレス/サブネットマスクになっているとは限りません。そのため、フィルタするルートの指定に引っかかりません。なお、OSPFと他のルーティングプロセス間で再配送するときのフィルタは有効です。