ルーティング情報プロトコル(RIP )は、ホップ数をルーティングメトリックとして用いる、最も古い距離ベクトル型ルーティングプロトコルの1つです。RIPは、送信元から宛先までのパスで許可されるホップ数に制限を設けることで、ルーティングループを防止します。RIPで許可されるホップ数の最大値は15であり、これがRIPがサポートできるネットワークの規模を制限しています。
RIPは、誤ったルーティング情報が伝播されるのを防ぐために、スプリットホライズン、ルートポイズニング、およびホールドダウンのメカニズムを実装しています。
RIPv1では、ルーターはルーティングテーブルの更新情報を30秒ごとにブロードキャストします。初期の導入段階では、ルーティングテーブルが小さかったため、トラフィック量はそれほど多くありませんでした。しかし、ネットワークの規模が拡大するにつれて、ルーターの初期化タイミングがランダムであっても、30秒ごとに大量のトラフィックが発生する可能性があることが明らかになりました。
ほとんどのネットワーク環境において、RIPはルーティングプロトコルとして推奨される選択肢ではありません。なぜなら、 EIGRP、OSPF、IS-ISなどと比較して、収束時間と拡張性が劣るからです。しかし、RIPは他のプロトコルとは異なり、パラメータを必要としないため、設定は容易です。
RIPはトランスポートプロトコルとしてユーザーデータグラムプロトコル(UDP)を使用し、予約済みのポート番号520が割り当てられています。 [ 1 ]
ベルマン・フォードアルゴリズムとフォード・ファルカーソンアルゴリズムに基づき、距離ベクトルルーティングプロトコルは、 ARPANETやCYCLADESなどのデータネットワークで1969年以降実装され始めました。RIPの前身は、1970年代半ばにゼロックスが実験ネットワークのルーティング用に開発したゲートウェイ情報プロトコル(GWINFO)でした。ゼロックスネットワークシステム(XNS)プロトコルスイートの一部として、GWINFOはXNSルーティング情報プロトコルに変わりました。このXNS RIPは、ノベルのIPX RIP、AppleTalkのルーティングテーブルメンテナンスプロトコル(RTMP)、IP RIPなどの初期のルーティングプロトコルの基礎となりました。1982年のBerkeley Software DistributionのUNIXオペレーティングシステムは、ルーティングデーモンにRIPを実装しました。4.2BSDリリースは人気を博し、ルーティングデーモンまたはゲートデーモンにRIPを実装した後続のUNIXバージョンの基礎となりました。最終的に、RIPは、Charles Hedrickによって書かれた標準が1988年にRIPv1として承認される前に広く展開されていた[ 2 ]。[ 3 ]
RIPで使用されるルーティングメトリックは、宛先IPネットワークに到達するために通過する必要のあるルーターの数をカウントします。ホップカウント0は、ルーターに直接接続されているネットワークを示します。16ホップは、RIPホップ制限に従って到達不可能なネットワークを示します。[ 4 ]
ルーティング情報プロトコルには、IPv4用のRIPv1とRIPv2、およびIPv6用のRIPngという 3 つの標準化されたバージョンがあります。
RIP の元の仕様は 1988 年に公開されました。[ 3 ] RIPv1 実装のルータは、起動時およびその後 30 秒ごとに、 RIPv1 が有効になっているすべてのインターフェイスを介して255.255.255.255に要求メッセージをブロードキャストします。要求メッセージを受信した隣接ルータは、ルーティング テーブルを含む RIPv1 セグメントで応答します。要求ルータは、到達可能な IP ネットワーク アドレス、ホップ カウント、およびネクスト ホップ (つまり、RIPv1 応答が送信されたルータ インターフェイス IP アドレス) を使用して、自身のルーティング テーブルを更新します。要求ルータは、さまざまな隣接ルータから更新情報を受信すると、ルーティング テーブルにまだ存在しない到達可能なネットワークに関する情報、またはルーティング テーブルに存在するネットワークがより低いホップ カウントで到達可能であるという情報を受信した場合にのみ、ルーティング テーブル内の到達可能なネットワークを更新します。したがって、ほとんどの場合、RIPv1 ルータは、到達可能なネットワークに対して、ホップ カウントが最も低いエントリを 1 つだけ持つことになります。ルーターが、同じネットワークに同じホップ数で到達可能だが、2つの異なる経路を経由するという情報を2つの異なる隣接ルーターから受信した場合、そのネットワークは異なるネクストホップルーターとともにルーティングテーブルに2回登録されます。RIPv1対応ルーターは、IPパケットに対して等コスト負荷分散と呼ばれる処理を実行します。[ 4 ]
RIPv1 対応ルーターは、30 秒ごとに他のルーターのルーティング テーブルを要求するだけでなく、隣接するルーターからの着信要求をリッスンし、その都度自身のルーティング テーブルを送信します。そのため、RIPv1 ルーティング テーブルは 25 ~ 35 秒ごとに更新されます。[ 4 ] RIPv1 プロトコルは、LAN 全体でルーティング テーブルが同期するのを避けるために、更新時間に小さなランダムな時間変数を追加します。[ 5 ]ランダムな初期化の結果、ルーティングの更新は時間的に分散すると考えられていましたが、実際にはそうではありませんでした。サリー・フロイドとヴァン・ジェイコブソンは 1994 年に、更新タイマーをわずかにランダム化しないと、タイマーが時間とともに同期することを示しました。[ 6 ]
RIPv1はサイレントモードに設定することができ、ルーターは近隣のルーティングテーブルを要求して処理し、到達可能なネットワークのルーティングテーブルとホップ数を最新の状態に保ちますが、自身のルーティングテーブルをネットワークに不必要に送信しません。サイレントモードは一般的にホストに実装されます。[ 7 ]
RIPv1はクラスフルルーティングを使用します。定期的なルーティング更新にはサブネット情報が含まれず、可変長サブネットマスク(VLSM)をサポートしていません。この制限により、同じネットワーククラス内に異なるサイズのサブネットを持つことはできません。つまり、ネットワーククラス内のすべてのサブネットは同じサイズでなければなりません。また、ルーター認証もサポートされていないため、RIPはさまざまな攻撃に対して脆弱です。
元の RIP 仕様の不備のため、RIP バージョン 2 (RIPv2) が 1993 年に開発され[ 4 ] 、 1994 年に公開され[ 8 ] 、1998 年にインターネット標準56として宣言されました[ 9 ]。サブネット情報を伝送する機能が含まれており、クラスレス ドメイン間ルーティング(CIDR) をサポートしています。後方互換性を維持するために、ホップ カウント制限は 15 のままです。RIPv2 は、RIPv1 メッセージのすべてのMust Be Zeroプロトコル フィールドが適切に指定されていれば、以前の仕様と完全に相互運用できる機能を備えています。さらに、互換性スイッチ機能[ 9 ]により、きめ細かな相互運用性の調整が可能です。
ルーティングに参加しないホストへの不要な負荷を避けるため、RIPv2はルーティングテーブル全体をアドレス224.0.0.9宛てにすべての隣接ルーターにマルチキャストします。これはブロードキャストを使用するRIPv1とは対照的です。ただし、特別な用途ではユニキャストアドレス指定も引き続き許可されています。
RIP の MD5認証は 1997 年に導入されました。[ 10 ] [ 11 ]
RIPバージョン2では、ルートタグも追加されました。この機能により、RIPプロトコルから学習したルートと、他のプロトコルから学習したルートを区別することが可能になります。
RIPng(RIP次世代版)は、次世代インターネットプロトコルであるIPv6をサポートするためにRIPv2を拡張したものです。[ 12 ] RIPv2とRIPngの主な違いは次のとおりです。
RIPngはマルチキャストグループff02::9を使用してUDPポート521でアップデートを送信します。
RIPメッセージはポート520でユーザーデータグラムプロトコルを使用し、ルーター間で交換されるすべてのRIPメッセージはUDPデータグラムにカプセル化されます。[ 4 ]
RIPは2種類のメッセージを定義した。
ルーティング情報プロトコルは、その動作の一部として以下のタイマーを使用します。[ 13 ]
Cisco独自の内部ゲートウェイルーティングプロトコル(IGRP)は、RIPよりもやや高性能なプロトコルでした。これは、距離ベクトル型ルーティングプロトコルという同じ基本ファミリーに属しています。
Ciscoは、ルーターソフトウェアにおけるIGRPのサポートと配布を終了しました。IGRPは、完全に新しい設計であるEnhanced Interior Gateway Routing Protocol(EIGRP)に置き換えられました。EIGRPは依然として距離ベクトルモデルを使用していますが、IGRPとの関連性は、同じ複合ルーティングメトリックを使用している点のみです。IGRPとEIGRPはどちらも、帯域幅、遅延、信頼性、負荷、MTUの5つの変数からなる式から、各ルートに対して単一の複合メトリックを計算します。ただし、Ciscoルーターでは、デフォルトでは帯域幅と遅延のみがこの計算に使用されます。