OSPFの設定方法|Ciscoのコマンドとネイバーの確認

OSPFの設定方法

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の線でつなぐ例です。

設定例の構成
機器インターフェースアドレス役割
R1Gi0/010.0.12.1/30R2との間の線
R1Gi0/1192.168.1.1/24社内のPCがつながるLAN
R1Loopback01.1.1.1/32機器の名札(router-id用)
R2Gi0/010.0.12.2/30R1との間の線
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を入れます。両方に入れて、はじめて経路の交換が始まります。

各コマンドの意味

OSPFの基本コマンド
コマンド意味
router ospf 1OSPFを起動する。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.2520.0.0.3
/24のLAN255.255.255.00.0.0.255
特定の1つのアドレスだけ255.255.255.2550.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が重なると、経路の計算がおかしくなります。

router-idが決まる順番(Cisco IOS)
順番使われる値
1router-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で止まるとき)1500show 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の公式ドキュメントなどの公開情報をもとに整理したものです。コマンドの書き方や既定値は、機種やソフトウェアのバージョンによって変わる場合があります。業務で使う機器では、所属先の手順と各製品の最新資料をあわせてご確認ください。


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Tanabeです。新卒でSIerに入り、ネットワークの設計から構築、運用保守、クラウド移行まで10年やってきました。その間に転職を3回、CCNPも取りました。

正直に言うと、資格を取っても年収はすぐには上がりませんでした。1回目の転職は失敗、2回目でようやく150万円上がり、3回目で今の事業会社に落ち着いた。動いてみて分かったのは、資格の有無より「現場で何を任されてきたか」で評価が決まる、ということです。

エージェントの言葉を鵜呑みにして、危うく後悔しかけた経験もあります。だからこそ、自分がやらかした失敗をそのまま書いて、同じ回り道をしなくて済むように残しています。転職を考え始めた人が、条件で損をしないための材料にしてもらえたら嬉しいです。

目次