ネットワークエンジニアやってると、OSPFのネイバーが立たないトラブルは避けて通れません。show ip ospf neighbor を叩いてEXSTARTで止まってたり、そもそも何も出てこなかったり。この記事はCatalyst 9300とISR 4431の検証環境をベースに、原因トップ5と切り分け手順をまとめた要約版です。
OSPFネイバー確立の大原則
OSPFはかなり厳格なプロトコルで、以下が1つでも違うとネイバーが組めません。
| 項目 | 一致 | 不一致時 |
|---|---|---|
| エリア番号 | 必須 | Helloが落とされる |
| Hello/Dead | 必須 | Helloが無効と判断される |
| サブネットマスク | 必須 | Helloが落とされる |
| 認証タイプ/キー | 必須 | debugにmismatch警告 |
| MTU | 必須 | EXSTARTで停止 |
| スタブフラグ | 必須 | ネイバー不可 |
状態遷移は Down → Init → 2-Way → ExStart → Exchange → Loading → Full。どこで止まったかで原因がほぼ絞れる。
最初に叩く3コマンド
R1# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.1.2 1 EXSTART/DR 00:00:37 10.0.0.2 Gi0/0
R1# show ip ospf interface Gi0/0
Internet Address 10.0.0.1/24, Area 0, Attached via Network Statement
Network Type BROADCAST, Cost: 1
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
R1# debug ip ospf adj
*Apr 23 10:15:22: OSPF-1 ADJ Gi0/0: Nbr 192.168.1.2 has larger interface MTU
debugは本番で負荷かかるので作業後に undebug all を忘れずに。
ネイバー確立しない原因ベスト5
現場で遭遇した頻度で並べると、こんな順序です。
- MTU不一致 (約80%) — EXSTARTで止まる。両端のMTUを確認
- エリア番号ミス (約65%) — area 0と書いたつもりがarea 10
- Hello/Dead不一致 (約45%) — ネットワークタイプ違いで自動変更される
- 認証不一致 (約40%) — MD5キーが1文字でも違うとNG
- ネットワークタイプ不一致 (約25%) — BROADCAST vs POINT-TO-POINT
MTU絡みが圧倒的に多いです。L3スイッチ同士のトランクや、IPsec VPN越しのOSPFで特に頻発します。
切り分け5ステップと修正コマンド
Step 1: L1/L2疎通確認
ping・show interfaceで物理層から確認。
Step 2: エリア番号・networkコマンド照合
R2(config)# router ospf 1
R2(config-router)# no network 10.0.0.0 0.0.0.255 area 10
R2(config-router)# network 10.0.0.0 0.0.0.255 area 0
R2# clear ip ospf process
Step 3: Hello/Deadタイマー調整
R1(config-if)# ip ospf hello-interval 10
R1(config-if)# ip ospf dead-interval 40
Step 4: MTU不一致の応急処置
ExStartで止まっていたら、ほぼMTU。相手機器に手を出せないときは ip ospf mtu-ignore で逃げる。
R1(config-if)# ip ospf mtu-ignore
ただしこれは応急処置。根本対応は物理MTUを揃えること。
Step 5: 認証設定
R1(config-if)# ip ospf message-digest-key 1 md5 MySecret123
R1(config-if)# ip ospf authentication message-digest
現場での実体験
データセンター間のOSPFが深夜に突然切れて呼び出された事例。調べるとISP側のキャリア機器がジャンボフレームからMTU 1500に戻されてた。こっち側は9216のまま。EXSTARTで固まってたので、応急で ip ospf mtu-ignore を入れて復旧、翌朝キャリアに問合せ。キャリアのファーム更新でMTUが初期値に戻る事故、年に1〜2件は聞きます。
盲点になりやすいレアケース
-
passive-interface 忘れ: default指定後の
no passive-interfaceを書き忘れてHelloが出ない - ACLでマルチキャストをブロック: 224.0.0.5/224.0.0.6 を暗黙deny anyで落とす
- IP unnumberedでのLoopback重複: 最悪ルーター全体が落ちる
詳しくはブログで
この記事の完全版(比較テーブル・プログレスバー・現場エピソード詳細・FAQ全編)はブログで公開しています。構成図・コマンド出力例・エラーメッセージ対応表も含めて読みたい方はこちらから。