OSPF エリア間経路集約 おまけ MTU が異なる場合(ip ospf mtu-ignore)




条件
・R1とR2のLo0をarea12 に周知してください。
・area12の経路はR1,R2のLo0のアドレスのみarea0に広報してください。
 またこのルートは一つのルートとして広報してください。
・(おまけ)インターフェース間でMTUが異なる場合どうなるか。


まず下記設定からスタートです。

R1
interface Serial1/0
ip add 1.1.1.1 255.255.255.0
!
interface lo0
ip add 150.1.6.6 255.255.255.255
!
router ospf 1
net 1.1.1.0 0.0.0.255 area 12
net 150.1.6.6 0.0.0.0 area 12

R2
interface Serial1/0
ip add 1.1.1.2 255.255.255.0
!
interface S1/1
ip add 2.2.2.2 255.255.255.0
!
interface lo0
ip add 150.1.7.7 255.255.255.255
!
router ospf 1
 network 1.1.1.0 0.0.0.255 area 12
 network 2.2.2.0 0.0.0.255 area 0
 network 150.1.7.7 0.0.0.0 area 12

R3
interface s1/0
ip add 2.2.2.3 255.255.255.0
!
interface lo0
ip add 150.1.8.8 255.255.255.255
!
router ospf 1
network 2.2.2.0 0.0.0.255 area 0
network 150.1.8.8 0.0.0.0 area 0



上記の状態だとR3のルーティングテーブルは下記のように
R1,R2のLo0がどちらとも広報されています。

R3#sh ip route
Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
O IA    1.1.1.0 [110/128] via 2.2.2.2, 00:55:34, Serial1/1
     2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, Serial1/1
     150.1.0.0/32 is subnetted, 3 subnets
C       150.1.8.8 is directly connected, Loopback0
O IA    150.1.7.7 [110/65] via 2.2.2.2, 00:00:07, Serial1/1
O IA    150.1.6.6 [110/129] via 2.2.2.2, 00:00:07, Serial1/1


ここで、R1,R2のLo0を一つのアドレスに集約してR3に広報するため下記コマンドをR2に投入します。

R2
router ospf 1
area 12 range 150.1.6.0 255.255.254.0


R3#sh ip route
Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
O IA    1.1.1.0 [110/128] via 2.2.2.2, 00:58:33, Serial1/1
     2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, Serial1/1
     150.1.0.0/16 is variably subnetted, 2 subnets, 2 masks
O IA    150.1.6.0/23 [110/65] via 2.2.2.2, 00:00:04, Serial1/1
C       150.1.8.8/32 is directly connected, Loopback0


これで上記のように経路が一つのアドレス(150.1.6.0/23)に集約されて広報されるようになりました。
なぜ 150.1.6.6 と 150.1.7.7 が area 12 range 150.1.6.0 255.255.254.0 により
150.1.6.0/23 に集約されるかというと。


150.1.6.610010110.00000001.00000110.00000110
150.1.7.710010110.00000001.00000111.00000110
255.255.254.011111111.11111111.11111110.00000000
↑マスクの第3オクテット目を254とすることで、最後のビットが0,1 どちらも集約され、第4オクテット目も集約されるので、
第3オクテットが6,7で、第3オクテットは全部が集約されるのです。説明が下手すぎです。。

ちなみにこの集約コマンドですが、下記のオプションがあります。

R2(config-router)#area 12 range 150.1.6.0 255.255.254.0 ?
advertise Advertise this range (default)
cost User specified metric for this range
not-advertise DoNotAdvertise this range

advertise はデフォルトで、cost はそのまま集約経路にコストを設定する。
で、not-advertise はその集約経路をアドバタイズしないという設定です。。
これはなんのためにあるんだろ。。

と、
ここからはおまけ的存在なのですが、R1とR2のインターフェース間でMTUが異なった場合
にOSPFがどうなるかやってみます。

R2
interface s1/0
ip mtu 1498

と設定してみます。
そうすると下記のかんじで、INITとEXCHANGEをくりかえし、ネイバーをはれないことがわかります。

R1#sh ip ospf nei

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           0   EXCHANGE/  -    00:00:39    1.1.1.2         Serial1/0
R1#
R1#sh ip ospf nei

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           0   INIT/  -        00:00:30    1.1.1.2         Serial1/0
R1#
R1#sh ip ospf nei

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           0   EXCHANGE/  -    00:00:37    1.1.1.2         Serial1/0


あと、こんなメッセージもでました。

R2(config-if)#no
*Aug 16 00:15:27.319: %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on Serial1/0 from E
XSTART to DOWN, Neighbor Down: Too many retransmissions ip mtu 1498

OSPFでネイバーをはる場合は、お互いのインターフェースのMTUを一致させるように
しなければなりません。またなんらかの理由でMTUが異なってしまう場合は、下記のコマンドで
OSPFがMTUの値を無視する設定をすればネイバーをはることができます。

interface s1/0
ip ospf mtu-ignore

んーこれは片方に入れれば大丈夫みたいですが、下記サイトでは両方に入れるようにいっている
ので入れたほうがいいみたいですね。

参考
http://www.n-study.com/network/2010/06/ospf_3_ccie.html


更新日:2012年8月16日