
OSPFエリア番号不一致で経路交換できない『ネットワーク層の話⑤』
現場で「隣のルータとOSPFのネイバーが上がらない」「経路が一切学習されない」という相談を受けると、まず疑うのがエリア番号の不一致です。OSPFはインターフェース単位で所属エリアを決めるプロトコルなので、同じリンクの両端が同じエリアでなければ、Helloパケットは届いていても隣接関係(Adjacency)が成立しません。その結果、LSDBが共有されず、経路交換は起こりません。
よくある現象
show ip ospf neighbor(Cisco IOS)で相手が表示されない、またはDown/Initから進まない
ログに「area mismatch」や「Invalid Hello」相当のメッセージ
物理リンクやIP疎通(ping)は正常(L3レベルでつながっている)
典型的な原因
設計上はエリア0(バックボーン)のつもりが、片側だけarea 10などの設定
構成変更などでポートを差し替えたが、インターフェースのエリア設定を移し忘れ
片側だけ「ポイントツーポイント」、もう片側は「ブロードキャスト」などネットワークタイプの混在(副次的にネイバー不成立を招く)
確認コマンド(例:Cisco IOS)
ネイバー状態
show ip ospf neighbor該当IFのエリアとネットワークタイプ
show ip ospf interface GigabitEthernet0/0ルータ全体のOSPF設定概要
show ip protocols実コンフィグ
show running-config | section router ospf
show running-config interface GigabitEthernet0/0
(Juniperや他ベンダでも「OSPFインターフェースがどのエリアに属しているか」を確認できるコマンドで同様に点検します。)
図:片側だけエリアが違う例
[R1] Gi0/0 ---------------- Gi0/0 [R2]
(Area 0) (Area 10)
R1: router ospf 1
network 10.0.12.0 0.0.0.255 area 0
R2: router ospf 1
network 10.0.12.0 0.0.0.255 area 10 ← 不一致
同一サブネット上の同一リンクは同一エリアにするのが原則です。上図のままではHelloの整合性が取れず、隣接関係は上がりません。
対処手順(実作業の流れ)
現状の設計意図を確認
そのリンクはバックボーン(エリア0)なのか、境界ルータ(ABR)で分ける想定なのかを図面・設計書で確認。両端IFのエリア設定を突き合わせ
片側のshow ip ospf interfaceでArea 0、もう片側がArea 10などになっていないかチェック。エリア番号を合わせる
設計に合わせて正しいエリアへ修正。例(Cisco IOS)conf t interface GigabitEthernet0/0 ip ospf 1 area 0 end
ネイバー確立と経路学習を確認
show ip ospf neighborでFullを確認。show ip route ospfで経路が載るかを確認。
再発防止のポイント
「リンク=同一エリア」ルールを図面に明記(配線変更時の差し替え指示まで書く)構成図を基にOSPFエリアで色分けした図を作ると良い
変更手順書に**「対向IFのエリア確認」チェック項目**を追加
ルータを跨ぐ構成変更時は、作業前後でOSPF隣接とルート差分を記録(Before/Afterのshow結果を保管)
ABR(Area Border Router)で意図せずエリアを跨がないよう、境界位置を固定しておく
まとめ
OSPFのトラブルで「リンクは生きているのにネイバーが上がらない」ときは、まずエリア番号の不一致を疑いましょう。OSPFはインターフェース単位で厳密にエリアを見ます。両端を同じエリアに合わせる——それだけで、驚くほど多くの「経路が学習されない」問題が解消します。