ネットワークで複数のルーティングプロトコルを使っている場合,異なるルーティングプロトコル間でルーティング情報をやりとりするために「再配布」と呼ばれる設定が必要となります。今回は,再配布の必要性などを学びましょう。

複数のルーティングプロトコルを使う

 1つのルーティングプロトコルを使うネットワークはシンプルで管理も簡単です。しかし,ネットワークの追加などによって,複数のルーティングプロトコルを使う必要性が出てくるケースもあります。例えば次のようなケースです。

  • 以前使っていたルーティングプロトコルを新しいルーティングプロトコルに置き換えるとき
  • 古いルータと新しいルータが混在しており,使用できるルーティングプロトコルが異なるとき
  • Cisco独自のルーティングプロトコル(EIGRP)の使用していたが,他ベンダーのルータを導入するとき

 ほかにも,AS間ではBGPでルート情報をやりとりしています。そのBGPのルート情報をIGP(RIPやOSPF)でAS内に配布する時もやはり,BGPとIGPという2つのルーティングプロトコルを使う必要があります。

 こうした場合,一つのネットワークで複数のルーティングプロトコルを使うことになります。ところがルータは,同じルーティングプロトコルが動作するルータとしかネットワーク情報をやりとりできません。そのため,「ルート再配布」と呼ばれる機能を使います。なお,単一のルーティングプロトコルで動作しているネットワークを「ルーティングドメイン」もしくは「AS」と呼びます。この場合の「AS」は,BGPでのASとは異なる概念で,「同一のルーティングプロトコルが動作するネットワーク」という意味になります。

 AS内のそれぞれのルータは,AS内のネットワークの情報を取得しています。2つのASに接続し,再配布を行うルータは「境界ルータ(Boundary Router)」と呼ばれます。境界ルータは両方のルーティングプロトコルを理解し,それぞれのネイバーからAS内の情報を入手しています。それを再配布により異なるASに送ることができます。ただし,境界ルータは自身のルーティングテーブルにあるルートだけしか再配布できません(図1)。

 なお,デフォルトでは,OSPFで再配布された経路は「E2経路」としてルータのルーティングテーブルに登録されます。E2経路はパケットが転送されてもコスト値が変更しないルートのことです。これについての詳細は,OSPF編第2回を参照して下さい。

 図1 再配布の基本

 また,静的ルートも再配布の設定をしなければ,ルーティングプロトコルによって通知されません。

 再配布により,複数のルーティングプロトコルを使用できるようになります。ただし,その分設定が複雑になると同時に,ルーティングの動作に問題が発生するケースがあるので注意が必要です。それは,以下のようなケースです。

  • ルーターがルート情報の再配布を繰り返すことによってループが発生する
  • ルーティングプロトコルによってメトリックが異なるため,最適のパスが選択されなくなる
  • コンバージェンス時間がルーティングプロトコルで異なるため,ルート選択がおかしくなる

 再配布を設定するには,ルータのルート選択を正しく理解し,慎重に設定する必要があります。特に,境界ルータを2つ以上設定する場合は注意が必要です。

ベストパスの選択

 複数のルーティングプロトコルを使用している場合,アドミニストレーティブディスタンスにより,ベストパスを選択します。デフォルトのアドミニストレーティブディスタンスは以下です。

ルーティングプロトコルADディスタンス
接続インタフェース0
スタティック(インタフェース指定)0
スタティック(ネクストホップ指定)1
EIGRP集約ルート5
eBGP20
EIGRP内部ルート90
IGRP100
OSPF110
IS-IS115
RIPv1 RIPv2120
EGP140
ODR160
外部EIGRP170
iBGP200
不明なルート255

 複数のルーティングプロトコルで同一のルートの情報を入手した場合,アドミニストレーティブディスタンスが小さい値のソースから入手したルートがベストパスとして選択されます。

 再配布でのアドミニストレーティブディスタンスは,値を変更することにより,ベストパスの選定を変更します(図2)。

 図2 アドミニストレーティブディスタンスの変更

 また,異なるルーティングプロトコルでは,それぞれで使っているメトリックに違いがあります。つまり,あるルーティングプロトコルで入手したルートを,違うルーティングプロトコルで再配布するのですが,その際,入手元のルーティングプロトコルで使われていたメトリックはそのまま使えません。

 そのため,メトリックを「変換」する必要があります。メトリック変換は,ある一定の値のメトリックをそのルートに付与するという形で行われます。この値は「デフォルトメトリック」もしくは「シード(seed)メトリック」と呼ばれます(図3)。

 図3 シードメトリック

 シードメトリックは,再配布時のメトリックを決定する値であるため,その後AS内では通常通り計算されます。ただし,OSPFのE2経路の場合は別で,シードメトリック値は変更せずに伝わります。

 また,シードメトリックのデフォルトは,次のように決まっています。

再配布先プロトコルデフォルト
RIP無限大
IGRP/EIGRP無限大
OSPF再配布元がBGPの場合1,それ以外は20
IS-IS0
BGPIGPのメトリックをそのままMEDにする

 なお,RIP,IGRP,EIGRPの再配布はシードメトリックは無限大に設定されてしまうので,その時点で到達不能の扱いになり再配布されなくなるので注意が必要です。そのためこの3種のプロトコルは,再配布時にシードメトリックを必ず設定する必要があります。

再配布の方向

 再配布は境界ルータで実行しますが,必ずしも両方のルーティングプロトコルを再配布する必要はありません。どちらか一方の再配布だけでもかまいません。例えば,OSPFとRIPの境界ルータがあるとして,そのルータはRIPルートをOSPFのASへ再配布しますが,OSPFルートをRIPのASへ再配布しない,という設定も可能です。

 特に複数の境界ルータがある場合,両方向の再配布を行っていると,ルーティングのフィードバックが発生し,ループに陥る場合があります(図4)。

 図4 再配布によるループの発生

 このようなことを防ぐには,いくつか方法があります。例えば,RIPからOSPFへの再配布のみを行うようにし,OSPFのルートを再配布しないという方法があります。ただし,これではRIP-ASからOSPF-ASへのルートがRIP-AS内に伝わりません。そこで,RIP-ASにはスタティックもしくはデフォルトルートを設定し,OSPF-ASへ到達できるようにすればいいでしょう。

 そのほか,次の解決策をとることもできます。

  • アドミニストレーティブディスタンスを変更する
  • シードメトリックを細かく設定する
  • ルーティングアップデートにフィルタをかけ,ループの原因になるようなアップデートを送信できないようにする

 これらの方法によるループの防止は先の回で説明します。