【OSPF】Hello、Deadインターバルの設定

 OSPFでは、ネイバーを動的に発見するためにHelloパケットを送信します。ネイバー発見後、ネイバーが継続的に稼働しているかHelloパケットで監視します。

スポンサーリンク

デフォルト値の確認

R2(config)#router ospf 1
R2(config-router)#network 192.168.23.0 0.0.0.255 area 0
R2(config-router)#network 2.2.2.2 0.0.0.0 area 0

R3(config)#router ospf 1
R3(config-router)#network 192.168.23.0 0.0.0.255 area 0
R3(config-router)#network 3.3.3.3 0.0.0.0 area 0

 しばらくすると、隣接関係が結ばれます。

R2#
*Jun 16 09:55:15.227: %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on FastEthernet0/0.23 
from LOADING to FULL, Loading Done

 show ip ospf interface でHello/Deadインターバルを確認します。出力が多いため、Deadというキーワードを含む行のみ出力します。

R2#sh ip ospf interface | include Dead
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5

R3#sh ip ospf interface | include Dead
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5

 

 Helloインターバルが10秒、Deadインターバルが40秒であることが確認できます。これは、Ciscoのデフォルト値です。

 では、R3のインターフェースをシャットダウンし、R2で Dead インターバル通りに、R3のダウンを検知するか確認します。

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

*Jun 16 10:01:02.767: %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のOSPFがダウンしてから、約40秒後にR2で、Dead timer expiredを理由にネイバーがダウンしていることが確認できます。

R2#
*Jun 16 10:01:39.327: %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on FastEthernet0/0.23 
from FULL to DOWN, Neighbor Down: Dead timer expired
スポンサーリンク

値を変更

Helloインターバルのみ変更

 まず、R2のHelloインターバルを1秒に変更します。

R2(config)#int fa0/0.23
R2(config-subif)#ip ospf hello-interval ?
  <1-65535>  Seconds
R2(config-subif)#ip ospf hello-interval 1

 show ip ospf interface でHello/Deadインターバルを確認します。

R2#show ip ospf interface | include Dead
  Timer intervals configured, Hello 1, Dead 4, Wait 4, Retransmit 5

 Helloインターバルを変えると、自動的にDeadインターバルがHelloの4倍に変更されていることが確認できます。

Deadインターバルのみ変更

 まず、R2のDeadインターバルを20秒に変更します。

R2(config)#int fa0/0.23
R2(config-subif)#ip ospf dead-interval 20

 show ip ospf interface でHello/Deadインターバルを確認します。

R2#show ip ospf interface | include Dead
  Timer intervals configured, Hello 10, Dead 20, Wait 20, Retransmit 5

 Deadインターバルを変えても、Helloインターバルは変わらないことが確認できます。

スポンサーリンク

 値の短縮

 Deadインターバルがデフォルトでは40秒と比較的に長い時間です。このDeadインターバルを短くすることで、ネットワークの収束時間を短縮させることができます。

Helloインターバルの変更

 Helloインターバルを短縮することで、Deadインターバルも短縮されます。例えば、R2、R3ともにHelloインターバルを1秒に変更します。

R2(config)#int fa0/0.23
R2(config-subif)#ip ospf hello-interval 1

R3(config)#int fa0/0.23
R3(config-subif)#ip ospf hello-interval 1

 Hello、Deadインターバルを確認します。

R2#show ip ospf interface | include Dead
  Timer intervals configured, Hello 1, Dead 4, Wait 4, Retransmit 5
R3#sh ip ospf interface | include Dead
  Timer intervals configured, Hello 1, Dead 4, Wait 4, Retransmit 5

 では、R3のインターフェースをシャットダウンし、R2でDeadインターバル通りに、R3のダウンを検知するか確認します。

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


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

 約4秒後にR2側でネイバーダウンを検知します。

R2#
*Jun 16 12:16:55.347: %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on FastEthernet0/0.23 
from FULL to DOWN, Neighbor Down: Dead timer expired

FastHelloの設定

 ip ospf dead-interval コマンドで、1秒より短いインターバルでHelloパケットを送信し、Deadインターバルを1秒に設定します。hello-multiplier の値は、その 1 秒間に送信する hello パケット数です。

R2(config)#int fa0/0.23
R2(config-subif)#ip ospf dead-interval minimal hello-multiplier 3
R3(config)#int fa0/0.23
R3(config-subif)#ip ospf dead-interval minimal hello-multiplier 3

 show ip ospf interface でHello/Deadインターバルを確認します。

R2#show ip os interface | include Dead
  Timer intervals configured, Hello 333 msec, Dead 1, Wait 1, Retransmit 5
R3#show ip ospf interface | include Dead
  Timer intervals configured, Hello 333 msec, Dead 1, Wait 1, Retransmit 5

 Deadインターバルが1秒で、Helloは1秒間に3回送信する設定のため、インターバルは333msecとなります。では、R3のインターフェースをシャットダウンし、R2でDeadインターバル通りに、R3のダウンを検知するか確認します。

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

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

 約1秒後にR2側でネイバーダウンを検知します。

R2#
*Jun 16 12:22:04.651: %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on FastEthernet0/0.23
 from FULL to DOWN, Neighbor Down: Dead timer expired

 パケットキャプチャを取得すると、1秒間に3回程度の頻度でHelloパケットが送信されていることがわかります。

スポンサーリンク

Helloパラメータが不一致

 OSPF隣接関係になるには、ルータ間で、Hello・Deadインターバルが同じである必要があります。まず、デフォルト値で隣接関係が結ばれている状態で、R3のHelloインターバルをデフォルト値から変更してみます。

R2#show ip ospf interface | include Dead
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
R3#show ip ospf interface | include Dead
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5

 R2側でdebug ip ospf helloを実行し、Hello・Deadインターバルが異なる場合の挙動を確認します。

R2#debug ip ospf hello
OSPF hello debugging is on

 R3のHelloインターバルを15秒に変更します。

R3(config)#int fa0/0.23
R3(config-subif)#ip ospf hello-interval 15

 R3のHelloインターバルを変更後のR2のdebug ip ospf helloの出力です。

OSPF-1 HELLO Fa0/0.23: Rcv hello from 3.3.3.3 area 0 192.168.23.3
OSPF-1 HELLO Fa0/0.23: Mismatched hello parameters from 192.168.23.3
OSPF-1 HELLO Fa0/0.23: Dead R 60 C 40, Hello R 15 C 10 Mask R 255.255.255.0
 C 255.255.255.0
R2#
OSPF-1 HELLO Fa0/0.23: Send hello to 224.0.0.5 area 0 from 192.168.23.2
R2#
%OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on FastEthernet0/0.23 from FULL to DOWN,
 Neighbor Down: Dead timer expired
R2#

 Helloパラメータがルータ間で不一致となり、ネイバーがダウンしているのが確認できます。

コメント