OSPFの設定は、Cisco IOSならrouter ospf 1で起動し、router-idを決め、network 10.0.12.0 0.0.0.3 area 0のように動かすインターフェースを指定します。設定後はshow ip ospf neighborで相手がFULLになっているかを確かめます。
この記事でわかること
- OSPFを動かす最小の設定と、各コマンドの意味
- networkコマンドのワイルドカードマスクと、インターフェースで有効にする書き方
- router-idの決まり方と、passive-interface・コストの調整
- show ip ospf neighborの状態(FULL・2WAYなど)の読み方
- ネイバーが張れないときに一致を確かめる項目
一次情報: RFC 2328「OSPF Version 2」(参照)/Cisco「IP Routing: OSPF Configuration Guide」・「Troubleshoot OSPF Neighbor Problems」※2026年10月時点
OSPFの設計や複数エリアの扱いは、CCNPで深く問われる範囲です。CCNPを取った後の転職先と年収の比べ方は、別の記事にまとめました。
OSPFの設定とは?最小の構成で動かす
OSPFの設定とは、ルーター同士に経路を自動で教え合わせるために、どのインターフェースでOSPFを動かすかを決める作業です。OSPFはリンクステート型のルーティングプロトコルで、社内のネットワークで広く使われています。
最小の設定は、3つのコマンドでできます。下の構成で、R1とR2を/30の線でつなぐ例です。
| 機器 | インターフェース | アドレス | 役割 |
|---|---|---|---|
| R1 | Gi0/0 | 10.0.12.1/30 | R2との間の線 |
| R1 | Gi0/1 | 192.168.1.1/24 | 社内のPCがつながるLAN |
| R1 | Loopback0 | 1.1.1.1/32 | 機器の名札(router-id用) |
| R2 | Gi0/0 | 10.0.12.2/30 | R1との間の線 |
R1(config)# router ospf 1
R1(config-router)# router-id 1.1.1.1
R1(config-router)# network 10.0.12.0 0.0.0.3 area 0
R1(config-router)# network 192.168.1.0 0.0.0.255 area 0
R1(config-router)# passive-interface GigabitEthernet0/1
R2にも同じ形で、自分のアドレスに合わせたnetworkを入れます。両方に入れて、はじめて経路の交換が始まります。
各コマンドの意味
| コマンド | 意味 |
|---|---|
| router ospf 1 | OSPFを起動する。1はプロセスID(その機器の中だけで使う番号) |
| router-id 1.1.1.1 | この機器の名札。OSPFの世界で機器を見分けるID |
| network アドレス ワイルドカード area 0 | 当てはまるインターフェースでOSPFを動かし、エリア0に入れる |
| passive-interface Gi0/1 | そのインターフェースではHelloを出さない(経路の広告は続ける) |
プロセスIDは、相手のルーターと同じ番号でなくてもかまいません。そろえる必要があるのはエリア番号のほうです。
networkコマンドとワイルドカードマスク
networkコマンドの2つ目の値は、サブネットマスクではなくワイルドカードマスクです。0のビットは「一致が必要」、1のビットは「何でもよい」を表します。
| 対象 | サブネットマスク | ワイルドカードマスク |
|---|---|---|
| /30の線 | 255.255.255.252 | 0.0.0.3 |
| /24のLAN | 255.255.255.0 | 0.0.0.255 |
| 特定の1つのアドレスだけ | 255.255.255.255 | 0.0.0.0 |
ワイルドカードマスクの出し方は、各オクテットを255から引くだけ。network 10.0.12.1 0.0.0.0 area 0 のように、インターフェースのアドレスそのものを0.0.0.0で指定する書き方もよく使われます。対象が1つに決まるので、意図しないインターフェースまで拾う心配がありません。
インターフェースで直接有効にする書き方
新しめのIOSでは、networkを使わずに、インターフェースの設定で直接OSPFを入れる書き方もできます。
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip ospf 1 area 0
どのインターフェースでOSPFが動いているかが、設定を見ただけで分かるのが利点です。1台の中で2つの書き方を混ぜると読みにくくなるので、どちらかにそろえておきます。
router-idの決まり方とpassive-interface
router-idは、OSPFのルーター同士が互いを見分ける名札です。同じOSPFの中でrouter-idが重なると、経路の計算がおかしくなります。
| 順番 | 使われる値 |
|---|---|
| 1 | router-idコマンドで手で指定した値 |
| 2 | ループバックインターフェースのうち、一番大きいIPアドレス |
| 3 | 動いている物理インターフェースのうち、一番大きいIPアドレス |
手で指定しておくのが確実です。OSPFが動き出した後にrouter-idを変えた場合、すぐには反映されません。clear ip ospf processでOSPFをやり直す必要があり、その間は経路が一度消えます。作業時間を取って行ってください。
PCしかいないLANはpassive-interfaceにする
PCやプリンターしかいないLANに、OSPFの挨拶(Hello)を流しても意味はありません。passive-interfaceを入れると、そのインターフェースではHelloを出さず、ネイバーも作りません。
それでも、そのLANの経路(192.168.1.0/24)は相手へ広告されます。社内のPCにOSPFの情報を見せずに済むため、守りの面でも入れておくのが一般的です。
コストとデフォルトルートの調整
OSPFは、宛先までのコストの合計が一番小さい経路を選びます。コストは、インターフェースの帯域から自動で計算されます。
Cisco IOSの初期設定では、基準の帯域が100Mbpsです。1Gbpsも10Gbpsもコスト1になり、速さの違いが経路選びに反映されません。速い線を優先させたいときは、全ルーターで基準をそろえて引き上げます。
R1(config-router)# auto-cost reference-bandwidth 10000
10000はMbps単位で、10Gbpsを基準にする設定です。1台だけ変えると、ルーターごとにコストの計算がずれるので注意してください。特定の線だけを調整したいなら、インターフェースでip ospf cost 50のように直接指定します。
インターネットへの出口を配る
インターネットへの出口を持つルーターで、次の1行を入れると、ほかのルーターへデフォルトルートを配れます。
R1(config-router)# default-information originate
このルーター自身にデフォルトルート(ip route 0.0.0.0 0.0.0.0 …)があることが前提です。無い場合は、alwaysを付けると配り続けます。
show ip ospf neighborの読み方
設定したら、まず相手とネイバーになれたかを見ます。
R1# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 1 FULL/DR 00:00:35 10.0.12.2 GigabitEthernet0/0
Neighbor IDは相手のrouter-idです。Stateが「FULL」なら、経路の情報を交換し終えています。Dead Timeは、相手のHelloが途切れたとみなすまでの残り時間です。
| 状態 | 意味 | 正常か |
|---|---|---|
| FULL/DR・FULL/BDR・FULL/- | 情報の交換が終わった | 正常 |
| 2WAY/DROTHER | 同じLANで、DRでもBDRでもない相手同士 | 正常(この状態で止まるのが正しい) |
| INIT | 相手のHelloは届くが、自分が相手に見えていない | 異常。片方向になっている |
| EXSTART・EXCHANGE | 情報の交換を始めたところで止まる | 異常。MTUの不一致が多い |
RFC 2328では、ネイバーの状態はDown・Init・2-Way・ExStart・Exchange・Loading・Fullの順に進みます。スイッチでつながる3台以上のLANでは、DRとBDR以外の相手同士は2WAYで止まります。これを障害と見間違えないようにしてください。
ネイバーが張れないときに確かめる項目
ネイバーの一覧に相手が出てこないときは、Helloの中身が食い違っていることがほとんどです。RFC 2328では、Helloで次の項目が一致しないと受け付けないと定めています。
| 項目 | 既定値(Cisco IOS・イーサネット) | 確かめるコマンド |
|---|---|---|
| エリア番号 | 設定による | show ip ospf interface |
| Hello・Deadの間隔 | 10秒・40秒 | show ip ospf interface |
| サブネットマスク | 設定による | show ip interface |
| 認証の方式とキー | なし | show ip ospf interface |
| スタブなどエリアの種類 | 通常のエリア | show ip ospf |
| MTU(EXSTARTで止まるとき) | 1500 | show interfaces |
RFC 2328の付録でも、Helloは10秒、Deadは40秒が例として示されています。
ネイバーの状態から原因を絞る
- ネイバーがFULLにならない
- 一覧に何も出ないエリア・Hello間隔・マスク・認証の食い違い。passive-interfaceの入れすぎも疑う
- INITで止まる片方向。途中のアクセスリストが224.0.0.5あてのHelloを捨てていないか
- EXSTART・EXCHANGEで止まる両端のMTUの違い。show interfacesでMTUを比べる
- FULLだが経路が来ない相手のnetworkで目的のLANを指定していない。エリアの種類の違い
図:止まっている状態ごとに、確かめる項目が変わる
OSPFのHelloは、224.0.0.5という全OSPFルーターあてのマルチキャストで送られます。間にファイアウォールやアクセスリストがある構成では、ここが通っているかも確かめてください。
よくある質問
OSPFのプロセスIDは相手とそろえる必要がありますか?
そろえる必要はありません。プロセスIDはその機器の中だけで使う番号です。そろえなければいけないのはエリア番号、Hello・Deadの間隔、サブネットマスク、認証などです。
networkコマンドのワイルドカードマスクはどう求めますか?
サブネットマスクの各オクテットを、255から引いて求めます。255.255.255.0なら0.0.0.255、255.255.255.252なら0.0.0.3です。インターフェースのアドレス1つだけを指定するなら、0.0.0.0を使います。
show ip ospf neighborで2WAYのまま変わりません
同じLANに3台以上のルーターがいて、DRでもBDRでもない相手同士なら、2WAYで止まるのが正常です。2台だけをつないだ線で2WAYのままなら、片方の設定を見直してください。
EXSTARTやEXCHANGEで止まるのはなぜですか?
両端のMTUが違うときによく起きます。show interfacesで両端のMTUを比べ、同じ値にそろえます。ip ospf mtu-ignoreで確認を止める方法もありますが、まずは値をそろえるのが筋です。
OSPFで覚えた経路はどこで確かめますか?
show ip route ospfで、OSPFで覚えた経路だけを表示できます。行の先頭に「O」が付き、[110/2]のように管理距離110とコストの合計が並びます。
まとめ
- 最小の設定は router ospf・router-id・network(またはインターフェースの ip ospf area)
- networkの2つ目はワイルドカードマスク。255から引いて求める
- router-idは手で指定し、PCしかいないLANはpassive-interfaceにする
- 速い線を優先させるなら、全ルーターで auto-cost reference-bandwidth をそろえる
- FULLと、DROTHER同士の2WAYは正常。INIT・EXSTARTなら一致する項目を確かめる
ネイバーがFULLになったら、次は経路表で実際にどの経路が選ばれているかを読む段階です。コストの合計と管理距離の意味が分かると、障害時の切り分けが一気に速くなります。
OSPFの設計や切り分けを任せられる人は、構築案件で年収の上がりやすい層です。経験年数と資格ごとの年収相場と、上げ方を整理しました。
免責事項
※本記事はRFC・Ciscoの公式ドキュメントなどの公開情報をもとに整理したものです。コマンドの書き方や既定値は、機種やソフトウェアのバージョンによって変わる場合があります。業務で使う機器では、所属先の手順と各製品の最新資料をあわせてご確認ください。

