OSPFエリア間で経路が通らない時の原因と解決手順【実務向け】

  • URLをコピーしました!

OSPF(Open Shortest Path First)は企業ネットワークで最も利用されるIGPですが、エリア間で経路が通らないという障害は現場で頻発します。

本記事では、OSPFのエリア間通信が失敗する原因と、実務でそのまま使える確認・解決手順を、コマンド例と出力例を交えてわかりやすく解説します。

目次

■ まず押さえるべき:OSPFエリア間通信の要点

  • OSPFはABR(Area Border Router)がエリア間の経路交換を担当する
  • エリア0(バックボーン)が基点。通常、すべてのエリアはArea 0と接続が必要
  • 非バックボーン同士(例:Area 10 ↔ Area 20)は直接通信しない

つまり、Area 0をまたぐ経路交換ができていない場合、エリア間ルーティングが失敗します。

■ 典型的な原因一覧

  • ① ABRの設定誤り(area番号間違い)
  • ② バックボーンエリア(0)に接続されていない
  • ③ SPFループを避けるための設計問題(Area 0 の分断)
  • ④ ネットワークタイプの不一致(P2P / Broadcast)
  • ⑤ Hello / Dead タイマの不一致
  • ⑥ OSPFフィルタリング(distribute-list / area filter-list)
  • ⑦ LSAが生成されていない(ASBR / ABRの欠落)

■ 手順① OSPFネイバーが正常か確認

show ip ospf neighbor

● 出力例


Neighbor ID     Pri   State           Dead Time   Address         Interface
192.0.2.2         1   FULL/DR         00:00:33    10.1.10.2       Gig0/0
192.0.2.3         1   FULL/BDR        00:00:33    10.1.20.2       Gig0/1

● 解釈ポイント

  • FULL であればネイバーは正常
  • 2WAYやEXSTARTで止まる → ネットワークタイプ不一致・MTU不一致
  • ネイバーがいない → Helloが届いていない(ACL/タイマ問題など)

■ 手順② ABRが正しくArea 0に属しているか確認

show ip ospf interface brief

● 出力例


Interface    PID   Area            Type      Cost  State Nbrs F/C
Gi0/0        1     0               BROADCAST    1  DR    1/1
Gi0/1        1     10              BROADCAST    1  BDR   1/1

チェックポイント

  • ABRにはArea 0 と 他エリア両方のインターフェースが必要
  • エリア番号を誤っているとArea間経路は絶対に通らない

よくあるミス例


interface Gig0/1
 ip ospf 1 area 1   ← 本来は area 0

■ 手順③ Area 0 が分断されていないか確認

OSPFはArea 0 が連続していないとエリア間通信が成立しない仕様です。 (Virtual Link の場合を除く)

show ip ospf

出力例(問題あり)


Backbone area is not contiguous. Please check ABR configuration.

● 対策

  • 物理的にArea 0 を接続し直す
  • どうしても接続できない場合は virtual-link を使用

virtual-link 設定例


router ospf 1
 area 10 virtual-link 192.0.2.1

■ 手順④ 経路(LSA)が生成されているか確認

LSA確認

show ip ospf database

出力例(問題あり)


LS age: 3600
Link State ID: 10.10.10.0
No matching LSA found in Area 0

原因例

  • ABRが正しくLSAを別エリアへ伝搬していない
  • stub / NSSA 設計を誤った

■ 手順⑤ OSPFフィルタリングを確認


show run | include distribute-list
show run | include filter-list

例:area filter-list による誤フィルタ


area 10 filter-list prefix DENY-ALL in

→ これによりArea 10 → Area 0 への経路が遮断される。

■ 手順⑥ タイマ不一致(Hello / Dead)を確認


show ip ospf interface Gig0/1

よくある問題

  • Hello:10 / Dead:40(デフォルト)
  • 反対側 Hello:5 / Dead:20(異なる → ネイバー確立不可)

修正例


interface Gig0/1
 ip ospf hello-interval 10
 ip ospf dead-interval 40

■ 手順⑦ デバッグでHelloやLSAが届いているか確認

最終的に、OSPFパケットのやりとりを確認します。

デバッグコマンド

debug ip ospf adj
debug ip ospf hello
debug ip ospf events

ログ例


OSPF: Mismatched hello parameters from 10.1.10.2

→ Helloタイマ不一致でネイバー不可

■ ケース別:よくある障害と解決パターン

● ケース①:Area番号を間違えていた

症状: ネイバーは成立するが、エリア間ルートが来ない。


interface Gig0/1
 ip ospf 1 area 1  ←誤り

解決: area 0 に修正すると即経路復活。

● ケース②:Area 0 分断問題

症状: Area 10 ↔ Area 20 が到達しない。

原因: ABR が両エリアとも Area 0 に接続していなかった。

解決: virtual-link で仮想的に Area 0 を接続 → 経路復旧

■ OSPFエリア間通信チェックリスト(保存版)

  1. ネイバーが FULL か
  2. ABRが Area 0 と各エリアに属しているか
  3. Area 0 が分断されていないか
  4. LSA が Area 0 に伝搬しているか
  5. stub / NSSA 設定を誤っていないか
  6. フィルタリングで経路を消していないか
  7. Hello / Dead / MTU が一致しているか
  8. デバッグでパケットが来ているか確認

■ まとめ

OSPFのエリア間経路が通らない原因の多くは、

  • ABRの設定誤り(Area番号の間違い)
  • Area 0 分断問題
  • LSAが伝搬していない設計・設定ミス
  • フィルタリングまたはタイマ不一致

この記事の手順どおりにチェックしていけば、 ほぼすべてのOSPFエリア間障害を確実に切り分け可能 です。

ぜひ現場トラブル対応のテンプレートとして活用してください。

目次