
OSPFが思い通りに動かない原因3選
OSPFは「とりあえず疎通」までは行けても、運用・増設・更改のタイミングで一気に事故りやすいプロトコルです。特にハマりどころは、だいたい次の3つに収束します。
コスト設計:速い回線を入れたのに経路が変わらない/意図した経路制御にならない
デフォルトルート伝播:境界ルータのつもりがデフォルトが流れない/突然消える
MTU不一致:物理はUPなのにOSPFネイバーがFULLにならずEXSTART/EXCHANGEで止まる
本記事では、OSPFが思い通りに動かない事象を、現場で再発しない理解に落とし込みます。
1. OSPFコスト変更:3つの方法と“優先順位の罠”

OSPFコストは「設定箇所が複数ある」こと自体が罠です。変更方法自体が3つあります。
1-1. 最優先:インターフェイスで直接コストを指定(ip ospf cost)
最も一般的で、最も強い方法です。
(config-if)# ip ospf cost <コスト値>この設定が入っていると、後述する計算式調整よりも常に優先されます。つまり、意図せずどこかのIFにこれが残っていると「reference-bandwidthを変えたのに効かない」現象が起こり得ます。
1-2. 次点:reference-bandwidth(計算式の分子)を変える
コスト計算式は次の通りです。
コスト = 分子(10^8) ÷ 帯域幅(bps)(分子デフォルトは10^8=100Mbps相当)
分子側を変えるのがこのコマンドです。
(config-router)# auto-cost reference-bandwidth <帯域幅>重要なのは、「ネットワーク内の全ルータで同一設定」が前提なこと。揃えないと、同じリンクを見ても装置ごとにコスト解釈がズレて、経路が不安定になります。
1-3. さらに下:bandwidth(計算式の分母)を変える
(config-if)# bandwidth <帯域幅>これは“OSPFのコスト計算に使う帯域値”を変更する手段で「インターフェイスの実際の転送速度は変わらない」です。回線速度を変えるコマンドではありません。
1-4. 優先順位まとめ(ここだけは暗記でOK)
結論はこれです。
ip ospf cost(直接設定) > auto-cost reference-bandwidth(分子) > bandwidth(分母)
2. 「ギガビット時代なのにコストが全部1」問題:なぜ起きるか
デフォルト設定だと FastEthernet以上の帯域でコストが全部1になって区別できない点が注意点です。
これ、現場では次のような事故に直結します。
1G/10Gを増強したのに経路が変わらない
冗長経路の設計意図(主系/従系)がOSPFで表現しにくい
「速い方へ寄せたかったのに、結局ECMPっぽく振れる」など、説明困難な挙動に見える
対策の方向性は、reference-bandwidth(分子)を環境に合わせて設計し直すことです(そして全ルータで統一)。
3. デフォルトルート伝播:default-information originate の“2つの挙動”

OSPF配下へデフォルトを配る代表コマンドがこれです。
(config-router)# default-information originate [always] [metric <値>] [metric-type <タイプ>]3-1. alwaysなし:自分のRIBにデフォルトがある時だけ流す
自ルータのルーティングテーブルに 0.0.0.0/0 が存在する場合のみ広告
条件が満たされないと「設定したのに流れない」が起きる
3-2. alwaysあり:自分のRIBにデフォルトがなくても流す
default-information originate always使い方を誤ると「出口ではないのに出口っぽく振る舞う」危険もあるため、設計思想(どの装置が出口か)とセットで使うのが実務的です。
3-3. 確認ポイント:O*E2で見える
伝播されたデフォルトルートが 外部ルート(Type2)の O*E2 として表示される例が示されています。確認観点として押さえておくとトラシューが早いです。
4. MTU不一致:EXSTART/EXCHANGEで止まる“定番のやつ”

OSPFはネイバー確立の過程で DBD(Database Description)パケット交換時にMTUを検証します。「MTUが一致しないと隣接が確立できない」こと、そして典型症状を挙げています。
4-1. 症状
ネイバー状態が EXSTART / EXCHANGE から進まない
DOWNと行ったり来たりする
show ip ospf neighbor で状態確認
debugにMTU不一致が出る
4-2. 解決策(推奨):MTUを合わせる
(config-if)# mtu <サイズ>可能な限りMTUを一致させることが推奨です。
4-3. 暫定回避:ip ospf mtu-ignore
(config-if)# ip ospf mtu-ignoreこの設定は問題を隠すだけで根本解決ではありません。運用上どうしても暫定回避が必要な場面はありますが、設計上の宿題として必ず回収する前提が安全です。
まとめ:OSPFは“設計の整合性”と“例外処理”で壊れる

コストは3系統ある。優先順位を知らないと意図と逆に動く
reference-bandwidthは全ルータ統一が前提
default-information originate は always有無で挙動が別物
MTU不一致は EXSTART/EXCHANGE がサイン。基本はMTU一致が正道
FAQ(Q&A形式:検索流入を拾う想定)
Q1. OSPFコストは何で決まる?
A. コストは コスト = 分子(10^8) ÷ 帯域幅(bps) の計算式で求められます。分子は auto-cost reference-bandwidth、帯域幅(分母)は bandwidth で調整できます。
Q2. ip ospf cost と bandwidth を両方設定したらどっちが優先?
A. 優先順位は ip ospf cost(直接設定)> reference-bandwidth(分子)> bandwidth(分母)です。したがって ip ospf cost が最優先です。
Q3. auto-cost reference-bandwidth は一部のルータだけ変えてもいい?
A. ットワーク内の全ルータで同一設定が必要です。装置ごとに基準が違うとコスト解釈が揃わず、経路設計が崩れます。
Q4. default-information originate を入れたのにデフォルトルートが流れないのはなぜ?
A. オプションなしの場合、自ルータのルーティングテーブルにデフォルトルートが存在する時だけ広告します。常に流したい場合は always を使います。
Q5. default-information originate always は何が違う?
A. always を付けると 自ルータにデフォルトルートがなくても強制的に広告します。
Q6. OSPFのデフォルトルートはルーティングテーブルでどう見える?
A. 伝播されたデフォルトルートが 外部ルート(Type2)として O*E2 表示されます。
Q7. OSPFネイバーがFULLにならずEXSTART/EXCHANGEで止まる原因は?
A. 代表例として MTU不一致あります。DBD交換時のMTUチェックにより隣接が確立できないケースです。
Q8. ip ospf mtu-ignore は使ってもいい?
A. ip ospf mtu-ignore はMTUチェックを無視して隣接を成立させる一方、根本解決ではなく問題を隠してしまいます。可能ならMTUを一致させるのが推奨です。
さいごに
ここまでの3テーマ(コスト設計/デフォルト伝播/MTU不一致)は、CCNP Enterpriseでも実務でも“差が付く理解ポイント”です。暗記ではなく、「設計の整合性」「例外時の挙動」を説明できると強いです。
もしあなたが、
CCNP Enterpriseを狙っていてルーティングに不安がある
OSPFを“設定できる”から“設計・運用できる”へ上げたい
e-learningでスキマ時間に積み上げたい
なら、まず無料で全体像を掴める導線を置いておきます。
CCNP enterprise認定合格講座のe-learning無料アカウントはこちらから
最後までお読みいただき、ありがとうございました。