ルーティングプロトコルの中でも,基礎ともいえるプロトコルがディスタンスベクタ型のルーティングプロトコルです。ルーティングプロトコルの基本的な概念は,ディスタンスベクタ型によって学ぶことができます。ルーティングプロトコルの基礎であるRIPを学び,ルーティングプロトコルの理解を深めましょう。

ディスタンスベクタ型ルーティングプロトコル


 ルーティング編 第2回で説明したルーティングプロトコルの種別のうち,RIPはディスタンスベクタ型ルーティングプロトコルです。ディスタンスベクタ型ルーティングプロトコルは,隣接ルータからの情報のみからルーティングテーブルを構成します。隣接していないルータ・ネットワークの情報は,すべて隣接ルータ経由で取得します。


 ディスタンスベクタ型ルーティングプロトコルを動作させているルータは,自分が持つルーティングテーブルの情報,つまりそれぞれのネットワークへのベストパスを隣接ルータへルーティング情報(ルーティングアップデート)として渡します。ルーティングアップデートには,ネットワークアドレスとそのネットワークまでのメトリック(ホップ数)が記載されています。ルーティングアップデートを受け取ったルータは,その内容と自身のテーブルを見比べて,ルーティングテーブルを更新します。RIPを例にディスタンスベクタ型ルーティングプロトコルの動作を図示します(図1)。


図1●ルーティングテーブルの更新
 「伝言ゲーム」のように隣接ルータへ情報を伝えていくことになります。ディスタンスベクタ型でルーティングテーブルに情報を追加していく手順は,ベルマンフォードアルゴリズムと呼ばれる方法で,以下のようになります。


  1. ルーティングアップデートで受け取ったネットワークがルーティングテーブルにあるか

    • ない ・・・ テーブルに追加
    • ある ・・・ 2へ
  2. ルーティングテーブルにあるエントリの次ホップのルータからアップデートを受け取ったか

    • 受け取った ・・・ テーブルに追加

    • 違うルータから受け取った ・・・ 3へ

  3. アップデートのメトリックが今のメトリックより小さいか

    • 小さい ・・・ テーブルに追加

    • 大きい ・・・ アップデートは無視


 ディスタンスベクタ型では,隣接していないルータ・ネットワークの情報は順番にルーティングアップデートが回ってくるまで知ることができません(図2)。


図2●コンバージェンスにかかる時間
 上記のように最悪の場合は,コンバージェンスに60秒かかってしまいます。特にネットワークが大きくてルータ数が多い場合,離れたルータ間でのコンバージェンスの時間は膨大になってしまいます。このため,ディスタンスベクタ型は大規模ネットワークに不向きであるといえます。

 ディスタンスベクタ型のルーティングプロトコルとしては,IGRP(Interior Gateway Routing Protocol)もあります。IGRPはCisco社独自のルーティングプロトコルでRIPの後継プロトコルとして開発されました。現在は,IGRPの拡張版であるEIGRPがあり,IGRPとしてはあまり使われておりません。CCNAの範囲としても外れてしまったため,説明は省略します。

RIPの設定


 RIPは最初期に作られたルーティングプロトコルで,現在ではかなり古いプロトコルとして知られています。このため,改良が施され,バージョン2が存在します(RIP2またはRIPv2と表記して区別します。この場合改良前のバージョンはRIP1またはRIPv1と表記します)。RIPは動作が単純で,ルータに対する負荷も小さいため,現在でも小規模ネットワークではよく利用されています。


 RIPv1とRIPv2のそれぞれの特徴は以下の通りになります(表1)。

表1 RIPv1とRIPv2の特徴

 RIPv1RIPv2
クラスレスのサポートクラスフルのみクラスレス可能
メトリックホップ数
最大ホップ数16
アップデート間隔30秒
イベントトリガアップデートしないする
アップデートの宛先アドレスブロードキャスト
(255.255.255.255)
マルチキャスト
(224.0.0.9)

 RIPの基本的な設定は,routerコマンドとnetworkコマンドの2つを使います(図5)。

  • (config)# router rip・・・ RIPを有効にし,RIP設定モードに入る
  • (config-router)# network [ネットワークアドレス] ・・・ ルーティングプロトコルを有効にするネットワークを決定
    • [ネットワークアドレス]
      • ルーティングプロトコルを有効にするネットワークのネットワークアドレス

図5●RIPの設定
図5●RIPの設定
 RIPはクラスフルルーティングプロトコルなので,networkコマンドはクラスで設定します。例えば,172.16.1.0/24と172.16.2.0/24の2つのサブネットがあった場合,networkコマンドはnetwork 172.16.0.0でよいことになります。


 また,RIPをバージョン2で動作させたい場合は,version 2コマンドをルータ設定モードで実行します。

  • (config-router)# version 2 ・・・ RIPv2で動作させる


 RIPの動作を確認するには,show ip protocolsコマンドを使います(図6)。

  • (config)# show ip protocols ・・・ ルーティングプロトコルの動作を確認

図6●show ip protocols
図6●show ip protocols
 一番上に書かれているタイマは以下の意味があります(カッコ内はデフォルト値)。

  • Update (30秒) ・・・ ルーティングアップデートの送信間隔
  • Invalid (180秒) ・・・ アップデートがこのInvalidタイマ内に受信されなければ,そのエントリはホールドダウンになる
  • Hold down (180秒) ・・・ ホールドダウン時間。このタイマ内ではそのエントリに対するアップデートは無視される
  • Flush (240秒) ・・・ この時間を経過してもアップデートが受信されなければ,そのエントリは削除される


 また,RIPのアップデートの送受信を確認するには,debugコマンドを使用します(図7)。

  • (config)# debug ip rip ・・・ RIPアップデートの送受信を表示する

図7●debug ip rip
図7●debug ip rip

(改定履歴)
・CCNAの試験範囲からIGRPが外れたため,「RIPとIGRPを押さえる」からIGRPの部分を抜いて再構成しました。(2008/7/24)