再帰的ルーティング(リカーシブスタティック)とその実装例

スポンサーリンク

ルーティングのNextHopアドレスは基本的には自身のConnectedルートのセグメントの中から指定します。ただし、NextHopを異なるセグメントにしても正しくルーティングされるケースがあります。しかも、存在しないIPアドレスをNextHopにしていても正しくルーティングされることさえあります。これは、再帰的ルーティングが動作しているためです。

例えば、以下の構成のR1において、192.168.10.0/24へのNextHopとして172.16.12.2 を指定しなければならないところを、172.16.23.1 としてしまったとします。

この場合、172.16.23.1 は自身のConnectedには無い(そもそも存在すらしない)ですが、このNWアドレスへのStaticルートを書いていますので、それを参照します。

つまり、192.168.10.0/24 へのNextHopは 172.16.23.1 、172.16.23.0/24 へのNextHopは 172.16.12.2 と再帰的にルーティングテーブルを探し、結果的に以下を得ます。

192.168.10.0/24 への NextHop は 172.16.12.2

このようにルーティングテーブルを再帰的に探すルータの動作を 再帰的ルーティング と呼びます。

再帰的ルーティングの使い道

再帰的ルーティングじゃないとできない実装はおそらくありませんが、「使うとしたらこのように使える」というものを1つ示します。

これは運用負荷を低減するテクニックですが、例えば下図のNW構成で、SW1が障害時にはSW2へルートを切り替えるケースを考えます。この場合、サーバファームのセグメントが複数にわたる場合、通常は全てのセグメントについてルーティング変更が必要になります。しかし、図のようにサーバファームへのルーティングをSW3のIPアドレスにしておけば、障害時にSW3へのルートを1つ切り替えれば、サーバファームの全てのルートを切り替えることができます。例では3セグメントですが、これが20~30 セグメントとかになると、便利になるでしょう。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする