【OSPF】DMVPN上でOSPFを有効後、大量にエラーが出る

DMVPN フェーズ1のトンネルで OSPF を有効にしたら、ハブでネイバーのダウンのログが大量に出て、隣接関係ができない。この記事では、この現象の原因がトンネルインターフェースの OSPF ネットワークタイプにあることを確かめ、DMVPN で使えるネットワークタイプを整理します。

この記事でわかること
  1. トンネルインターフェースの既定のネットワークタイプは point-to-point であること
  2. point-to-point で複数のスポークとネイバーになろうとすると隣接関係がリセットを繰り返すこと
  3. DMVPN で使う OSPF のネットワークタイプの違い

DMVPN フェーズ1の構成

ハブの R2 と、スポークの R5・R6 は、中継ルータ R3 を通るアンダーレイのネットワーク(169.254.x.0/24)でつながっています。その上に、DMVPN のトンネルでオーバーレイのネットワーク 192.168.0.0/24 を作ります。アンダーレイとオーバーレイの設定は 【DMVPN】フェーズ1をわかりやすく解説 を参照してください。

オーバーレイ(Tunnel 192.168.0.0/24) .2.5.6 アンダーレイ R2(Hub)R3 R5R6 169.254.23.0/24 169.254.35.0/24 169.254.36.0/24
図1 DMVPN フェーズ1の構成(アンダーレイの上にトンネルのオーバーレイを作る)

DMVPN フェーズ1上の OSPF の構成

アンダーレイは省き、オーバーレイのネットワークだけに注目します。トンネル(192.168.0.0/24)と各ルータのループバックをエリア0にして、ループバックのアドレスを広告します。

OSPF Area 0DMVPNTunnel 192.168.0.0/24R2(Hub)Lo0 2.2.2.2/32R5Spoke1Lo0 5.5.5.5/32R6Spoke2Lo0 6.6.6.6/32.2.5.6point-to-point(既定)point-to-point(既定)point-to-point(既定)
図2 OSPF の構成(トンネルのネットワークタイプは既定のまま)

トンネルとループバックで OSPF を有効にする

R2(ハブ)

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

R5(スポーク)

R5(config)#router ospf 1
R5(config-router)#network 5.5.5.5 0.0.0.0 area 0
R5(config-router)#network 192.168.0.0 0.0.0.255 area 0

R6(スポーク)

R6(config)#router ospf 1
R6(config-router)#network 6.6.6.6 0.0.0.0 area 0
R6(config-router)#network 192.168.0.0 0.0.0.255 area 0

ハブに出るログを確認する

設定すると、ハブの R2 で次のログが大量に出て、R5・R6 との隣接関係ができません。

%OSPF-5-ADJCHG: Process 1, Nbr 5.5.5.5 on Tunnel0 from EXCHANGE to DOWN, 
Neighbor Down: Adjacency forced to reset
%OSPF-5-ADJCHG: Process 1, Nbr 6.6.6.6 on Tunnel0 from EXCHANGE to DOWN, 
Neighbor Down: Adjacency forced to reset
%OSPF-5-ADJCHG: Process 1, Nbr 5.5.5.5 on Tunnel0 from EXCHANGE to DOWN, 
Neighbor Down: Adjacency forced to reset
%OSPF-5-ADJCHG: Process 1, Nbr 6.6.6.6 on Tunnel0 from EXCHANGE to DOWN, 
Neighbor Down: Adjacency forced to reset
%OSPF-5-ADJCHG: Process 1, Nbr 5.5.5.5 on Tunnel0 from EXCHANGE to DOWN, 
Neighbor Down: Adjacency forced to reset
%OSPF-5-ADJCHG: Process 1, Nbr 6.6.6.6 on Tunnel0 from EXCHANGE to DOWN, 
Neighbor Down: Adjacency forced to reset
%OSPF-5-ADJCHG: Process 1, Nbr 5.5.5.5 on Tunnel0 from EXCHANGE to DOWN, 
Neighbor Down: Adjacency forced to reset
表示意味
from EXCHANGE to DOWNLSDB の情報を交換している途中(EXCHANGE)で、ネイバーが DOWN に戻った
Adjacency forced to reset隣接関係が強制的にリセットされた。R5 と R6 で交互に起きている

ネットワークタイプを確認する

原因は OSPF のネットワークタイプです。R2 のトンネルインターフェースを確認すると、ネットワークタイプは POINT_TO_POINT です。トンネルインターフェースでは、OSPF のネットワークタイプは既定で point-to-point になります。

R2# show ip ospf interface  tunnel 0
Tunnel0 is up, line protocol is up 
  Internet Address 192.168.0.2/24, Area 0, Attached via Network Statement
  Process ID 1, Router ID 2.2.2.2, Network Type POINT_TO_POINT, Cost: 1000
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           1000      no          no            Base

point-to-point は、相手が1台だけのリンクのためのネットワークタイプで、ネイバーは1台しか持てません。ハブの R2 は、R5 と R6 の2台とネイバーになろうとします。片方と隣接関係を作り始めると、もう片方の Hello で隣接関係がリセットされ、これを繰り返します。

R2 の Tunnel0 point-to-point ネイバーは1台だけ R5R6 HelloHello 相手が入れ替わるたびに Adjacency forced to reset(EXCHANGE → DOWN)
図3 point-to-point のトンネルに2台のスポークがつながると、隣接関係のリセットを繰り返す

DMVPN で使うネットワークタイプ

DMVPN で複数のスポークをつなぐには、トンネルインターフェースで ip ospf network コマンドを使ってネットワークタイプを変えます。OSPF には次の5つのネットワークタイプがあります。

ネットワークタイプネイバーの検出DR・BDRHello/Dead
(既定)
DMVPN での使い方
broadcast自動選ぶ10/40 秒ハブを DR、スポークは優先度 0。フェーズ2でスポーク間を直接通信できる
non-broadcastneighbor で指定選ぶ30/120 秒broadcast と同じだが、ハブで neighbor を指定する
point-to-point自動選ばない10/40 秒ネイバーは1台だけ。ハブには使えない(この記事の現象)
point-to-multipoint自動選ばない30/120 秒設定が簡単。ネクストホップがハブになるので、フェーズ1向け
point-to-multipoint non-broadcastneighbor で指定選ばない30/120 秒point-to-multipoint と同じだが、ハブで neighbor を指定する

それぞれのネットワークタイプを DMVPN で動かした結果は、下の記事で確かめています。

まとめ

DMVPN のトンネルで OSPF を有効にしただけでは、ネットワークタイプは point-to-point のままで、ハブが複数のスポークと隣接関係を作れません。Adjacency forced to reset のログが繰り返し出たら、show ip ospf interface でネットワークタイプを確認し、DMVPN のフェーズに合ったネットワークタイプに変えます。

コメント