RIPの概要
RIP(Routing Information Protocol)は、ディスタンスベクタ型のルーティングプロトコルです。各ルータは「宛先ネットワークまでの距離(メトリック)」と「次ホップ」を定期的に隣接ルータへ通知し合い、経路表を更新します。

メトリックにはホップ数(経由するルータの数)を使用し、1〜15の値が有効です。16 は無限大(到達不能)を意味するため、最大で15 ホップまでの中小規模ネットワークにしか適用できません。
また、ルーティング情報の更新は約 30 秒ごとに行われるため、環境によってはネットワークに余分なトラフィックを生じさせる場合があります。
経路情報の送信
ルータは自分が知っている経路情報を定期的に隣接ルータへ送信します。これにより、ネットワーク全体で経路表を共有し、最適な経路を維持します。

動作の流れ
ルータAの経路情報
- 20.1.1.0/24:直結ネットワーク(Direct connect)
- 20.1.2.0/24:直結ネットワーク(Direct connect)
- 20.1.3.0/24:ルータBから学習、ネクストホップ=20.1.2.254、メトリック=1
ルータAが送信する情報
ルータAは自分の経路表を基に、隣接するルータ(ルータB)に以下の情報を送信します。
- 宛先 20.1.1.0/24、ネクストホップ=20.1.2.253、メトリック=0
- 宛先 20.1.3.0/24、ネクストホップ=20.1.2.253、メトリック=1
ルータBでの処理
ルータBは受信した経路情報をもとに、自身のルーティングテーブルを更新します。
例えば、20.1.1.0/24への経路は「ルータA経由で到達可能」と登録されます。
経路情報の受信(知らない経路)
隣接ルータから経路情報を受信した際に、自分がまだ知らないネットワークであれば、その情報をルーティングテーブルに新しく追加します。

動作の流れ
ルータAの経路情報
- 20.1.1.0/24:直結ネットワーク(Direct connect)
- 20.1.2.0/24:直結ネットワーク(Direct connect)
- 20.1.3.0/24:ネクストホップ=20.1.2.254、メトリック=1
ルータAが送信する情報
ルータAは自分の経路表を基に、隣接するルータ(ルータB)に以下の情報を送信します。
- 宛先 20.1.1.0/24、ネクストホップ=20.1.2.253、メトリック=0
- 宛先 20.1.3.0/24、ネクストホップ=20.1.2.253、メトリック=1
ルータBでの処理
ルータBは「20.1.1.0/24」という経路情報を受信します。
ルータB自身はまだ20.1.1.0/24を知らなかったため、経路表にネクストホップ=20.1.2.253、メトリック=1 として登録されます。
経路情報の受信(知っている経路①)
隣接ルータから受信した経路情報がすでに自分のルーティングテーブルに存在している場合、特に同じルータから繰り返し受信したときには、情報を更新して経路表を維持します。

動作の流れ
ルータBの経路表(受信前)
- 20.1.1.0/24 → ネクストホップ=20.1.2.253、メトリック=1
- 20.1.2.0/24 → Direct connect
- 20.1.3.0/24 → Direct connect
ルータBはすでに「20.1.1.0/24」の経路を知っており、ネクストホップはルータA(20.1.2.253)です。
ルータAからの経路情報を受信(同じルータからの受信)
ルータAは再度「20.1.1.0/24は自分経由で到達可能、メトリック=1」と経路情報を送信します。
ルータBでの更新処理
ルータBはこの経路をルータAから学習しているため、同じネクストホップ(20.1.2.253)として経路を更新します。メトリックは「受信値1+1」で2となります。
経路情報の受信(知っている経路②)
同じ宛先ネットワークに複数の経路が存在する場合、受信した情報を比較してメトリックが小さい方(より短い経路)を優先してルーティングテーブルを更新します。

動作の流れ
ルータBの経路表(受信前)
- 20.1.1.0/24 → ネクストホップ=20.1.2.253、メトリック=2
- 20.1.2.0/24 → Direct connect
- 20.1.3.0/24 → Direct connect
この時点でルータBは、ルータA経由で「20.1.1.0/24」への経路を保持しており、ホップ数は2です。
別のルータから経路情報を受信
ルータAが「20.1.1.0/24は自分から直接接続(メトリック=0)」と経路情報を送信します。
ルータBで受信すると、「メトリック=1」となります。
ルータBでの更新処理
既存の経路(メトリック=2)と、新しく受け取った経路(メトリック=1)を比較します。より小さいメトリック(1)を採用し、ルーティングテーブルを更新します。
- 20.1.1.0/24 → ネクストホップ=20.1.2.253、メトリック=1
ループ防止と収束のためのメカニズム
RIP はディスタンスベクタ特有の「カウント・トゥ・インフィニティ」問題(誤った迂回学習でメトリックがじわじわ増える)を避けるため、複数の仕組みを組み合わせます。
トリガーアップデート
トリガーアップデートとは、通常の定期更新とは別に、ネットワークに変化が生じたときに即座に経路情報を送信する仕組みです。経路の変化を迅速に通知し、ルーティングループや誤転送を防ぐ役割を持ちます。

