# IP / 経路制御（RIP）

ネットワークの規模が大きくなると、手動で経路情報を登録するスタティックルーティングでは管理の手間が大きくなり、設定ミスなどによる通信障害も起きやすくなります。ダイナミックルーティングは、ルーター間で経路情報を自動的に交換しあう「ダイナミックルーティング（経路制御）プロトコル」を用いて、経路情報の管理を自動化する方法です。本製品では以下のダイナミックルーティングプロトコルを使用できます。

- RIP（Routing Information Protocol）

ここでは、RIPの設定手順について解説します。
関連機能については以下のセクションをご覧ください。

- スタティックルーティング
- 経路フィルタリング

## プロトコル概要

RIP（Routing Information Protocol）は比較的小規模なネットワーク用に設計されたシンプルなダイナミックルーティングプロトコルです。RIPルーターは、自分の持つ経路表を定期的にブロードキャスト（RIP2ではマルチキャスト）し、隣接するルーターに経路情報を伝えます。RIPパケットを受け取った各ルーターは、自分の経路表と受け取った情報を比べ、必要に応じて経路エントリーを追加・削除・修正して経路情報を最新に保ちます。
RIPにはさまざまな制限がありますが、そのシンプルさゆえに設定が簡単であり、小規模なネットワークでは有効に機能します。
RIPはトランスポート層としてUDPを利用します。始点・終点ポートは520番です。

### RIPバージョン1と2

RIPには2つのバージョンがあります。オリジナルのRIP（RIPバージョン1）はRFC1058で、改良版のRIPバージョン2はRFC2453でそれぞれ規定されています。
RIPバージョン1（以下RIP1）で交換される経路情報は次のとおりです。

- 宛先ネットワークアドレス
- メトリック（ホップ数）

RIP1にはサブネットマスクの概念がないため、RIP1の経路エントリーにはクラスA、B、Cに基づく標準マスクが適用されます。
一方、RIPバージョン2（以下RIP2）は、RIP1の未使用フィールドを用いて以下の点を改良しています。

- サブネットマスクの情報を扱える
- ネクストホップルーターアドレスを扱える
- ブロードキャストではなくマルチキャスト（224.0.0.9）で送信する
- 簡単な認証機構（簡易パスワードまたはMD5）がある

現在のネットワークでは通常RIP2を使います。特別な理由がないかぎりRIP1を使う意味はありません。本製品でも、RIPバージョンの初期設定は2になっています。

## 基本設定

次のような構成のネットワークを例に、ルーターA、BでRIPバージョン2を使用するための設定方法を説明します。

なお、以下の各例では、VLANの作成とIPアドレスの設定は完了しているものとします。VLANの設定については、「L2スイッチング」の「バーチャルLAN」をご覧ください。IPアドレスの設定については、「IP」の「IPインターフェース」をご覧ください。

#### ルーターA

1. RIPの動作に必要なRIPサービスを有効にします。これにはservice ripコマンドを使います。

       RouterA(config)# service rip

2. RIPルーティングプロセスを起動し、RIPモードに移行します。

       RouterA(config)# router rip

3. RIPで通知するネットワークの範囲とRIPパケットの送受信を行うインターフェースを指定します。ここでは、vlan10（192.168.10.1）とvlan20（192.168.20.1）の両インターフェースでRIPパケットの送受信を有効にし、vlan10に接続されている192.168.10.0/24とvlan20に接続されている192.168.20.0/24を通知対象としています。

       RouterA(config-router)# network 192.168.10.0/24
       RouterA(config-router)# network 192.168.20.0/24

#### ルーターB

1. RIPの動作に必要なRIPサービスを有効にします。これにはservice ripコマンドを使います。

       RouterB(config)# service rip

2. RIPルーティングプロセスを起動し、RIPモードに移行します。

       RouterB(config)# router rip

3. RIPで通知するネットワークの範囲とRIPパケットの送受信を行うインターフェースを指定します。ここでは、vlan20（192.168.20.2）とvlan30（192.168.30.1）の両インターフェースでRIPパケットの送受信を有効にし、vlan20に接続されている192.168.20.0/24とvlan30に接続されている192.168.30.0/24を通知対象としています。

       RouterB(config-router)# network 192.168.20.0/24
       RouterB(config-router)# network 192.168.30.0/24

