再配送とは

再配送(redistribution)とは、あるルーティングプロセスで収集したルート情報を他のルーティングプロセスのルート情報として変換する機能です。たとえば、RIPからOSPFへ再配送すると、RIPのルート情報をOSPFのルート情報に変換することができます。

「再配送」は「再配布」ということもあります。

ルーティングプロセスについて以下の記事をご覧ください。


再配送の必要性

ルータの内部の各ルーティングプロセスは独立してルート情報を収集しています。そして、デフォルトではルーティングプロセス間でルート情報を共有しません。1台のルータでRIPとOSPFのルーティングプロセスを同時に有効化していても、RIPのルート情報を他のOSPFルータへはアドバタイズしません。逆にOSPFのルート情報を他のRIPルータへアドバタイズしません。

簡単な例として、RIPとOSPFが混在している以下のネットワーク構成を考えましょう。

RIPとOSPFが混在しているネットワーク構成の例
図 RIPとOSPFが混在しているネットワーク構成の例
話を簡単にするために、R1-R2間、R1-R3間のネットワークアドレスは省略しています。10.1.1.0/24と192.168.1.0/24の2つのネットワークのルート情報のみに注目します。

OSPFとRIPの境界になっているR1では、OSPFもRIPも両方とも有効にしています。R2はOSPFで10.1.1.0/24のルート情報をR1へアドバタイズします。そして、R3は192.168.1.0/24のルート情報をR1へアドバタイズします。すると、R1のルーティングテーブルにはOSPFルートとして10.1.1.0/24が登録され、RIPルートとして192.168.1.0/24のルート情報が登録されます。

ルートのアドバタイズ
図 ルートのアドバタイズ
図はわかりやすくするためにOSPFでアドバタイズする情報をネットワークアドレス/サブネットマスクのフォーマットにしています。OSPFでアドバタイズする情報はLSAで、必ずしもネットワークアドレス/サブネットマスクのフォーマットになっているわけではありません。

R1でOSPFとRIPの両方を有効にしていますが、OSPFルート10.1.1.0/24をRIPでR3へアドバタイズしません。同様にRIPルート192.168.1.0/24をOSPFでR2へアドバタイズしません。そのため、R2のルーティングテーブルにはRIPドメインの192.168.1.0/24が登録されることはなく、R3のルーティングテーブルにはOSPFドメインの10.1.1.0/24が登録されません。ルーティングテーブルに登録されなければパケットをルーティングできないので、10.1.1.0/24と192.168.1.0/24間の通信はできません。つまり、RIPドメインとOSPFドメインの異なるルーティングプロトコルドメイン間の通信はできません。

ルーティングドメインまたはルーティングプロトコルドメインとは、特定のルーティングプロトコルを利用してルーティングテーブルを作成している範囲という意味です。
ルーティングプロトコルを利用せずにスタティックルートでルーティングテーブルを作成している範囲もルーティングドメインのひとつです。
ルーティングドメイン間の通信ができない
図 ルーティングドメイン間の通信ができない

異なるルーティングドメイン間で通信できるようにするために、ルーティングドメイン境界のルータで再配送の設定が必要です。ここまで考えているネットワーク構成例では、OSPFドメインとRIPドメインの境界になっているR1でOSPFとRIPの双方向再配送の設定が必要です。

R1でOSPFからRIPへ再配送の設定をすると、OSPFルートをRIPルートに変換して他のRIPルータへとアドバタイズできるようになります。つまり、OSPFルート10.1.1.0/24をRIPルートとしてR3へアドバタイズします。そして、RIPからOSPFへ再配送の設定をすると、RIPルート192.168.1.0/24をOSPFルートに変換してR2へアドバタイズできます。

R1でOSPFとRIPの双方向再配送を行えば、R2とR3のルーティングテーブルに異なるルーティングドメインのルート情報も登録されるようになり、ルーティングドメイン間の通信ができるようになります。

再配送するとルーティングドメイン間の通信が可能になる
図 再配送するとルーティングドメイン間の通信が可能になる

再配送の仕組み