動作の流れ
- 通常の更新
ルーティングプロトコル(例:RIP)では、通常は30秒ごとに経路情報を定期的に送信します。
- 障害発生時の即時通知
インターフェースのダウンやネットワーク障害が発生した場合、ルータは定期更新を待たず、即時に経路情報を隣接ルータへ送信します。
トリガーアップデートによって、障害情報がネットワーク全体に素早く広がり、誤った経路を利用する時間を最小化できます。
ルートポイズニング
ルートポイズニングとは、リンク状態が失われた経路を「到達不能」として隣接ルータに通知する仕組みです。ルーティングループを防止するために利用されます。

動作の流れ
- 障害発生
ルータAに直結しているネットワーク(例:20.1.1.0/24)が障害で利用できなくなった場合、ルータAはその経路を削除します。
- 到達不能として広告
ルータAは、障害が発生したネットワークを「到達不能」と示すために、メトリックを最大値(16)に設定して隣接ルータへ通知します。 この「到達不能」を示す広告が「ルートポイズニング」です。
隣接ルータは「20.1.1.0/24 はメトリック16(到達不能)」という情報を受け取り、そのネットワークへの転送を行わなくなります。これにより、誤って無効な経路を使い続けることによるルーティングループを防止します。
スプリットホライズン
スプリットホライズンとは、経路情報を受け取ったインターフェースから、同じ経路情報を送り返さない仕組みです。これにより、不要な情報のやり取りやルーティングループの発生を防ぐことができます。

動作の流れ
- 通常の経路情報送信
ルータBは隣接ルータAに、自分が知っている経路情報(例:20.1.3.0/24)を通知します。
経路情報を受け取ったルータAは、その情報をルーティングテーブルに追加します。
- スプリットホライズンの適用
ルータAは、ルータBから学習した経路情報(20.1.3.0/24)を、再びルータBへ返すことはしません。
これにより、同じ情報がAとBの間をぐるぐる行き来することを防ぎます。
ポイズンリバース
ポイズンリバースとは、経路情報を受け取ったルータに対して、その経路を「到達不能(メトリック16)」として送り返す仕組みです。スプリットホライズンを補完し、ルーティングループ防止をより確実にします。

動作の流れ
- 通常の経路情報送信
ルータBは、ネットワーク20.1.3.0/24の経路情報をルータAに通知します。ルータAはその情報をルーティングテーブルに追加します。
- ポイズンリバースの適用
ルータAは、ルータBから学習した経路(20.1.3.0/24)を、「到達不能(メトリック16)」としてBに返します。
これにより、ルータBが誤って「ルータA経由で20.1.3.0/24へ行ける」と認識することを防ぎます。
各種タイマ
RIPでは、経路情報を維持・管理するために複数のタイマを用いています。これらのタイマは、経路の更新や削除のタイミングを制御する重要な仕組みです。

タイマの種類
アップデートタイマ
RIPが定期的に経路情報を隣接ルータへ送信する周期でデフォルト値は30秒です。ルーティング情報を定期的にやり取りし、ネットワーク全体で経路表を同期させます。
タイムアウトタイマ
ある経路の情報が一定時間(デフォルト180秒)更新されなかった場合、その経路は利用不能と判断されます。経路が切断されたと判断されると、その経路のメトリックを 16(到達不能) に設定します。
ガーベジコレクションタイマ
到達不能とされた経路情報をルーティングテーブルから完全に削除するまでの猶予時間で、デフォルト値は120秒です。タイムアウトタイマで無効化された経路は、この間「到達不能」として保持し、120秒を経過すると、経路情報を削除します。
タイマ動作の流れ(例)
- 経路情報の送信
ルータAが経路情報(20.1.1.0/24)をルータBに送信します。
- 経路情報の登録
ルータBは経路情報をルーティングテーブルに登録します(ネクストホップ=ルータA、メトリック=1)。
- 経路情報のルートポイズニング
この経路情報が180秒間更新されなければ、ルータBはその経路を「到達不能(メトリック16)」として扱います(タイムアウトタイマ)。
- 経路情報の削除
さらに120秒経過すると、その経路はルーティングテーブルから削除されます(ガーベジコレクションタイマ)。