設定は以上です。これにより、ルーターAのvlan10、vlan20インターフェースとルーターBのvlan20、vlan30インターフェースでRIP（バージョン2）パケットの送受信が行われるようになり、他のルーターとの間で情報が交換され、経路表が動的に構築されていきます。
networkコマンドで指定するアドレスは、RIPで通知するネットワーク範囲の指定であるとともに、RIPパケットの送受信を行うインターフェースの指定でもあります。詳しく言うと、networkコマンドで指定したアドレス範囲におさまる直結経路がRIPで通知されるようになり、また、同じアドレス範囲内のIPアドレスを持つインターフェースでRIPパケットの送受信が有効になります。
networkコマンドでは、「指定したアドレス」が通知されるのではなく、「指定したアドレス範囲におさまる直結経路」が通知されることに注意してください。たとえば、ルーターAでは次のような指定をしても同じ動作になります（ルーターBも同じ）。

    RouterA(config)# router rip
    RouterA(config-router)# network 192.168.0.0/16

ルーターAにおけるvlan10（192.168.10.0/24）、vlan20（192.168.20.0/24）、ルーターBにおけるvlan20（192.168.20.0/24）、vlan30（192.168.30.0/24）のいずれも、192.168.0.0/16（192.168.0.0～192.168.255.255）に含まれるからです。
もう少し範囲を限定して、次のようにしても同じです。

    RouterA(config)# router rip
    RouterA(config-router)# network 192.168.0.0/19

192.168.0.0/19は192.168.0.0～192.168.31.255の範囲を表し、ルーターAにおけるvlan10（192.168.10.0/24）、vlan20（192.168.20.0/24）、ルーターBにおけるvlan20（192.168.20.0/24）、vlan30（192.168.30.0/24）のすべてを包含しているためです。
さらに、networkコマンドでは、アドレス範囲だけでなく、インターフェース名を指定することもできます。この場合は、指定したインターフェースでRIPパケットの送受信が有効となり、該当インターフェースの直結経路がRIPによる通知対象となります。
したがって、前記の例では次のように指定することもできます。

- ルーターA

      RouterA(config)# router rip
      RouterA(config-router)# network vlan10
      RouterA(config-router)# network vlan20

- ルーターB

      RouterB(config)# router rip
      RouterB(config-router)# network vlan20
      RouterB(config-router)# network vlan30

RIPで通知するネットワーク範囲の指定を削除するには、networkコマンドをno形式で実行します。
networkコマンドをno形式で実行する場合、指定するインターフェース名やアドレス範囲は、通常形式でnetworkコマンドを実行したときに指定したのと同じでなくてはなりません。
たとえば、「network 192.168.0.0/19」を実行した後でこれを取り消すために「no network 192.168.0.0/16」と入力するとエラーになります。正しくは「no network 192.168.0.0/19」としなくてはなりません。
次の例では、192.168.10.0/24の範囲に含まれる直結経路をRIPによる通知対象から除外し、また、192.168.10.0/24におさまるIPアドレスを持つインターフェースでRIPパケットの送受信を停止します。

    awplus(config-router)# no network 192.168.10.0/24

また、次の例では、vlan10でRIPパケットの送受信を無効にし、vlan10の直結経路をRIPによる通知対象から外しています。

    awplus(config-router)# no network vlan10

RIPルーティングプロセスを停止する（RIPを無効にする）には、router ripコマンドをno形式で実行します。

    awplus(config)# no router rip

Note

router ripコマンドをno形式で実行すると、RIPのグローバル設定（RIPモード以下で行う設定すべて）が削除されるのでご注意ください。

## 詳細設定

特定のインターフェースにおいて、RIPパケットの受信のみで送信を行わないようにするには、passive-interfaceコマンドで該当インターフェースをパッシブインターフェースに設定します。
たとえば、vlan30（インターフェースアドレスは192.168.30.1/24）をパッシブインターフェースに設定するには、次のようにします。

    awplus(config-router)# passive-interface vlan30
    awplus(config-router)# network 192.168.30.0/24

