RIPが担う役割とその重要性
RIP(Routing Information Protocol)は、IPネットワークにおける経路情報をルータ間で交換するためのルーティングプロトコルの一つです。特に、AS(Autonomous System)と呼ばれる一つの組織や管理ドメイン内部で使用されるIGP(Interior Gateway Protocol)に分類されます。企業やキャンパスネットワークといった比較的小規模な環境において、ルータが互いに効率よく通信経路を把握するために不可欠なプロトコルです。
RIPが経路を選択する際に利用する基準は「メトリック」と呼ばれ、RIPにおいてはホップカウント、すなわち宛先ネットワークに到達するまでに経由するルータの数として定義されています。例えば、ある宛先ネットワークへの経路が2つのルータを経由する場合、メトリック値は2となります。RIPは、このメトリック値が最も小さい経路を「最適経路」としてルーティングテーブルに登録します。
RIPのメトリック制限が示唆する適用範囲
RIPの基本的な設計思想を理解する上で、そのメトリックの制約を把握することが重要です。RIPでは、最大ホップ数が15に制限されています。この制限を超える、すなわち16ホップ以上のネットワークは「到達不可能」として扱われます。この事実は、RIPが大規模なネットワーク環境には適さないことを決定づけています。
また、RIPのメトリックが単純なホップカウントのみに依存している点も、現代のネットワーク設計において留意すべき点です。RIPは、ルータ間のリンクの帯域幅や遅延といった要素を一切考慮しません。そのため、例えば高速な光ファイバー回線を経由してメトリックが3となる経路と、低速な無線回線を経由してメトリックが2となる経路が存在する場合、RIPは距離が短くホップ数の少ない低速回線を経由する経路を選択します。この結果、ネットワーク管理者が意図しない「非最適ルーティング」が発生し、ネットワーク全体のパフォーマンスが低下するリスクが存在します。したがって、RIPは、ネットワークの規模が小さく、かつリンクの品質が均一である環境での利用が最も適していると言えます。
RIPの基本原理とバージョンごとの進化
RIPは、そのバージョンによって機能や適用範囲が大きく異なります。基本的な動作として、RIPはルーティングテーブルの全情報を、デフォルトでは30秒ごとなど定期的に隣接ルータに送信することで経路情報を交換し、ネットワークのトポロジー変化に対応します。
RIPv1とRIPv2/RIPngの決定的な違い
RIPは、主にRIPv1、RIPv2、そしてIPv6に対応したRIPngの3つのバージョンに分けられます。バージョン間の最も重要な違いは、「クラスフル」か「クラスレス」かという点です。
RIPv1はクラスフルルーティングプロトコルであり、ルーティングアップデートにサブネットマスクの情報を含めません。このため、RIPv1はアドレスの集約を自動的に行います。この自動集約の機能は、かつての単純なネットワークでは有効でしたが、VLSM(Variable Length Subnet Masking)を用いた柔軟なIPアドレス設計や、CIDR(Classless Inter-Domain Routing)を前提とする現代のネットワーク環境には対応できません。
これに対し、RIPv2およびRIPngはクラスレスルーティングプロトコルです。これらはルーティングアップデートにサブネットマスクの情報を含めるため、VLSMをサポートし、IPアドレスの効率的な利用を可能にします。また、RIPv2およびRIPngでは、アドレスの集約はデフォルトでは行われず(手動集約が可能)、ネットワーク管理者の意図に基づく階層的なルーティング設計が可能となります。
バージョン間の選択がネットワーク設計に与える影響
現代のIPアドレスを効率的に利用するネットワーク設計においては、RIPv2の採用が必須となります。RIPv1では、サブネットマスクの情報が失われるため、意図しないルーティングの混乱を引き起こす可能性があります。RIPv2はデフォルトでアドレス集約を行わない設計を採用することで、IPアドレスの効率的利用(クラスレス)と、ネットワーク管理者の意図的な階層化(手動集約)を両立させていると言えます。
また、RIP/RIPngは、他のルーティングプロトコル(例:OSPFやBGP)で学習した経路情報を、自身の経路情報としてネットワーク内に再配布する機能(Redistribution)も備えています。この機能はデフォルト設定では無効ですが、redistributeコマンドを用いることで有効化し、異なるルーティングドメイン間の情報連携を実現できます。
RIPバージョン別比較表
| 特徴項目 | RIPv1 | RIPv2 | RIPng |
| IPバージョン | IPv4 | IPv4 | IPv6 |
| 認証機能 | なし | あり (MD5/Text) | あり |
| サブネットマスク | 非伝送 (クラスフル) | 伝送 (クラスレス) | 伝送 (クラスレス) |
| VLSM対応 | 非対応 | 対応 | 対応 |
| アドレス集約 |
自動的集約 |
手動集約 |
手動集約 |
ネットワークの安定性を支えるRIPの賢いメカニズム
動的ルーティングプロトコルにおいて最も重要な課題の一つが、経路情報の誤った伝播による「ルーティングループ」の発生です。RIPは、ホップ数制限のほかに、このループを防止し、ネットワークの安定性を高めるための複数のメカニズムを備えています。
ループ防止のための機能
RIPが採用する主要なループ防止メカニズムには、「スプリットホライズン」と「ポイズンリバース」があります。
スプリットホライズン(Split Horizon)は、ルータが特定の経路情報を受信したインタフェースから、その経路情報を再び送信するのを防ぐことで、水平方向に経路が逆流するのを抑制します。
一方、ポイズンリバース(Poison Reverse)は、経路障害が発生した際に、その経路のメトリックを16(到達不能を示す値)として、経路を学習したインタフェースに向けて広告し返します。これにより、ダウンした経路情報が迅速にネットワーク全体に伝播し、ルーティングループの収束を早める効果があります。ポイズンリバースは非常に強力なループ防止策ですが、デフォルト設定では無効になっていることが多く、有効化するにはpoison-reverseコマンドを使用する必要があります。
コンバージェンスを司るRIPの主要タイマー
RIPの動作は、複数のタイマーによって厳密に制御されています。これらのタイマーは、ネットワークトポロジーの変化に対するルータの反応速度、すなわちコンバージェンスの速度に直接影響を与えます。
| タイマー名 | 標準値 (秒) | 役割 |
| アップデートタイマー | 30 | 経路情報を定期的に送信する間隔です。 |
| 無効タイマー (Invalid) | 180 | 経路情報の受信が停止してから、その経路を「無効」(メトリック16)とマークするまでの時間です。 |
| ホールドダウンタイマー | 180 | 無効とマークされた経路を一時的に保持し、その経路よりもメトリック値の劣る新しい情報の学習を抑制する期間です。 |
| フラッシュタイマー (Flash) | 240 |
ルーティングテーブルおよびRIPデータベースから、経路情報を完全に削除するまでの時間です。 |
経路障害が発生した場合、ルータはまずアップデートタイマーの周期を待ち、次に無効タイマー(180秒)が切れるのを待ちます。経路情報が無効とマークされた後、さらにフラッシュタイマー(240秒)が動作します。この一連の動作、特にホールドダウンタイマーの存在は、不安定な経路情報がネットワーク中に伝播するのを防ぐというメリットがある一方で、ネットワークのコンバージェンスを意図的に遅らせます。標準的なRIP環境では、経路情報の完全な削除には約4分を要します。この長い収束時間が、RIPが動的で大規模な環境で使用できない決定的な理由とされています。
また、ポイズンリバースはループ防止を加速させますが、デフォルトで無効となっている設計は、一部の環境ではその加速効果よりも、ルーティング情報の送信量が増えること(帯域幅の消費)を懸念していることを示唆しています。実務においては、ネットワークの安定性を優先し、通常はポイズンリバースを有効化することが推奨されます。
RIPv2の基本設定手順と動作検証
RIPは設定が比較的容易であり、その設定は通常、ルータのコンフィギュレーションモードで行われます。ここでは、Cisco機器を例にとり、RIPv2を有効化し、動作を確認するための基本的な手順を解説します。
RIPの有効化とネットワークの指定
ルータでRIPを有効化するには、グローバルコンフィギュレーションモードでrouter ripコマンドを実行します。現代のIPネットワーク設計に合わせて、次にversion 2を設定し、RIPv2を使用することを明示することが推奨されます。
続いて、RIPが経路情報を交換すべきインタフェースを指定するためにnetworkコマンドを使用します。このコマンドは、指定されたネットワークアドレスを持つインタフェースでRIPプロトコルを有効化します。例えば、10.0.0.0で始まるIPアドレスのインタフェースと、192.168.12.0で始まるIPアドレスのインタフェースでRIPを有効化する場合、以下のように設定します。
Router(config)# router rip
Router(config-router)# version 2
Router(config-router)# network 10.0.0.0
Router(config-router)# network 192.168.12.0
この設定により、show ip protocolsコマンドの出力において、「Routing for Networks」の部分に設定が反映され、該当するインタフェースでRIPパケットの送受信が開始されます。
RIP動作確認のためのコマンド
RIPが正しく動作し、経路情報を学習しているかを確認するためには、複数のshowコマンドを使用します。
-
#show ip protocols-
RIPが有効化されているインタフェース、設定されているRIPタイマーの値(アップデート、無効、ホールドダウンなど)、および動作バージョン(v2など)に関する全般的な情報を表示します。
-
-
#show ip route rip-
ルータのルーティングテーブル(RIB)のうち、RIPプロトコルによって学習されたルートのみをフィルタリングして表示します。
-
-
#show ip rip database-
RIPプロセスが保持しているルート情報(RIPデータベース)を表示します。このデータベースには、ルーティングテーブルには現在インストールされていない、無効化された経路やホールドダウン状態の経路など、RIPプロセスが認識しているすべての経路情報が含まれています。
-
-
#debug ip rip-
RIPルートの送受信をリアルタイムでコンソールに表示し、ルーティングアップデートの詳細なトラブルシューティングに役立てます。
-
データベースとルーティングテーブルの情報の違い
特にshow ip rip databaseとshow ip route ripの間に存在する情報の違いを理解することは、トラブルシューティングにおいて非常に重要です。RIPデータベースはRIPプロセスが知っている経路の全情報を保持しますが、IPルーティングテーブルは、現在アクティブでフォワーディングに使用可能な経路のみを保持します。障害発生時、経路がホールドダウンタイマーの影響下にある場合、その経路はRIPデータベースには残っていても、show ip route ripの結果からは一時的に消えることがあります。この非同期性を理解することで、経路のダウンがRIPの正常な安定化プロセスによるものなのか、それとも真の障害によるものなのかを判断することが可能になります。
実務で必須となるRIPの応用設定 I 経路情報の制御
RIPを実運用する際、ルーティングテーブルの肥大化を防ぎ、セキュリティを強化し、ネットワークの境界を明確にするために、経路情報のフィルタリングは不可欠な応用設定です。この目的を達成するためにdistribute-listコマンドが使用されます。
Distribute-Listによる経路フィルタリング
distribute-listコマンドは、RIPで学習した経路をルーティングテーブルに取り込むかどうか、またはルータから外部へ送信するかどうかを制御します。フィルタリングの方向は以下の2つに分けられます。
-
in: 受信した経路情報をルーティングテーブルに取り込む際にフィルタリングを適用します。RIPパケット自体はルータに到達しますが、情報の登録を制御します。 -
out: 外部へ送信する経路情報にフィルタリングを適用します。
フィルタリングの制御は、標準的なアクセスリスト(ACL)やプレフィックスリストと連携して機能します。ACLでpermitにマッチする情報のみを受け入れるか、または送信するかの制御が可能です。
フィルタリング設定の連鎖的影響と注意点
経路フィルタリングの設定には細心の注意が必要です。特にアクセスリストを使用する場合、アクセスリストの末尾には暗黙の「Deny All」が存在します。このため、特定のネットワークをdenyした後に、他の全てのネットワークを許可するために、必ずaccess-list X permit anyを追加しなければなりません。このpermit anyの追加を省略すると、意図しない全てのアクセスリストの送受信がフィルタされ、ルーティングが停止するという致命的な問題を引き起こす可能性があります。
この設定ミスは、ルーティングプロトコル設定における設定の堅牢性の欠如を象徴しており、実務においては設定変更後の細心の注意と検証が求められます。
Distribute-List を用いた経路フィルタリング例
| 目的 | Access-List 設定例 | Distribute-List 設定例 | 解説 |
|
192.168.100.0/24のみを受信する |
access-list 1 permit 192.168.100.0 0.0.0.255 |
distribute-list 1 in |
他の経路は暗黙のDenyによってルーティングテーブルへの登録が拒否されます。 |
|
デフォルトルートのみを受信する |
access-list 2 permit 0.0.0.0 0.0.0.0 |
distribute-list 2 in |
デフォルトルートのみを受け入れ、他の詳細経路は無視されます。 |
|
192.168.100.0/24を送信しない |
access-list 3 deny 192.168.100.0 0.0.0.255 access-list 3 permit any |
distribute-list 3 out |
deny後にpermit anyがないと、すべてが送信拒否されるため注意が必要です。 |
実務で必須となるRIPの応用設定 II セキュリティの確保
RIPv2は、経路情報の交換に認証機能を利用することでセキュリティを強化することが可能です。RIPは本質的に平文で経路情報を交換するため、認証機能を使用しない場合、悪意のある第三者による経路情報の盗聴や、偽のルーティング情報の注入(ルートインジェクション)といったリスクが伴います。
RIPv2認証モードの設定
RIPv2で認証を設定する場合、インタフェース設定モードでip rip authentication modeコマンドを使用し、認証モードを選択します。
ip rip authentication mode { text | md5 }
-
text(Simple Text): パスワードを平文で送信する方式です。セキュリティレベルは低いですが、互換性のために利用されることがあります。 -
md5(Message Digest 5): MD5ハッシュ計算後のデータ(ハッシュ値)を送信する方式です。平文ではないため、現在最も推奨されるセキュアな認証方式です。
認証設定はLANインタフェースごとに適用されます。重要な点として、認証モードや認証キーチェーンの設定が異なるルータ間では、RIPv2での経路交換は完全に行われなくなります。
MD5認証の運用的リスク
MD5認証のようなセキュリティ強化策は、運用上の厳格さを要求します。MD5認証を設定した場合、パスワードだけでなく、認証モード自体がネットワークセグメント内のすべてのRIPルータで完全に一致していなければ、経路交換が停止してしまいます。
これは、単一ルータの設定ミスが広範なルーティング障害を引き起こす可能性があることを意味します。特に多ベンダー環境や複数のルータが接続されたRIPドメインでは、認証キーチェーンとモードの一貫性を維持するための厳格な変更管理プロセスと、設定後の徹底した検証が必須となります。設定を変更した後には、refreshコマンドを実行することで設定が有効になります。
RIPを使いこなすための最終チェックポイント
RIPは設定が容易で学習コストが低いという大きな利点を持つIGPであり、小規模でトポロジーが安定しているネットワーク環境においては、依然として有効なルーティングソリューションです。しかし、現代のネットワークでRIPを適切に利用するためには、いくつかの重要な指針を遵守する必要があります。
第一に、IPv4環境であれば、必ずRIPv2を使用することが前提となります。RIPv2はVLSMに対応し、認証機能を利用できるため、現代の効率的なIPアドレス設計とセキュリティ要件を満たすために不可欠です。
第二に、RIPのコンバージェンスメカニズム、特に各種タイマーの動作と、スプリットホライズンやポイズンリバース(有効化が推奨されます)によるループ防止策を深く理解し、経路障害が発生した際の挙動を予測できるようにしておくことが、安定運用に直結します。
第三に、実務においては、ルーティングテーブルの最適化とセキュリティ確保のために、応用設定が必須となります。具体的には、distribute-listを用いたきめ細やかな経路情報の送受信制御と、MD5認証を用いたセキュリティ確保が不可欠であり、これらの設定変更時には、ルーティングの断絶を防ぐための細心の注意と検証が求められます。RIPの適用範囲(メトリック15ホップ以内)を厳守し、ネットワークの規模が拡大する際には、OSPFやEIGRPなど、よりスケーラブルなプロトコルへの移行を検討することが重要です。


コメント