【情報技術の基礎知識】RIP（Routing Information Protocol）

## はじめに
ネットワークスペシャリストの学習内容整理のために投稿しています。
応用技術まで合格済みですが、馴染み無い分野を全て捨ててきたため、今回のように基本情報レベルのことも整理しています。
誤りや認識違いがありましたらご指摘いただけると嬉しいです。

## 目的
RIPの特徴、RIPをつかった経路制御の仕組みの理解。
以下のような問題を解くことを目的としますが、経路制御仕組みやOSPFとの違いの理解のためやや掘り下げます。

#### 問題①
RIP（Routing Information Protocol）における、宛先に到達可能な最大ホップ数は幾らか。【NW試験R1午前2問題】

ア　15
イ　31
ウ　6
エ　127

#### 問題②
二つのルーテイングプロトコルRIP-2とOSPFを比較したとき，OSPFだけに当てはまる特徴はどれか。【NW試験H29午前2問題】
ア　可変長サブネットマスクに対応している。
イ　リンク状態のデータベースを使用している。
ウ　ルーティング情報の更新にマルチキャストを使用している。
エ　ルーティング情報の更新を30秒ごとに行う。

## 用語の説明
#### ルーティングプロトコルとは
ルーター間で経路情報を交換する通信を行うためのプロトコル。種類は以下。
<table>
<tr>
<th>種類</th>
 <th>ルーティングプロトコル</th>
 <th>方式</th>
 </tr>
<tr>
 <td rowspan="2">

EGP(s)[^1]</td>
 <td>EGP</td>
 <td>距離ベクトル型</td>
</tr>
<tr>
<td>BGP</td>
<td>経路ベクトル型</td>
</tr>
<tr>
 <td rowspan="3">

IGP[^2]</td>
 <td>RIP</td>
 <td>距離ベクトル型</td>
</tr>
<tr>
<td>RIP2</td>
<td>経路ベクトル型</td>
</tr>
<tr>
 <td>OSPF</td>
 <td>リンク状態型</td>
</tr>
</table>

このほか、IGRP、IS-IS、EIGRPなどがある。

#### 距離ベクトルとは
距離（メトリック）と方向によって目的NWへの経路を決定する方法。
距離には、ルーターの数（ホップ数）が使われる。

## RIPとは
#### RIPを設定したネットワーク基本的な動作
1. 初期設定として、それぞれのルーターに直接接続されているネットワークの情報、距離ベクトルデータベースが設定されています。
![スクリーンショット 2022-07-11 15.45.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/380300/69a5755a-730f-8ba1-692e-c28ca0a5d51a.png)
(*)実際はIPアドレスが入ります。

2. 次に各ルータはその情報に距離を1つ足して隣接ルータにRIPパケットをブロードキャストします。
![スクリーンショット 2022-07-11 15.51.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/380300/e6788fd8-7dac-4da6-7162-41ca043de24b.png)

3. 2を30秒ごとに繰り返します。
この時、隣接するルータには２で送付した経路情報（既に自身のアドレステーブルに存在する経路情報）が存在するため、その情報も送られてくることに注意します。
RIPでは、ベルマン＝フォードアルゴリズム（後述）により、ルーティングテーブルの更新判定が行われます。ルーターBからの情報を受信したルーターAを例にとるとルーティングテーブルは以下のようになります。
![スクリーンショット 2022-07-11 17.04.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/380300/beb20582-fec6-d424-2d99-a7f3f37011f2.png)


##### ベルマン＝フォードアルゴリズムとは
![スクリーンショット 2022-07-11 16.16.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/380300/854cfa13-5b51-bae2-4f60-1b89275cb6d8.png)

#### RIP2とは
RIPの改良版で以下の特徴があります。
- サブネットマスク対応
- マルチキャスト使用
- 認証の仕組みが使えるようになった

## 障害時の挙動とRIPの問題点
RIPは隣接するルーターに情報を送るため、情報の送り返しが発生します。通常時はベルマン＝フォードアルゴリズムにより問題は発生しないように見えますが、一部のネットワークに問題が発生した時の挙動に注意が必要です。

#### RIPのネットワーク障害時の挙動
1. 問題を検知したルーターが自身のルーティングテーブルから問題のあるNWアドレス行を削除。
2. 隣接するルーターには当該NWアドレスの情報が送られなくなる。
3. 隣接するルーター（障害をまだ検知していない）は、NWアドレス行の更新が6回(180秒)行われなかった場合、当該行を削除。