再配送の仕組みを考えるときには、ルータの内部でルーティングプロセスをきちんと意識してください。再配送によって、あるルーティングプロセスの最適ルートを他のルーティングプロセスのルート情報に変換します。ルーティングプロセスはEIGRPトポロジテーブルやOSPF LSDBなどルート情報を保持するデータベースを持っています。再配送されたルート情報は、各ルーティングプロセスのデータベースに登録されます。

再配送の仕組み
図 再配送の仕組み

例として、ここまで考えているOSPFとRIPが混在しているネットワーク構成のR1で考えましょう。

R1でOSPFからRIPへ再配送すると、OSPFルート10.1.1.0/24をRIPルートに変換してRIPデータベースに10.1.1.0/24が登録されます。すると、R1からR3へ10.1.1.0/24がアドバタイズされるようになります。

R1 OSPFからRIPへ再配送
図 R1 OSPFからRIPへ再配送
OSPF LSDBの内容は簡略化して、ネットワークアドレス/サブネットマスクのフォーマットにしています。
ルータ間のネットワークのルート情報もありますが省略しています。10.1.1.0/24と192.168.1.0/24だけに注目しています。

そして、R1でRIPからOSPFへ再配送すると192.168.1.0/24をOSPFルートに変換して、OSPF LSDBに192.168.1.0/24が登録されます。すると、192.168.1.0/24はR1からOSPFルートとして、R2へアドバタイズされます。

R1 RIPからOSPFへ再配送
図 R1 RIPからOSPFへ再配送

外部ルート

ルーティングプロセスによっては、ルーティングプロセス本来のルート情報と他のプロセスから再配送されたルート情報を区別しています。他のプロセスから再配送されたルート情報を「外部ルート」と呼んでいます。また、ルーティングプロセス本来のルート情報は「内部ルート」と呼ぶことがあります。

EIGRPおよびOSPFのルーティングプロセスは内部ルートと外部ルートをきちんと区別しています。EIGRPなら外部ルートは、ルーティングテーブル上に「D EX」のコードがつけられて登録されます。OSPFでは、「O E1」または「O E2」で外部ルートをルーティングテーブルに登録します。RIPのルーティングプロセスは、内部ルートと外部ルートを特に区別していません。

シードメトリック

ルーティングプロセス同士でメトリックの互換性はありません。そこで、他のプロセスから再配送されたルート情報に対して、ルーティングプロセスに適したメトリックを与えます。再配送されたルート情報に対して与えるメトリックをシードメトリックと呼んでいます。シードメトリックの値として、以下のように定義されています。

表 シードメトリックのデフォルト値

再配送先のルーティングプロセス(ルーティングプロトコル)

シードメトリックのデフォルト値

RIP

EIGRP

OSPF

20

BGP

元のルーティングプロセスのメトリック値

RIPおよびEIGRPへ再配送されたルート情報のシードメトリックのデフォルトは∞です。シードメトリックをきちんと設定していないと、RIPやEIGRPへ再配送されないので注意が必要です。

再配送元がconnectedまたはstaticの場合は例外です。

再配送の注意点

再配送には、次のようなデメリットがあります。

  • ネットワーク構成が複雑になる
  • 必ずしも最適なルートになるとは限らない
  • ルーティングループの可能性がある

複数のルーティングプロトコルを利用していると、どうしてもネットワーク構成が複雑になってしまいます。複雑なネットワーク構成はトラブルの元になりかねません。また、ルーティングプロトコルのアルゴリズムやメトリックの互換性がないために、再配送したルートが最適な経路でのルーティングを妨げてしまう可能性もあります。その最も極端な例がルーティングループの発生です。ルータが正しくルーティングテーブルを作成することができない現象をルーティングループと言います。ルーティングループの状態では、もちろんパケットのルーティングを正しく行うことができません。パケットがあるところを行ったり来たりするようなパケットのループが起こります。

複数のルータで双方向の再配送を行うと、ルーティングループが発生する可能性が出てきます。ルーティングループを防止するためには、アドミニストレイティブディスタンスやシードメトリックの調整やルートフィルタリングの設定などさらに複雑な設定が必要になります。


Ciscoルータでの再配送の設定は、以下の記事をご覧ください。


関連記事

「ネットワークのおべんきょしませんか?」内の記事を検索

IPルーティング応用