【OSPF】ルータ間でMTU値が違うとネイバー関係になれない

 ルータ間でMTU値が異なるとOSPFのネイバーが張れません。 MTU値が同じ場合と違う場合の動作についてまとめます。

スポンサーリンク

ネイバー確立時のMTU値の通知

 ネイバー確立で、Helloパケットを交換し、2Wayへ推移後、DD(LSAの要約)を送信する時に、自身のMTU値をネイバーに伝えます。この値がルータ間で異なると隣接関係になれません。

スポンサーリンク

MTU値が違う場合

 R3のMTU値を1400に変更し、R2とMTUが不一致になるようにします。R2側でdebug ip ospf adjを実行し、MTU値が異なる場合の挙動を確認します。

R2#debug ip ospf adj

 R3のMTU値を変更し、一旦、隣接関係を切断します。

R3(config)#int fa0/0.23
R3(config-subif)#ip mtu ?
  <68-1500>  MTU (bytes)

R3(config-subif)#ip mtu 1400
R3(config-subif)#shutdown
R3(config-subif)#no shutdown

 R3のMTU値変更後のR2のdebug ip ospf adjの出力です。

R2#
*Jun 16 12:37:31.111: OSPF-1 ADJ   Fa0/0.23: Rcv DBD from 
3.3.3.3 seq 0x2277 opt 0x52 flag 0x7 len 32  mtu 1400 state EXCHANGE
*Jun 16 12:37:31.111: OSPF-1 ADJ   Fa0/0.23: Nbr 3.3.3.3 has smaller interface MTU
*Jun 16 12:37:31.111: OSPF-1 ADJ   Fa0/0.23: Send DBD to 3.3.3.3 seq 0x2277 opt 0x52 flag 0x2 len 92

 R3のMTU値(1400)が自身のMTU値(1500)より小さく、隣接関係が張れません。

 R2とR3のネイバーの状態を確認します。

R2#show ip ospf neighbor 

Neighbor ID     Pri   State           Dead Time   Address         Interface
3.3.3.3           1   EXCHANGE/BDR    00:00:37    192.168.23.3    FastEthernet0/0.23
R3#show ip ospf neighbor 

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           1   EXSTART/DR      00:00:37    192.168.23.2    FastEthernet0/0.23

 上記の通り、Full状態にはなりません。しばらくすると、以下のログが出力され、ネイバーがダウンします。

R3#
*Jun 16 12:39:15.251: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on FastEthernet0/0.23 
from EXSTART to DOWN, Neighbor Down: Too many retransmissions

 では、R3のMTU値を元に戻します

R3(config)#int fastEthernet 0/0.23
R3(config-subif)#no ip mtu

 これでMTU値がルータ間で一致しました。しばらくすると、 Ignore timer expiredにより、再度、ルータは、ネイバー確立を試みます。

*Jun 16 12:40:15.251: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on FastEthernet0/0.23 
from DOWN to DOWN, Neighbor Down: Ignore timer expired
*Jun 16 12:40:19.955: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on FastEthernet0/0.23 
from LOADING to FULL, Loading Done
スポンサーリンク

MTU値をチェックしない設定(mtu-ignore)

 隣接関係の確立条件のMTU値の一致をip ospf mtu-ignoreにより除外することができます。

R2(config)#int fa0/0.23
R2(config-subif)#ip ospf mtu-ignore
R3(config)#int fa0/0.23
R3(config-subif)#ip ospf mtu-ignore

 R2側でdebug ip ospf adjを実行し、MTU値を無視した際の挙動を確認します。

R2#debug ip ospf adj 
OSPF adjacency debugging is on

 R3のMTU値を変更し、一旦、隣接関係を切断し、再度ネイバー接続を試みます。

R3(config)#int fa0/0.23
R3(config-subif)#ip mtu 1400
R3(config-subif)#shutdown

*Jun 16 12:49:11.175: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on FastEthernet0/0.23 
from FULL to DOWN, Neighbor Down: Interface down or detached

R3(config-subif)#no shutdown

*Jun 16 12:50:02.963: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on FastEthernet0/0.23 
from LOADING to FULL, Loading Done

 R3のコンソールログで、R2と隣接関係になれていることが確認できます。

 R2のdebug ip ospf adjの出力です。

R2#
*Jun 16 12:50:03.519: OSPF-1 ADJ   Fa0/0.23: Rcv DBD from 3.3.3.3 seq 0xA09 opt 0x52 flag 
0x1 len 72  mtu 1400 state EXCHANGE
*Jun 16 12:50:03.519: OSPF-1 ADJ   Fa0/0.23: Exchange Done with 3.3.3.3
*Jun 16 12:50:03.523: OSPF-1 ADJ   Fa0/0.23: Send LS REQ to 3.3.3.3 length 36 LSA count 1
*Jun 16 12:50:03.523: OSPF-1 ADJ   Fa0/0.23: Send DBD to 3.3.3.3 seq 0xA09 opt 0x52 flag 0x0 len 32
*Jun 16 12:50:03.539: OSPF-1 ADJ   Fa0/0.23: Rcv LS UPD from 3.3.3.3 length 76 LSA count 1
*Jun 16 12:50:03.543: OSPF-1 ADJ   Fa0/0.23: Synchronized with 3.3.3.3, state FULL
*Jun 16 12:50:03.543: %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on FastEthernet0/0.23 
from LOADING to FULL, Loading Done

 対向ルータのMTUは1400と認識していますが、Exchangeステートが完了し、Full状態に遷移していることがわかります。

コメント