ルート再配布は場合によっては非効率的なルーティングや
ルーティングループを招きます。
今回は、distribute-listを用い、ルート再配布を最適化していきます。
ちなみにルート再配布ですが、日本語だと再配布と再配送が混在しているようです。
Ciscoのドキュメントにも両方あります。
Googleですと、再配布のほうが若干検索結果が多いようです。
ネットワーク構成は下図のようになります。
R2 | R3 |
---|---|
R2(config)#router ospf 1 R2(config-router)#network 172.16.0.0 0.0.255.255 area 0 R2(config-router)#redistribute rip R2(config-router)#exit R2(config)#router rip R2(config-router)#network 192.168.1.0 R2(config-router)#redistribute ospf 1 metric 1 |
R3(config)#router ospf 1 R3(config-router)#network 172.17.0.0 0.0.255.255 area 0 R3(config-router)#redistribute rip R3(config-router)#exit R3(config)#router rip R3(config-router)#network 192.168.2.0 R3(config-router)#redistribute ospf 1 metric 1 |
なぜかR1からR5へのpingが通りません。おかしいと思いR1の
ルーティングテーブルを見ると、R5へのルーティングテーブル
がありません。ただし、192.168.1.0と192.168.2.0はきちんと
再配送されているようでした。
再配送をしているR2のルーティングテーブルを見ても、R5への
ルーティングテーブルがありません。
あれ、再配送ってもしかして直接接続してるネットワークしか
ルーティングしてくれないのか?(そんなことはありません。)
R4のルーティングテーブルを見てみる。
192.168.3.0は直接接続ネットワークとして学習している。
R4でRIPの範囲に192.168.3.0が入っていないのだろうか。
いやちゃんと入ってました。
うーんいったい原因はなんなんだ?
もう一度R4でshow ip routeする。
あってるよなー、ん?192.68.3.0ってなんだ!?
なんとR4のインタフェースfに192.168.3.1と設定すべきところを、192.68.3.1と間違って設定していました。凡ミス。。。
設定を直すと無事R1からR5へpingが繋がるようになりました。
さて、ここからが本題です。
R2から192.168.2.0へ行く場合、回線速度やルータがすべて同性能であるならば、経由するルータの数が最も少ないR4を経由するのが最短です。
しかし今回R2のルーティングテーブルは以下のようになっています。
R4経由ではなく、R1を経由して192.168.2.0へルーティングしています。
これは、RIPへOSPFを再配送しているために起こる問題です。
複数のプロトコルから同じネットワークを学んだ場合、
どちらをルーティングテーブルに載せるかはアドミニストレーティブディスタンス値
により決定されます。
アドミニストレーティブディスタンス値が小さいほうが優先されてルーティングテーブルに載るわけです。
今回の場合、アドミニストレーティブディスタンス値は
RIPで学習した経路・・・120
OSPFからの再配送の経路・・・20
OSPF・・・110
となっております。
ですから、OPFからの再配送経路が最優先でルーティングテーブルに
載せられるわけです。
今回のような意図しないルーティング情報を受け取らないようにするには、
前回も学習しましたが、distribute-listを用います。
今回の場合、R2のfa0/0にdistribute-listを設定し、192.168.0.0 - 192.168.255.255
の範囲からのルーティング情報を受け取らなくしてみます。
R2 |
---|
R2(config)#access-list 1 deny 192.168.0.0 0.0.255.255 R2(config)#access-list 1 permit any R2(config)#router ospf 1 R2(config-router)#distribute-list 1 in fa 0/0 |
このようにR4経由のルーティングになりました!
今回は以上です。