トップ > スキル : ネットワーク > プロトコル(RIP)

ネットワーク

RIPの工夫

基本的なRIPの仕組みを前項で説明していますが、実はRIPには基本的な動作に弱点があります。このページではどのような弱点があるのか、そしてその弱点を補う工夫について説明します。

RIPの弱点

RIPは経路情報を30秒に1回伝えることでルーティング・テーブルを作成していますが、隅々のネットワークに伝わり、すべてのルーターが最新のルーティング・テーブルを取得し、安定するまでに時間がかかりすぎるという弱点があります。また、間違った経路情報がネットワーク上に残ってしまうと、パケットがある経路上をループしてしまう現象が起こります(図b-3)。そこで、RIPが動作するルーターは、できるだけ短時間でルーティング・テーブルを安定させるために4つの機能を駆使して弱点をフォローしています。4つの機能とは、ルート・ポイズニング、スプリット・ホライズン、トリガード・アップデート、ホールド・ダウンです。

ルート・ポイズニング

RIPアップデートの1つの情報にメトリックがありました。メトリックは、パケットの目的地であるネットワークがルーターをいくつ経由した先にあるのかを示すための値です。よって、ネットワークがなくなった場合にはそれを伝えることができないので、なくなった経路情報をいつまでもルーティン・テーブルに残すことになり、正しく転送できなくなります。

そこでRIPは経路情報が無効になったことを伝えるためにメトリックの値が「16」であれば、無限に遠いという意味を持たせます。ネットワークがダウンしたことを検知すると、メトリックの値を16に変更してRIPアップデートとして他のルーターに伝え、無効になった経路情報を知らせます。この仕組みをルート・ポイズニングと言います。

ルート・ポイズニングを行うタイミングは3つあります。まず、ルーター自身に繋がっている回線がダウンしたり外れたりすると、生きているインターフェイス・ポートからルート・ポイズニングを実行します。もちろん、ルーター自体がダウンするとRIPアップデートはできないので、その場合は他のルーターが検知してルート・ポイズニングを実行します。

次は、ルーターが経路情報を180秒以上受信しなかったときにもルート・ポイズニングを実行します。RIPアップデートにはタイマーが仕掛けてあり、180秒になってもRIPアップデートが届かなかったら、その経路情報は無効になったと判断しメトリックを16に変更します。

残り1つのタイミングは、ルーターがメトリック16の経路情報を120秒保持し、その間この経路情報を含むRIPアップデートを送って経路の無効を通知します。この状況下で無効にしたネットワークに関する経路情報を他のルーターから受け取れば、そのメトリックは16より小さいはずなので、そちらの経路を採用します。

ルート・ポイズニングは、経路の無効を通知し、動的に他の経路に切り替えられるようにしています。

スプリット・ホライズン

ルート・ポイズニングによって無効になった経路情報が伝達されるが、状況によってそれがうまく伝達されない場合があり、タイミングによって元の経路情報がルーター間で往復の繰り返しが起こります。そこでRIPは、経路情報が入ってきたインターフェイスにはその経路情報を送出しない工夫をしています。これをスプリット・ホライズンと言います。

スプリット・ホライズンには2つの実現手段があります。1つは経路情報を受信したインターフェイスにその経路情報を出さないという方法でシンプル・スプリット・ホライズンと呼びます。2つ目は経路情報を受信したインターフェイスにはその経路情報のメトリックを16にして出すという方法で、ポイズン・リバース付きスプリット・ホライズンと呼びます。これは、経路情報を受信したインターフェイスから明示的にメトリック16の経路情報を送り、自分の先にその経路がないことを示します。ただ、ネットワークの規模が大きくなると回線に流れるデータ量が増えるという欠点があります。

どちらの手段もループを防ぐ意味があるので、役割は同じになります。また、異なる手段のルータ同士をつなげても問題はありません。

トリガード・アップデート

それぞれのルーターでRIPアップデートのタイミングが同時に行われた場合、無効になった経路情報のメトリックを増やしながらループする現象が起きるときがあります。この場合RIPは、経路情報の変更があったらその時点でRIPアップデートを送信する工夫を加えます。これをトリガード・アップデートと呼びます。例えば、あるネットワークがダウンしたら即座に他のルーターに無効になったことを伝えます。すると他のルーターはRIPアップデートを送信する前に無効になったことを通知でき、それぞれにルーターがメトリックを16に変更し、ルーター同士のループがなくなります。

ホールド・ダウン

経路情報が無効になった場合、新しく受信したよりよい経路情報を採用せずに、無効になった経路情報を一定時間保持する仕組みがあります。これをホールド・ダウンと言い、ループ現象を回避するための方法になります。例えを図b-1で見てみます。ルーター1に直接繋がっているルーター4がダウンしたとします。ルーター1はルーター4からRIPアップデートが来なくなるので、180秒後にネットワークAの経路情報をメトリック16に置き換えます。それと同時にホールド・ダウン機能をオンに設定し、60秒間この経路情報の変更を受け付けないようにします。

ここで、ルーター2がルーター1に対してネットワークAに到達できる経路がまだあるというRIPアップデートを送信したとします。しかし、ルーター1はホールド・ダウン機能をオンにしていますので、この新しい経路情報は受け入れないことになります。つまり、経路情報が180秒間来ない場合は、ルーターがダウンしている可能性が高く、すぐに復活する見込みはあまりありません。そこで、良い経路情報が来る可能性を信じるより、無効にして、その無効にした情報がネットワーク全体に広がることを優先とする考え方を取ります。こうすることで、ルーター間で経路情報の整合性を取るようにしています。

RIPでは、以上のような機能を複合的に使い、適切なルーティングの実現を行っています。ルーティング・プロトコルには、RIPの他にOSPF(Open Shortest Path First)、BGP(Border Gateway Protocol)などがあり、ネットワークの規模に応じて使い分けられています。ユーザーに身近なルーティング・プロトコルがRIPとなります。

【RIP:RIPの工夫】