Note

パッシブインターフェースを設定する場合、passive-interfaceコマンドでインターフェースを指定するだけでなく、networkコマンドを実行して該当インターフェースの直結ネットワークがRIPの通知対象になるよう設定しておく必要があります。

末端のネットワークなどでRIP情報の送信のみを行い、受信を行わないようにするには、interfaceコマンドで対象となるインターフェースを指定してインターフェースモードに入ったのち、ip rip receive-packetコマンドをno形式で実行します。

    awplus(config)# interface vlan40
    awplus(config-if)# no ip rip receive-packet

送受信するRIPパケットのバージョンはversionコマンドで指定します。このコマンドの設定は、RIPが有効になっているすべてのインターフェースに適用されます（ただし、インターフェースに対してバージョン設定がなされている場合は、インターフェース設定が使用されます）。初期設定は2です。

    awplus(config-router)# version 1

また、インターフェースごとにRIPパケットのバージョンを指定することもできます。このときは、送信パケットと受信パケットで異なるバージョンを指定することも可能です。これにはip rip send versionコマンドとip rip receive versionコマンドを使います。
インターフェースごとの設定は、versionコマンドによる全体設定よりも優先されます。インターフェースごとの設定が行われていないインターフェースでは、versionコマンドの設定が使われます。

    awplus(config)# interface vlan60
    awplus(config-if)# ip rip send version 1-compatible
    awplus(config-if)# ip rip receive version 1

### 非RIP経路の再通知

非RIP経路をRIPで再通知したいときは、redistributeコマンドで再通知したい経路の種別を指定します。このとき、経路種別ごとに再通知時のメトリック値も指定できます。メトリックを指定しなかった場合は、default-metricコマンドで指定した値が使用されます。
スタティック経路をRIPで再通知する場合は次のようにします。ここでは、すべてのスタティック経路をメトリック6で通知するよう設定しています。

    awplus(config-router)# redistribute static metric 6

### 経路の集約

RIPバージョン2では経路を集約してから通知することができます。集約の設定はRIPパケットを送信するインターフェースごとに行います。
経路を集約するには、インターフェースモードの ip summary-address ripコマンドで集約経路エントリーを作成します。
たとえばvlan10において、経路情報を192.168.0.0/16に集約してから通知したい場合は、次のような集約経路エントリーを作成します。

    awplus(config)# interface vlan10
    awplus(config-router)# ip summary-address rip 192.168.0.0/16

これにより、192.168.0.0/16の範囲におさまる個別経路（たとえば、「192.168.10.0/24」、「192.168.96.0/19」、「192.168.128.0/17」など）は、1つの経路エントリー「192.168.0.0/16」に集約された上で通知されるようになります。より詳しくは ip summary-address ripコマンドのページをご覧ください。

### 認証（RIPバージョン2）

RIPバージョン2ではRIPパケットの認証を行うことができます。認証の設定はRIPパケットを送受信するインターフェースごとに行います。
各インターフェースに設定するパスワードの数が1つであるか複数であるかによって、設定の方法が少し異なります。

#### 単一パスワード

1インターフェース1パスワードの場合は、次のようにします。

1. 認証を行うインターフェースに対し、認証方式を指定します。認証方式には簡易パスワードとMD5ダイジェストの2種類があります。
   簡易パスワードを使用する場合は次のようにします。

       awplus(config)# interface vlan20
       awplus(config-if)# ip rip authentication mode text

   Note

   初期状態では、すべてのインターフェースで認証方式が簡易パスワードに設定されているため、特に設定を変更していない場合は「ip rip authentication mode text」を省略できます。

   MD5ダイジェストを使用する場合は次のようにします。

       awplus(config)# interface vlan20
       awplus(config-if)# ip rip authentication mode md5

2. 該当インターフェースで使用するパスワードを指定します。パスワードの設定方法はどちらの方式でも同じです。

       awplus(config-if)# ip rip authentication string 9Werty!

設定は以上です。
該当インターフェースとRIPパケットを交換するすべてのルーターに対し、同じ認証方式と同じパスワードを設定してください。

#### 複数パスワード（キーチェーン）

1つのインターフェースで複数のパスワードを使う場合は、次のようにします。

