Cisco892サービス統合型ルータでRIPを学ぶ

#はじめに
Webサービスを作る上で最低限のネットワーク知識が必要になります。今回はネットワーク学習の一環としてCiscoのルータを用いてRIPの実機演習を行なったので、実験内容についてまとめようと思います。

#RIPとは
*RIP*とは,ルータ間で使用されるディスタンスベクタ型ルーティングプロトコルの一つです。
メトリック値がより小さい経路を最適経路とします。メトリック値はルータのホップ数で決まり、最大メトリック値は15と決まっておりそれ以上を超えた場合は到達することができません。
経路情報の交換は30秒ごとにレギュラー・アップデートをマルチキャストを行い、180秒以内にルータから更新メッセージが届かない場合該当の経路情報を無効化します。

#実験
####使用機器
- Cisco 892 サービス統合型ルータ　3台
- PC(windows・Ubuntu) 3台
- コンソールケーブル(telnet接続のため) 3本
- LANケーブル 6本

#####1.RIPの設定
![スクリーンショット 2021-10-22 14.21.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1271636/340e642d-f8fd-1f87-f5f6-33dce8f2e43a.png)図1
まずPCからルータにtelnet接続し,上の図1のようにPC,ルータそれぞれにIPアドレスを割り振ります。しかし、192.168.3.10から192.168.2.0や192.168.1.0のネットワークにはPingが通りません。同様に逆からもPingは通ることはありませんでした。
これはルータが持つルーティングテーブルに載っていないことが原因にあります。その問題を解消するためRIPの設定を行いたいと思います。コマンドは以下のようになります。

```:RIP設定
(config)#router rip //ripを有効化
(config-router)#version 2 //version2を指定
(config-router)#no auto-summary //自動集約の無効化
(config-router)#network <network address> //ネットワーク公布
```
RIPにはversion1とversion2がありますが、今回はversion2を使用します。
version1はクラスフルなルーティングでRIPパケットのIPアドレスの宛先がブロードキャスト(255.255.255.255)になります。一方で、version2ではクラスレスなルーティングで宛先IPアドレスがマルチキャスト(224.0.0.9)という違いがあります。より詳しいことはここでは割愛します。

RIPを有効化するとルーティングテーブルにRouter0では192.168.3.0,192.168.1.0のネットワークが載ったことが確認できます。同様に、Router1、Router2でも先ほどまで無かったネットワークが載っている事が確認することができました。

```:Router0のルーティングテーブル
R    192.168.1.0/24 [120/1] via 192.168.13.1, 00:00:18, GigabitEthernet0/2
     192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.2.0/24 is directly connected, GigabitEthernet0/0
L       192.168.2.1/32 is directly connected, GigabitEthernet0/0
R    192.168.3.0/24 [120/1] via 192.168.23.1, 00:00:23, GigabitEthernet0/1
     192.168.13.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.13.0/24 is directly connected, GigabitEthernet0/2
L       192.168.13.2/32 is directly connected, GigabitEthernet0/2
     192.168.23.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.23.0/24 is directly connected, GigabitEthernet0/1
L       192.168.23.2/32 is directly connected, GigabitEthernet0/1
```
またwiresharkのパケット写真はありませんが、マルチキャストでRIPv2のパケットを出し経路情報の交換を行なっているのが確認できました。

#####ルートの最適化
![スクリーンショット 2021-10-27 21.02.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1271636/ee967eb4-ea52-5800-a311-d9576bd1bad3.png)図2
RIPがメトリックにより最適経路を選択するということは初めに述べました。図2のようにIPアドレスやRIP設定を行なった場合、PC3からPC4の経路は次のようになります。

```
C:\>tracert 192.168.1.10

Tracing route to 192.168.1.10 over a maximum of 30 hops: 

  1   0 ms      0 ms      0 ms      192.168.3.1
  2   0 ms      0 ms      0 ms      192.168.13.2
  3   1 ms      0 ms      0 ms      192.168.1.10
```
そこで192.168.13.0のネットワークのメトリックを増やし経路がしっかりと切り変わるのかを検証したいと思います。
設定方法は次のようになります。

```:ホップの変更
(config)#router rip
(config-router)#offset-list 1 out 10 gi0/0
```
結果としては次のようになりました。

```
C:\>tracert 192.168.1.10

Tracing route to 192.168.1.10 over a maximum of 30 hops: 

  1   0 ms      0 ms      0 ms      192.168.3.1
  2   1 ms      0 ms      0 ms      192.168.23.2
  3   0 ms      0 ms      0 ms      192.168.12.1
  4   1 ms      0 ms      0 ms      192.168.1.10
```
メトリックを増やしたことでしっかりと経路が切り替わっていることが確認できました。
#終わりに
　ルーティングプロトコルとして古くから使われているRIPですが、実装が比較的に容易になっており現在でも使われています。今回定期的に情報交換を行いネットワークが増えるとともに経路情報がRIPパケットに集約されていくことや、メトリックによって最短経路を選んでいることは学ぶことができました。しかし、最大ホップ数が15であることや収束が遅く、帯域幅や遅延を考慮しないということも知ることができました。
　次回はより大規模なネットワークに採用されているOSPFについて学習していこうと思います。
・[OSPFの基本を理解する(概念)](https://qiita.com/flatbit/items/af48e65d884d60dc457c)
・[OSPFの基本を理解する(実験編)](https://qiita.com/flatbit/items/eb778cf6792ff8006f84)
　長くなりましたが、拝読してくださりありがとうございました。


#参考
[記憶術で覚えるRIP-③RIPv1とRIPv2の違い](http://www.runsurunet.com/2017/04/22/%E8%A8%98%E6%86%B6%E8%A1%93%E3%81%A7%E8%A6%9A%E3%81%88%E3%82%8Brip-%E2%91%A2ripv1%E3%81%A8ripv2%E3%81%AE%E9%81%95%E3%81%84/)
[RIPの仕組みと運用法を知ろう！](https://atmarkit.itmedia.co.jp/ait/articles/0202/23/news003.html)