ラボでも実機でも定番のトラブル、「OSPFネイバーが FULL にならない」。状態ごとに原因が違うので、切り分けを整理しました。
まず状態を見る
show ip ospf neighbor
隣接は Down → Init → 2-Way → ExStart → Exchange → Loading → Full と進みます。どの状態で止まっているかが最大のヒントです。
Init / 2-Way で止まる
片方向しかHelloが届いていない可能性大。
- Helloパケットの送受信(ACLでブロックしていないか)
- Hello/Deadインターバルの不一致(両側で一致必須)
- エリア番号・認証設定の不一致
- サブネットマスクの不一致
を確認します。2-Way はマルチアクセスで DR/BDR 以外同士なら正常なこともあるので、そこは切り分けが要ります。
ExStart / Exchange で止まる(超定番)
ここで止まる原因の代表格が MTU不一致です。OSPFはDBD交換時にMTUを確認し、食い違うと先へ進めません。両側インターフェースのMTUを揃えるのが基本の対処です。
show interface Gig0/1 | include MTU
どうしても揃えられない場合の回避策として、MTUチェックを無視する設定もあります。
interface Gig0/1
ip ospf mtu-ignore
ただし本来はMTUを揃えるのが正道で、mtu-ignore は応急処置と考えています。
その他の定番
- RouterIDの重複 … 別ルーターが同じRouter-IDを持つと隣接が不安定に。
show ip ospfで確認。 - ネットワークタイプの不一致 … broadcast と point-to-point の食い違い。
- タイマー不一致 … Hello/Dead が合っていない。
切り分けの型
「状態を見る → Init系はHello到達性/タイマー/エリア、ExStart系はMTU/RouterID」という型を持っておくと、闇雲に触らずに済みます。実機トラブルはこの型どおりに潰していけば、たいてい原因にたどり着けました。