1. キーチェーン（パスワードセット）を作成します。
   - key chainコマンドでキーチェーン名を指定し、キーチェーンモードに入ります。

         awplus(config)# key chain MyKeyChain
         awplus(config-keychain)#

   - keyコマンドで鍵番号を指定し、キーチェーンキーモードに入ります。

         awplus(config-keychain)# key 1
         awplus(config-keychain-key)#

   - key-stringコマンドで鍵の値（パスワード）を指定します。

         awplus(config-keychain-key)# key-string aiueo
         awplus(config-keychain-key)# exit

   - 同様にしてパスワードの集合を定義していきます。終わったらexitコマンドでグローバルコンフィグモードに戻ります。

         awplus(config-keychain)# key 2
         awplus(config-keychain-key)# key-string kakikukeko
         awplus(config-keychain-key)# exit
         awplus(config-keychain)# key 3
         awplus(config-keychain-key)# key-string sashisuseso
         awplus(config-keychain-key)# exit
         awplus(config-keychain)# exit

2. 認証を行うインターフェースに対し、認証方式を指定します。認証方式には簡易パスワードとMD5ダイジェストの2種類があります。
   簡易パスワードを使用する場合は次のようにします。

       awplus(config)# interface vlan30
       awplus(config-if)# ip rip authentication mode text

   Note

   初期状態では、すべてのインターフェースで認証方式が簡易パスワードに設定されているため、特に設定を変更していない場合は「ip rip authentication mode text」を省略できます。

   MD5ダイジェストを使用する場合は次のようにします。

       awplus(config)# interface vlan30
       awplus(config-if)# ip rip authentication mode md5

3. 該当インターフェースで使用するキーチェーンを指定します。キーチェーンの設定や指定方法はどちらの認証方式でも同じです。

       awplus(config-if)# ip rip authentication key-chain MyKeyChain

設定は以上です。
該当インターフェースとRIPパケットを交換するすべてのルーターに対し、同じキーチェーンと同じ認証方式を設定してください。
Note

キーチェーン名はルーターごとに異なっていてもかまいません。また、簡易パスワード認証の場合は、パスワード集合が同じであれば鍵番号が異なっていてもかまいません。一方、MD5認証の場合は、鍵番号とパスワードの組み合わせが同一でなくてはなりません。

### 経路フィルタリング

RIPにおける経路フィルタリングについては、「IP」の「経路制御（フィルタリング）」をご覧ください。

## 設定や状態の確認

RIPの設定や各種状態を確認するコマンドを紹介します。
RIPの全体設定を確認するには、show running-configコマンドでセクション名「router rip」を指定するとよいでしょう。

    awplus(config-router)# show running-config router rip

インターフェース固有の設定を確認したいときは、show running-configコマンドでセクション名「interface」または「interface IFRANGE」を指定するとよいでしょう。

    awplus(config-router)# show running-config interface vlan10,vlan20

キーチェーンの設定を確認したいときは、show running-configコマンドにセクション名「key chain」を指定します。

    awplus(config)# show running-config key chain

RIPルーティングプロセスの設定や状態を確認するにはshow ip protocols ripコマンドを使います。

    awplus# show ip protocols rip

RIPインターフェースの設定を確認するにはshow ip rip interfaceコマンドを使います。

    awplus# show ip rip interface vlan10

RIP経路表を確認するにはshow ip ripコマンドを使います。
RIP経路表はRIPルーティングプロセスが独自に保持している経路データベースで、この中からメトリック的に最適と判断された経路がシステムのIP経路表（RIB）に登録されます。

    awplus# show ip rip

IP経路表（RIB）を確認するにはshow ip route databaseコマンドを使います。
IP経路表（RIB）は各種情報源から得た経路情報を蓄積するデータベースで、この中から管理距離（AD：Administrative Distance）的に最適と判断された経路がシステムのIP転送表（FIB）に登録されます。

    awplus# show ip route database

IP転送表（FIB）を確認するにはshow ip routeコマンドを使います。
IP転送表（FIB）は、IPパケットの転送判断時に参照するデータベースで、各宛先に対する最適な経路だけが登録されています。

    awplus# show ip route