#### ルーティングループ問題
障害時の挙動は、情報の送り返しにあります。
ルーターAでNW-Aの問題を検知し、ルーターAのルーティングテーブルからはNW-Aの行が削除されますが、隣接するルーターBとルーターCには未だNW-Aの情報が存在します(180秒経過するまで）。
この状態で、30秒間隔で送信している情報がルーターAに届くと、ルーターAは、存在しないNWアドレス情報として、自身のルーティングテーブルにNW-Aの情報を追加してしまいます。
その後、送り返しが発生し、距離がどんどん増えていくルーティングループが発生します。
![スクリーンショット 2022-07-11 17.30.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/380300/69365637-685c-5dda-fc56-f40a481766c1.png)

このループは、RIPの最大数15を超えた16を受信した時点で到達不可としてルーティングテーブルから破棄されますが、7分30秒(15x30秒)かかり、非効率です。

#### ルーティングループの防止
いくつか方法があります。

①スプリットホライズン
経路情報を受け取ったインターフェースからはその経路情報を送り返さない。
欠点としては、ループは防げるが、障害時に各ルータが障害NWの情報を削除するのに時間がかかる点は解決できない点。

②ポイズンリバース
経路情報を受け取ったインターフェースからはその経路情報を16にして送り返す。
スプリットホライズンと共存できないため、どちらかを使うようになっている。

③トリガーアップデート
30秒では無く変更をトリガーに経路情報を送信する仕組み。

④ホールドダウン
障害情報の削除が通知（180秒更新がない、もしくは距離16の情報を受信した場合）されたルーターがそのNW情報の更新を保留することでループを防止する仕組み。ホールドダウン中のNW情報は送り返しで受信しても更新されなくなる。保留期間はすべてのルーターに削除情報が伝わるまで。

⑤ルートポイズニング
障害時に情報を削除（NW情報を流さないの）ではなく、障害のNW情報を距離16として送ること。
受信したルータはその場でホールドダウンと組み合わせループの防止と180秒の待機が不要になる。


## RIPの特徴（問題①の解答）
ア　15
RIPにおけるホップは15が最大。16は到達不可として扱われます。

## RIP、RIP2の特徴（問題②の解答）
イ　リンク状態のデータベースを使用している。

今回、OSPFではなくRIPを重点的に学習しましたが、以下から回答が導けました。
- RIP, RIP2は距離ベクトル型でホップ数を使用します。リンクという概念はありません。OSPFはリンクステート型ということから、リンクという概念が存在しそうです。イは候補となります。
- 他の選択肢は、RIP2(RIP)に当てはまっています。

このことからイが正解という回答が導けます。

> ア　可変長サブネットマスクに対応している。

RIPは対応していませんが、RIP2で対応しました。（学習外でしたがOSPFも対応しています）

> ウ　ルーティング情報の更新にマルチキャストを使用している。

RIPは対応していませんが、RIP2で対応しました。（学習外でしたがOSPFも対応しています）


> エ　ルーティング情報の更新を30秒ごとに行う。

RIPもRIP2も30秒ごとに情報を更新します。（学習外でしたがOSPFは非対応です）

## おわりに
ありがとうございました。

## 学習に利用している教材
<a href="https://www.amazon.co.jp/dp/4883379779?coliid=I11UD6V431FDPJ&colid=3EB0EB2M2CDK1&psc=0&linkCode=li2&tag=cocolonifty00-22&linkId=4d7b23785ecfce7223819121ff53efc7&language=ja_JP&ref_=as_li_ss_il" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4883379779&Format=_SL160_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=cocolonifty00-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=cocolonifty00-22&language=ja_JP&l=li2&o=9&a=4883379779" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />　<a href="https://www.amazon.co.jp/dp/4774157376?coliid=I3M4FFOIS90JH7&colid=3EB0EB2M2CDK1&psc=1&linkCode=li2&tag=cocolonifty00-22&linkId=ce3aefbfa60b943274412b8b8318ae06&language=ja_JP&ref_=as_li_ss_il" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4774157376&Format=_SL160_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=cocolonifty00-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=cocolonifty00-22&language=ja_JP&l=li2&o=9&a=4774157376" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />　<a href="https://www.amazon.co.jp/%E5%85%A8%E6%96%87PDF%E3%83%BB%E5%8D%98%E8%AA%9E%E5%B8%B3%E3%82%A2%E3%83%97%E3%83%AA%E4%BB%98-%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5-%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B9%E3%83%9A%E3%82%B7%E3%83%A3%E3%83%AA%E3%82%B9%E3%83%88%E6%95%99%E7%A7%91%E6%9B%B8-%E4%BB%A4%E5%92%8C4%E5%B9%B4%E5%BA%A6/dp/4295012416?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3PRM3FTF5M7JG&keywords=%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B9%E3%83%9A%E3%82%B7%E3%83%A3%E3%83%AA%E3%82%B9%E3%83%88&qid=1657532342&s=books&sprefix=%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B9%E3%83%9A%E3%82%B7%E3%83%A3%E3%83%AA%E3%82%B9%E3%83%88%2Cstripbooks%2C173&sr=1-3&linkCode=li2&tag=cocolonifty00-22&linkId=a43680c814e2189570db246e148e49dc&language=ja_JP&ref_=as_li_ss_il" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4295012416&Format=_SL160_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=cocolonifty00-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=cocolonifty00-22&language=ja_JP&l=li2&o=9&a=4295012416" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

[^1]: EGPは、AS間ルーティングプロトコル
[^2]: IGPは、AS内ルーティングプロトコル