ルートフィルタとは

ルートフィルタリングとは

 ルーティングプロトコルは、ルート情報をルータ同士で交換することによってルーティングを可能にしていますが、特定のルートを隠したい。ルート再配送時において、不要なルートを除外したいケースも時と場合によっては出てきます。

例えば、次のようなケースです。

ネットワークを隠蔽したい

 ルーティングプロトコルを走らせると、各ルータが学習したルート情報は、他のルータに送信され経路情報がルータ間で共有されます。

 この各ルータ同士でルート情報を教えあうことでルーティングは成り立っているのですが、場合によってこのことが裏目に出てしまうことがあります。知られたくない内部ルートを外部に知られてしまうのです。

 場合によっては、特定のルートを隠したい時もあります。そんな時、特定のルートをフィルタすることで外部のルータに対して内部ネットワークを隠蔽することができます。

不要な再配送を制限したい

不適切なルーティングが行われる例については、こちらを参照して下さい。

→「ルートフィルタ(不適切なルーティング例)

 ルート再配送時における注意事項については、「ルート再配送(シードメトリック)」で述べましたが、ルートの再配送を行うと次のような現象が発生する場合があります。

  • 必ずしも最適なルートにならない
  • ルーティングループが発生してしまう

 そもそも、ルーティングプロトコルが違えば、メトリックも違いますし、アルゴリズムも違うわけですから、異なるルーティングプロトコル間では、完全互換はありません。強引に調整しているに過ぎません。

考え方の違うネットワーク間でルート情報がやり取りされれば、どうしても混乱が起こってしまいます。

下のネットワーク構成を見て下さい。

Router_B、Router_Cの2台は、RIPネットワーク、IGRPネットワークの境界に位置しています。

 Router_B、Router_Cに再配送の設定を行うことで、RIPネットワークと、IGRPネットワークが相互に接続可能になります。

 ところが、RIPネットワークの「172.16.0.0/16」ルートがRouter_Bで、IGRPネットワークへ再配送され、その結果、Router_CでIGRPの経由として学習してしまうことがあります。

Router_Cは、「172.16.0.0/16」へのルートをRIP、IGRPで学習し、2つルートを持つことになります。

どちらのルートをRouter_Cは、採用するのでしょうか?

Router_Cは、アドミニストレーティブディスタンスを比較します。

  • RIP・・・120
  • IGRP・・・100

Router_Cは、アドミニストレーティブディスタンスの値が低いIGRPの経路を採用してしまいます。

 Router_Cにとって「172.16.0.0/16」へのルートは、Router_Aを経由すれば直ぐに到達できますし、帯域幅も128kbpsで、Router_Bを経由するより高速です。にもかかわらず、Router_Dを経由するルートを採用してしまいます。

※ルータを設定する順番やルータの電源を入れる順番によっては、このようにならない場合もあります。その場合は、Router_BやRouter_C上のインタフェースをUP、Downさせてみて下さい。そして「clear ip route *」コマンドを使って強制的にルーティングテーブルを消してみて下さい。奇妙ですが、ルートが変わります。

または、設定を保存してから、ルータの起動する順番を変えてみて下さい。

これでは、最適なルートを選択できたとは言えません。

そのような場合、不要なルートをフィルタすることで不適切なルーティングを防ぐことができます。

続きは「ルートフィルタ(不適切なルーティング例)」で、実際にこのネットワークを構築してみます。