ルートフィルタとは

ルートフィルタは、ルーティングプロトコル(ルーティングプロセス)によって送受信するネットワークのルート情報をフィルタする機能です。ルートフィルタにより、特定のネットワークのルート情報のみを他のルータへ送信する、あるいは、特定のネットワークのルート情報を他のルータへ送信しないといった制御ができます。ルート情報の受信の場合も同様の制御ができます。また、再配送時にもフィルタをかけることができます。

ルートフィルタの目的

ルートフィルタを利用する目的として、主に以下の2つあります。

  • 特定のネットワークを隠蔽する
  • 再配送時の不適切なルーティングを防止する

特定のネットワークを隠蔽する

ルーティングプロトコルでルート情報を他のルータに送信するということは、ネットワークの存在を通知し、そのネットワーク宛のパケットを受け入れることを意味します。特定のネットワークのルート情報をフィルタすることで、他のルータに対してそのネットワークを隠蔽しアクセスさせないようにします。

特定のネットワークを隠蔽
図 特定のネットワークを隠蔽

再配送時の不適切なルーティングを防止する

複数のルーティングプロトコルを利用しているときに、再配送を行います。ルーティングドメインの境界となるルータが複数存在していて、複数のルータで再配送すると、不適切なルーティングになってしまうことがあります。たとえば、以下のネットワーク構成を考えます。

不適切なルーティングの例
図 不適切なルーティングの例
図では、ルータ間のリンクの詳細は省略しています。

RIPドメインとOSPFドメインの境界となるルータがR1とR2の2台存在しているネットワーク構成です。そして、RIPドメインの192.168.1.0/24のルート情報をR1でOSPFに再配送しています。R2は192.168.1.0/24のルート情報をRIPルートとOSPF外部ルートとして受信します。R2はどちらのルート情報が最適ルートであるかをアドミニストレイティブディスタンスで決定することになります。RIPルートとOSPF外部ルートでは、OSPF外部ルートが優先されます。そのため、R2から192.168.1.0/24へのパケットの転送経路は最適なものではなくなってしまいます。

R2でもともとRIPドメインのルート情報をOSPFで受信しないようにルートフィルタを設定することで、この例のような不適切なルーティングを防止できます。R2のルーティングテーブルには、192.168.1.0/24のルート情報としてR3から受信したRIPルートが登録されるようになります。

不適切なルーティングの防止
図 不適切なルーティングの防止
ルートフィルタではなく、アドミニストレイティブディスタンスを調整することでも不適切なルーティングを防止できます。

パッシブインタフェース(passive-interface)

ルートフィルタの最も極端のものがパッシブインタフェースです。パッシブインタフェースは、ルーティングプロトコルのパケットの送信をすべて止める機能です。パッシブインタフェースによって、ルーティングプロトコルのパケットをいっさい送信しなくなるので、そのインタフェースを通じてOSPFやEIGRPでネイバーも確立できなくなります。

パッシブインタフェースの設定は、ルーティングプロトコルのコンフィグレーションモードで次のコマンドを使います。

(config-router)#passive-interface <interface>

パッシブインタフェースにしたいインタフェースがたくさんある場合は、いったんすべてのインタフェースをパッシブインタフェースにして、ルート情報を送信したいインタフェースのパッシブ指定を解除すると設定が簡素化されます。そのためには、次のような設定を行います。

(config-router)#passive-interface default
(config-router)#no passive-interface <interface>

パッシブインタフェースは、ルータ間でルート情報を交換するというルーティングプロトコルの本来の目的を達成することができません。パッシブインタフェースを利用するのは、PCやサーバが接続されているインタフェースです。他のルータが接続されているインタフェースをパッシブインタフェースにしてはいけません。

パッシブインタフェースの利用
図 パッシブインタフェースの利用

柔軟なルートフィルタを行うには

デフォルトでは、ルーティングプロセスは最適ルートをすべてアドバタイズします。パッシブインタフェースはいっさいアドバタイズしなくなります。また、ルート情報はやってきたものをすべて受信するのがデフォルトです。100か0のルートの送受信ではなく、もっと柔軟に送受信するルート情報を制御するためには、以下のルートフィルタを利用します。

  • ディストリビュートリスト(distribute-list)
  • プレフィクスリスト(prefix-list)
  • ルートマップ(route-map)

IPルーティング応用