実習やった:RIPv2と経路集約を学ぶ

・下図のようなネットワークを作る。

★手順
PCの設定
ホストネームの設定
特権パスワード(平文・暗号文)
コンソールパスワード
telnetパスワード
全てのパスワードを暗号化(service password-encryption)
インターフェースの設定(R2のf0はno keepalive)
クロックレートの設定

ルータ2台分設定

show ip interface brief でインターフェースの状態を確認
R1

R2

R1、R2ともupしている。問題なし。

show ip route でルーティングテーブルを確認
R1

R2

R1、R2とも直接接続(C - connected)のネットワークのみ。




では、ちょい復習になりますがRIPv1でルーティングを行いましょう。(*-ω-)ノ


RIPv1はクラスフルのルーティングプロトコルでした。
なので、↓のように、同じクラスだけどサブネットが違うからって2つネットワークアドレスを入力しても、
サブネットの情報はRIPv1は持ってくれないので、クラスCのアドレスは全部/24の形でしか認識できないわけです。
ルータにしてみれば
「192.168.1.32と192.168.1.96て入力してるけど、クラスCなんだから両方192.168.1.0のネットワークだろが!!」
ってなるわけで・・・(想像)
つまり下位8ビットは全部ゼロになっちゃうんですね。

↑あー。

R2も同じく。
「192.168.1.1と192.168.1.128て入力してるけど、クラスCなんだから両方192.168.1.0のネットワークだろが!!」
「172.16.1.0と172.16.2.0て入力してるけど、クラスBなんだから両方172.16.0.0のネットワークだろが!!」
「172.17.1.0と172.17.2.0て入力してるけど、クラスBなんだから両方172.17.0.0のネットワークだろが!!」
って言われちゃいます(想像)

↑あー。







さてここで。

RIPv1はVLSMに対応してないのでした。


でも。RIPv1は、連続サブネットであれば、通信できるのです!
受信した経路情報が、自分のインタフェースに設定されたネットワークアドレスと同じクラスだった場合、
自分のサブネットマスクを適用しちゃうんです。


つまり・・・

たとえば自分のルーティングテーブルには192.168.1.0/27がのっている。
で、RIPv1で192.168.1.32の経路情報が来た。
サブネットマスクわかんないなー。。じゃあいいや、自分と同じ/27として受け取っとくかー。
っていう、なぁなぁ的なやりとりが行われてる・・・かどうかは知りませんが、
とにかく/27同士なら通信できるわけで。


と、いうことは・・・

↑これ、クラスCの/27同士のとこはよいけど、ℓ1は/26だからR1は経路情報受け取れてないってことだよね。。
じゃあpingも通らないってことか。。っていう予想が立てられます。


試しにR1からpingうってみましょう。

↑やはり。。。


show ip route で確認してみても、ℓ0のネットワークアドレス192.168.1.128は載ってないですねー。
載ってないネットワーク宛てのパケットは、「どこだよ、それ。」ってポイしちゃいます。

※クラスBのℓ2〜ℓ5には、R1からping通ります。R1のルーティングテーブルには172.16.0.0が載ってるので、R2に送ればいい、ってことをちゃんと認識してるわけです。R2に送ったら、R2は直接つながれたネットワークのどれかに送れますから。


ではでは、ここでRIPv2の登場です。


RIPv2はクラスレスのルーティングプロトコルなので、ちゃんとサブネットマスクの情報もやりとりしてくれます。
しかも、コマンドはversion 2ってうつだけ!かんたん!べんり!
いちいちサブネットマスクを打ち込んだりせずとも、勝手にやりとりしてくれます。


↑R1、R2ともversion2にしましょう。


R1でshow ip route で確認してみると・・・192.168.1.128が載ってる!

        ↑わーい


でもこれだけで喜んでちゃいけません。
ℓ2〜ℓ5のクラスBのアドレスたちが、まだ集約されたまんまです。
RIPv2はサブネットマスクの情報やりとりしてくれるはずなのに・・・なぜ??
(私はこれすごい悩みました。。)

↑こうなる。



それは、RIPが、v1v2とも、デフォルトでネットワーク境界で自動集約する特徴を持っているので、
v2がいくらサブネット情報をやりとりできるとは言え、
クラスBとクラスCで境界があったら、
サブネット情報よりも、「クラスBは/16!」ってのが最優先されちゃうんですね。



なので、no auto-summary で自動集約をオフにして、
「クラスBだけど/16で集約しないで〜/24にして〜」 って通知する必要があります。




すると・・・
ルーティングテーブルに、クラスBの集約されてないルートが載ってますね!
※ただし昔のルート情報も残ってます。フラッシュタイマが切れたらルーティングテーブルから削除されます。

↑172.16.0.0はアップデート情報が来なくてホールドダウン状態になっている様子。(ホールドダウンタイマが起動すると〜is possibly downと表示される)→RIPのタイマーを参照


↓昔のルート情報が削除されて最新のルーティングテーブルになっている様子。