クラスフルルーティングと異なるサブネット(続)
この異なるサブネットの場合のルーティングアップデートの取り扱いって、Cisco TACに情報が出ていたのを教えてもらった。
・Cisco TAC アップデート送受信時の RIP および IGRP の動作
これがまた微妙にわかりづらい表現だったりするので。
ちょっとまとめてみると。
1.送信時
- アップデートを送信するインタフェースと、違うクラスフルネットワークの場合
- クラスフルネットワークのアップデートを送信
- 同じクラスフルネットワークでサブネット化されている場合
つまり、インタフェースを4つもつルータを例にとってみる。
RouterA (config)#interface fa0/0 (config-if)#ip address 10.1.1.1 255.255.255.0 (config)#interface fa0/1 (config-if)#ip address 20.1.1.1 255.255.255.0 (config)#interface fa0/2 (config-if)#ip address 20.1.2.1 255.255.255.0 (config)#interface fa0/3 (config-if)#ip address 20.1.3.1 255.255.255.128 (config)#router rip (config-router)#network 10.0.0.0 (config-router)#network 20.0.0.0
- fa0/0でアップデートを送信する
- 20.0.0.0 … 前述1.1項が適用
- fa0/1でアップデートを送信する
- 10.0.0.0 … 1.1項が適用
- 20.1.2.0 … 2.2項が適用
ここで、20.1.3.0はfa0/1と異なる255.255.255.128だから、2.1項が適用されアップデートは送信されない、ってことになる、と。
2.受信時
- アップデートを受信したインタフェースと、違うクラスフルネットワークのアップデートの場合
- すでにそのクラスフルネットワークの情報を、ルータのほかのインタフェースから入手している
- アップッデートを無視
- すでにそのクラスフルネットワークの情報を、ルータのほかのインタフェースから入手していない
- クラスフルネットワークとしてテーブルに載せる
- すでにそのクラスフルネットワークの情報を、ルータのほかのインタフェースから入手している
- アップデートを受信したインタフェースと、同じクラスフルネットワークのアップデートの場合
さきほどの4つのインタフェースを持つルータ(routerA)のfa0/1とfa0/1で繋がっているルータ(RouterB)を考えてみる。
RouterB 設定1 (config)#interface fa0/0 (config-if)#ip address 10.10.10.1 255.255.255.0 (config)#interface fa0/1 (config-if)#ip address 20.1.1.2 255.255.255.0
RouterAのfa0/1は10.0.0.0と20.1.2.0のアップデートを送信してくる。
- 10.0.0.0
- 前述1.1.1項により、無視
- 20.1.2.0
- 前述2.1.1項により、20.1.2.0/24としてテーブルに載せる
10.0.0.0は自身のfa0/0が10.0.0.0であるため、すでに情報があるから無視。いわゆる「不連続サブネット問題」のこと。
20.1.2.0は普通に受信する、と。
では、RouterAのfa0/1とRouterBのfa0/1のサブネットが違ったら?
RouterB 設定2 (config)#interface fa0/0 (config-if)#ip address 10.10.10.1 255.255.255.0 (config)#interface fa0/1 (config-if)#ip address 20.1.1.2 255.255.0.0
RouterAのfa0/1は10.0.0.0と20.1.2.0のアップデートを送信してくる。
- 10.0.0.0
- 前述1.1.1項により、無視
- 20.1.2.0
- 前述2.2.1項により、20.1.2.0/32のホストへのルートとしてテーブルに載せる
20.1.2.0/16はネットワークアドレスではなく、ホストアドレスだから、/32が自動的に適用、となるわけだね。
う〜ん、クラスフルルーティングって面倒くさいなぁ。
これにさらに、ルーティングループ防止のスプリットホライズンとか、ポイズンリバースとか考えるわけだし。
クラスレスの方が簡単だよなぁ。