メジャーネットワークとは、クラス A (/8)、B (/16)、C (/24) のアドレスクラスに従ったネットワークです。
例えば、192.168.1.0/24 を4つのネットワークにサブネット化したとします。
192.168.1.0/26
192.168.1.64/26
192.168.1.128/26
192.168.1.192/26
これら4つのネットワークのメジャーネットワークは共通で、サブネット化する前のネットワークアドレスである 192.168.1.0 です。
クラス毎のメジャーネットワークは以下の形式になります。
クラス | メジャーネットワーク |
A | X.0.0.0 |
B | X.X.0.0 |
C | X.X.X.0 |
次のネットワーク構成図では5つのネットワークがあります。
これをメジャーネットワークで表すと次の図のようになります。
RIP はこのメジャーネットワークの境界で自動集約を行います。
RT-A はメジャーネットワーク 192.168.1.0 と 192.168.2.0 の境界になっており、
RT-B はメジャーネットワーク 192.168.2.0 と 192.168.3.0 の境界になっています。
この境界で自動集約を行います。
■ RT-A が RIPv1 アップデートを送信する時
RT-A は、RT-B にアップデートを送信する前に、次の項目をチェックします。
送信するサブネット情報がアップデートを送信するインターフェイスと同じメジャーネットワークの一部か?
→
NO。RT-Aは、サブネット情報を自動集約し、集約したネットワークを送信する。
→
YES。送信するサブネット情報は、アップデートを送信するインターフェイスと同じサブネットマスクか?
→
YES。RT-Aは、集約せずに送信する。
→
NO。RT-Aは、サブネット情報を破棄し、送信しない。
※ ここで書いているサブネット情報とは、サブネットマスクの情報ではなく、サブネット化されたネットワークの情報です。つまり、192.168.1.0/26 のこと。
では、実際のネットワークにあてはめてみます。
RT-A は、送信しようとしているサブネット情報 192.168.1.0/26 と 192.168.1.64/26 が、アップデートを送信するインターフェイス S0/0/0 のネットワーク 192.168.2.0/26 と同一のメジャーネットワークにあるかどうかを確認します。
192.168.1.0/26 と 192.168.1.64/26 のメジャーネットワークは 192.168.1.0 であり、192.168.2.0/26 のメジャーネットワークは 192.168.2.0 ですので、両者は同一ではありません。そのため、192.168.1.0/26 と 192.168.1.64/26 を自動集約し、192.168.1.0/24 のネットワーク情報を RT-B に送信しますが、RIPv1 ではサブネットマスクを送らないので、192.168.1.0 のネットワークを送信します。
■ RT-B が RIPv1 アップデートを受信する時
RT-B がアップデートを受信した時に、次の項目をチェックします。
受信したルート情報はアップデートを受信したインターフェイスと同じメジャーネットワークの一部か?
→
YES。RT-B は、このルート情報に受信したインターフェイスと同じサブネットマスクを適用する。
→
NO。RT-B に、受信したルート情報と同じメジャーネットワークのサブネットがあるか?
→
NO。受信したルート情報にクラスフルなサブネットマスクを適用する。
→
YES。受信したルート情報を破棄する。
では、実際のネットワークにあてはめてみます。
RT-A から受信したルート情報 192.168.1.0 は、アップデートを受信したインターフェイスのメジャーネットワーク 192.168.2.0 ではなく、また、RT-B の他のインターフェイスのメジャーネットワーク 192.168.3.0 とも異なるので、受信したルート情報 192.168.1.0 にクラスフルなサブネットマスク /24 を適用します。
では、メジャーネットワークの境界での自動集約を確認しましょう。
今回から「基本操作ラボ」で学習したループバックインターフェイス (Lo) を使用します。ループバックインターフェイスはルータ内部に作られる仮想的なインターフェイスで、インターフェイスに PC 等、物理的なものを接続することはできませんが、(管理者がshutdownを行わない限り) インターフェイスは常に UP しており、インターフェイス宛てのパケットもルータ内部で処理されます。
ループバックインターフェイスは、今回のような実験的なラボで、F0/0 や F0/1 などの物理インターフェイスが足りない時に使用できる非常に便利なインターフェイスで、使いきれないほど大量 (0~2,147,483,647) に作ることができます。
Router(config)# int lo ?
<0-0> LongReachEthernet interface number
<0-2147483647> Loopback interface number
次のネットワーク構成図では、ループバックインターフェイス (Lo) がルータの外部に出ているように見えますが、実際には内部インターフェイスで外部には出ていません。
- RT-A、RT-B をネットワーク構成図に示す通り設定し、合わせて必要な RIP の設定も行いなさい。
< RT-A >
Router# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# host RT-A
RT-A(config)# int loopback 0
RT-A(config-if)# ip add 192.168.1.1 255.255.255.192
RT-A(config-if)# int loopback 1
RT-A(config-if)# ip add 192.168.1.65 255.255.255.192
RT-A(config-if)# int f0/1
RT-A(config-if)# ip add 192.168.2.1 255.255.255.192
RT-A(config-if)# no shut
RT-A(config-if)# exit
RT-A(config)# router rip
RT-A(config-router)# net 192.168.1.0
RT-A(config-router)# net 192.168.2.0
RT-A(config-router)# ^Z
RT-A#
< RT-B >
Router# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# host RT-B
RT-B(config)# int lo0
RT-B(config-if)# ip add 192.168.3.1 255.255.255.192
RT-B(config-if)# int lo1
RT-B(config-if)# ip add 192.168.3.65 255.255.255.192
RT-B(config-if)# int f0/0
RT-B(config-if)# ip add 192.168.2.2 255.255.255.192
RT-B(config-if)# no shut
RT-B(config-if)# exit
RT-B(config)# router rip
RT-B(config-router)# net 192.168.2.0
RT-B(config-router)# net 192.168.3.0
RT-B(config-router)# ^Z
RT-B#
ループバックインターフェイスは、no shut を行う必要はありません。
- RT-A、RT-B のルーティングテーブルで RIP ルートのみを表示させなさい。
< RT-A >
RT-A# sh ip route rip | begin Gateway
Gateway of last resort is not set
R 192.168.3.0/24 [120/1] via 192.168.2.2, 00:00:23, FastEthernet0/1
RT-A#
< RT-B >
RT-B# sh ip route rip | begin Gateway
Gateway of last resort is not set
R 192.168.1.0/24 [120/1] via 192.168.2.1, 00:00:24, FastEthernet0/0
RT-B#
RT-A が本来 RIP で学習すべきルートは以下の
192.168.3.0/26
192.168.3.64/26
であるはずです。
しかし RT-A のルーティングテーブルを見ると、実際には以下の1つのルートになっています。
R 192.168.3.0/24 [120/1] via 192.168.2.2, 00:00:23, FastEthernet0/1
これは RIP が自動集約を行っているためです。
RT-B も同様に本来 RIP で学習すべきルートは以下の
192.168.1.0/26
192.168.1.64/26
であるはずです。
しかし RT-B のルーティングテーブルを見ると、実際には以下の1つのルートになっています。
R 192.168.1.0/24 [120/1] via 192.168.2.1, 00:00:24, FastEthernet0/0
これでは End-to-End の通信はできないのではないか?
正確なルート情報がルーティングテーブルにないので、通信できないと思われる方もいるかもしれませんが、実際には通信可能です。
RT-A は、192.168.3.0/26 宛てのパケットも、192.168.3.64/26 宛てのパケットも RT-B に送れればいいわけです。
RT-B に送りさえすれば、RT-B が各ネットワークに届けてくれます (RT-B に直接接続しているネットワークなので) 。
そして、これは
R 192.168.3.0/24 [120/1] via 192.168.2.2, 00:00:23, FastEthernet0/1
さえあれば、十分です。192.168.3.0/26 宛てのパケットも、192.168.3.64/26 宛てのパケットも、192.168.3.0/24 の中に含まれていますので、これらのパケットは RT-B に送られます。
RT-B から RT-A 向けのパケットも同様です。
ではこれで全く問題ないのか?
いいえ、そういうわけではありません。
今回使ったネットワークでは、通信できるというだけです。
以下の2つをもう一度振り返ってみてください。
■ RT-A が RIP アップデートを送信する時
■ RT-B が RIP アップデートを受信する時
ルート情報を破棄する場合がありましたね?
これに該当するネットワーク (VLSM や不連続ネットワーク) の場合、通信できなくなります。