目次
RIPの処理の流れ
RIPはとてもシンプルな仕組みで、その処理の流れは以下のようになります。
RIPルートを定期的に送信
受信したRIPルートをRIPデータベースに登録
最適なルートをルーティングテーブルに登録
RIPルートの定期的な送信を継続
RIPでは、他のRIPルータの存在は特に意識しません。この点は、OSPFやEIGRP、BGPとの大きな違いです。OSPF、EIGRP、BGPでは、まずネイバーを確立して、ネイバーとの間でルート情報を交換します。それに対して、RIPではとりあえずルート情報を「送りつける」わけです。RIPのルート情報はマルチキャストで送信する(v1の場合はブロードキャスト)ので、RIPが有効なルータが存在すれば、送りつけられたRIPルート情報を受信できます。
RIPルートを受信すると、RIPのルート情報を管理するRIPデータベースに登録します。なお、RIPで送信するルート情報はRIPデータベースに含まれているものです。そして、RIPデータベース上でホップ数を見て最適なルートを決定します。さらに、RIPのルートとして最適なルートをルーティングテーブルに登録し、パケットのルーティングができるようにします。
ネットワーク構成は障害などで変化することがあります。RIPでは、そうしたネットワーク構成の変化は、定期的なRIPルート情報の送受信によって確認することになります。RIPルート情報を定期的に送信して、対応するネットワークが正常に稼働していることを通知していることになります。もし、ネットワークがダウンすると、そのネットワークのルート情報の送信は止まります。定期的なRIPルート情報を受信できなくなると、RIPデータベースおよびルーティングテーブルから該当のルート情報を削除します。ただし、即座に削除されるわけではないということには注意が必要です。
次の図に、こうしたRIPの処理の流れをまとめています。
RIPルートの生成
RIPは、「ルーティングテーブルを交換する」というように説明されていることが多いのですが、RIPで交換するのはRIPルートです。ルーティングテーブル自体を交換するわけではありません。
RIPでルート情報を交換するためには、まず、RIPルートを生成します。RIPの設定方法はルータの種類によって異なります。コマンドラインからコマンドを入力したり、WebベースのGUIインタフェースでRIPの設定を行います。設定方法はさまざまでも、設定の考え方は共通しています。RIPはインタフェース単位で有効にします。インタフェースでRIPを有効にすることで、そのルータはRIPルートを生成します。「インタフェースでRIPを有効にする」ということをもう少し詳しく考えると、次の2点です。
- 有効にしたインタフェースでRIPパケットを送受信する
- 有効にしたインタフェースのネットワークアドレス/サブネットマスクをRIPルートとしてRIPデータベースに登録する
インタフェースでRIPを有効にすると、そのインタフェースからRIPルートを30秒ごとに送信するようになります。そして、RIPルートを受信するために、RIPを有効にしたインタフェースは224.0.0.9のマルチキャストグループに参加します。
そして、RIPを有効にしたインタフェースのネットワークアドレス/サブネットマスクをRIPルートとして生成して、RIPデータベースに登録します。こうして生成したRIPルートを定期的に送信することになります。
RIPのコンバージェンス
RIPのルート情報の交換は、マルチキャストを利用しています。224.0.0.9というマルチキャストアドレスはリンクローカルの範囲で利用するマルチキャストアドレスです。たとえマルチキャストルーティングを行っていたとしても、ルータを越えられません。RIPルートの交換は、同じネットワーク内だけです。
他のルータからRIPルートを受信して、RIPデータベースに登録すると、そのルートもRIPルートとして定期的に送信します。RIPによるルート情報の交換は、同じネットワーク内のRIPルータ間でバケツリレーのように行われていくことになります。
最終的にルーティングを行うためには、すべてのルータに必要なルート情報がルーティングテーブルになければいけません。すなわち、ルーティングテーブルがコンバージェンス状態になっていなければいけません。そのため、RIPを利用するときには、基本的にすべてのルータのすべてのインタフェースでRIPを有効にして、それぞれのルータで直接接続のルート情報をRIPルートとして生成します。それらのRIPルートを定期的にやり取りして、最終的にルーティングテーブルをコンバージェンスさせます。
次の図の3台のルータでのRIPによるルート情報のやり取りについて考えます。R1、R2、R3のすべてのインタフェースでRIPを有効化します。それぞれのルータは、直接接続のネットワークをRIPルートとしてRIPデータベースに生成します。
ここで、R1でRIPルート送信のタイミングになると、R1はRIPルートとして192.168.1.0/24を送信します。RIPデータベースには192.168.12.0/24もありますが、スプリットホライズンによって送信が止められます。
R2はRIPルートを受信して、192.168.1.0/24のルート情報をRIPデータベースに登録します。そして、R2のRIPルートの送信のタイミングになると、R2は以下のようにRIPルートを送信します。
- インタフェース1から送信するRIPルート
- 192.168.2.0/24
- 192.168.23.0/24
- インタフェース2から送信するRIPルート
- 192.168.1.0/24
- 192.168.12.0/24
- 192.168.23.0/24
- インタフェース3から送信するRIPルート
- 192.168.1.0/24
- 192.168.2.0/24
- 192.168.12.0/24
R2からのRIPルートの送信についてもスプリットホライズンによって、RIPデータベースのすべてのルート情報ではなく、一部のルートの送信が止められています。R2はR1から受信した192.168.1.0/24をさらにR3へと送信することになります。
R3では、受信したRIPルートをRIPデータベースに登録し、R3の送信のタイミングでRIPルートを送信します。最終的には、R1、R2、R3がやり取りするRIPルートとルーティングテーブルは次の図のようになります。
RIPでは、それぞれのルータがそれぞれのタイミングにしたがって、RIPルートの送信を行います。そのため、ネットワーク全体のルータのルーティングテーブルがコンバージェンスするには時間がかかってしまうことがあります。
スプリットホライズンについて、以下の記事をご覧ください。
RIPのメトリック
RIPはメトリックとして単純なホップ数、つまり経由するルータ台数を採用しています。あて先ネットワークへ到達するための帯域幅や遅延などを考慮しません。そのため、ネットワークの構成によってはRIPによる最適ルートは非効率なものになってしまいます。
たとえば、次の図のネットワークを考えます。このネットワークにおいて、RIPによるダイナミックルーティングを行っています。このとき、R1から192.168.1.0/24へパケットをルーティングするためのルートは2つあります。
- R2経由のルート メトリック=1
- R3経由のルート メトリック=2
メトリックから判断すると、最適なルートはR2経由です。ところが、R1-R2間の帯域幅は10Mbpsです。一方、R1-R3間、R2-R3間は1Gbpsの帯域幅です。帯域幅が大きければ、遅延も小さくなります。R1からR3を経由して192.168.1.0/24へパケットをルーティングするほうが、より帯域幅が大きく遅延も少ないはずですが、RIPでは帯域幅や遅延は考慮しません。単純に経由するルータ台数が少ないルートを最適とみなしてしまうので、実際には適切なルートであるとは限らなくなってしまいます。
RIPのホップ数を調整することも可能ですが、そのような設定は手間がかかります。大規模なネットワークでは、多くのルータでの追加の設定が必要で、作業の負荷が大きくなってしまいます。帯域幅や遅延などを考慮した最適ルートを決定できるようにするためには、OSPFやEIGRPを利用します。
また、RIPのホップ数には上限があります。ホップ数の値としては16が最大値です。ホップ数16は、そのネットワークへの到達不能を意味する特別な値です。そのため、RIPではホップ数15が実質的な最大値です。経由するルータ台数が15よりも多くなってしまうような大規模なネットワークでは、RIPでは正しくルート情報をルーティングテーブルに登録できません。
なお、こうしたRIPルートのメトリックの最大値を16と決めているのは、そのネットワークがダウンしたことを表しています。また、RIPルートのループ防止のためという意味もあります。RIPはコンバージェンスがあまり早くないため、場合によってはRIPルートがぐるぐるとループしてしまうことがあります。RIPルートがループするとメトリックがどんどん大きくなってしまいます。RIPルートのメトリックがどんどん大きくなり最大値の16になると、そのルートを無効化することでループを防止します。
IPルーティングのキホン
- ルータ ~ルーティングを行う中心的な機器~
- ルータでネットワークを分割
- レイヤ3スイッチ
- ルーティングの動作
- ルーティングテーブル
- ルーティングテーブルの作り方
- ホストルート ~/32のルート情報~
- スタティックルーティング?それともダイナミックルーティング? ~設定の考え方の違い~
- スタティックルーティングとダイナミックルーティング(RIP)の設定の比較
- スタティックルートのメリット・デメリット
- ルーティングプロトコルのメリット・デメリット
- ルート情報をアドバタイズする意味
- 宛先ネットワークまでの距離を計測 ~アドミニストレイティブディスタンスとメトリック~
- 等コストロードバランシング
- ルート集約 ~まとめてルーティングテーブルに登録しよう~
- デフォルトルート ~究極の集約ルート~
- 最長一致検索(ロンゲストマッチ) ~詳しいルート情報を優先する~
- インターネットのルート情報を見てみよう AT&T Looking Glass
- ルーティングプロトコルの分類 ~適用範囲~
- ルーティングプロトコルの分類 ~アルゴリズム~
- ルーティングプロトコルの分類 ~ネットワークアドレスの認識(クラスフルルーティングプロトコル/クラスレスルーティングプロトコル)~
- Cisco スタティックルートの設定
- ip default-network ~特定のルート情報に「*」をつける~
- スタティックルートをバックアップに ~フローティングスタティック~
- スタティックルートの設定を一歩ずつわかりやすく行う設定例[Cisco]
- Ciscoスタティックルーティングの設定例
- IPルーティング基礎演習Part1
- IPルーティング基礎演習Part2
- IPルーティング基礎演習Part3
- Windows PCのスタティックルートの設定 route addコマンド
- RIPの概要
- RIPの動作 ~RIPルート情報を定期的に送りつける~
- RIPスプリットホライズン
- RIPタイマ
- RIPルートポイズニング ~不要なルート情報を速やかに削除~
- Cisco RIPの設定と確認
- Cisco RIPの設定例
- RIPでのデフォルトルートの生成 ~スタティックルートの再配送~
- RIPでのデフォルトルートの生成 ~default-information originate~
- RIPでのデフォルトルートの生成 ~ip default-network~
- RIP 設定ミスの切り分けと修正 Part1
- RIP 設定ミスの切り分けと修正 Part2
- RIP 設定ミスの切り分けと修正 Part3
- RIP 設定ミスの切り分けと修正 Part4
- パッシブインタフェース(passive-interface) ~ルーティングプロトコルのパケット送信を止める~
- 転送経路を決定する方法 ~アドミニストレイティブディスタンス/メトリックと最長一致検索~
- デフォルトゲートウェイの詳細 ~ホストもルーティングしている~
- デフォルトゲートウェイの冗長化の概要
- Cisco HSRPの仕組み
- Cisco HSRP 仮想ルータ宛てのパケットがアクティブルータへ転送される仕組み
- Cisco HSRPトラッキング ~より柔軟にアクティブルータを切り替える~
- Cisco HSRP設定と確認
- Cisco HSRPの負荷分散
- HSRP 設定ミスの切り分けと修正 Part1
- VRRPの仕組み
- VRRPの設定と確認コマンド [Cisco]
- ルーティングテーブルのトラッキング(Cisco HSRP/VRRP)
- Cisco HSRP ルーティングテーブルのトラッキング設定例
- VRRP ルーティングテーブルのトラッキング設定例
- GLBPの仕組み
- Cisco GLBPの設定と確認
- Cisco GLBPの設定例
- HSRP/VRRP/GLBPのアドレス情報のまとめ