Cisco OSPF 設定手順 | 基本からマルチエリア、冗長構成の実践パターン

  • URLをコピーしました!
目次

はじめに

企業ネットワークの構築において、最も標準的に採用されるルーティングプロトコルが OSPF(Open Shortest Path First)です。 ベンダーを問わず使える標準規格であり、大規模なネットワークでも高速に収束(コンバージェンス)するため、ネットワークエンジニアにとって必須のスキルと言えます。

本記事では、Cisco ルーター(IOS)を用いた OSPF の具体的な設定手順を解説します。 教科書的な「シングルエリア」の設定だけでなく、現場で頻出する「マルチエリア構成」や、回線障害時に自動で切り替わる「冗長化(ECMP / コスト調整)」、さらに「フローティングスタティック」との組み合わせまで、実務で使えるパターンを解説します。

なお、OSPF の仕組み(LSA タイプや動作プロセスなど)については、以下の記事で解説しています。基礎理論から復習したい方は、先にこちらをご覧ください。

この記事でわかること
  • 基本設定: シングルエリア(Area 0)とマルチエリア(ABR)の構築手順
  • 冗長化①: OSPF ネイティブの負荷分散(ECMP)とコスト調整による優先制御
  • 冗長化②: バックアップ回線への切り替え(フローティングスタティックとの連携)
  • 実践設定: パッシブインターフェースやデフォルトルート配布などの必須オプション
  • 確認方法: show コマンドを用いたステータス確認のポイント

前提知識と構成

本記事では、以下のネットワーク構成を例に OSPF の設定手順を解説します。 バックボーンエリア(Area 0)と支社エリア(Area 10)を接続するマルチエリア構成です。

アドレス設計と役割

検証に使用する IP アドレスと、各ルーターの役割は以下の通りです。 Router A が異なるエリアをつなぐ ABR(エリア境界ルーター) となります。

デバイス役割インターフェースIPアドレス / マスク所属エリア
Router AABR / CenterGi0/010.0.12.1 /30Area 0
Gi0/110.0.21.1 /30Area 0
Gi0/2 10.0.13.1 /30Area 10
Loopback01.1.1.1 /32Area 0
Router B内部ルーター/ Branch1Gi0/010.0.12.2 /30Area 0
Gi0/110.0.21.2 /30Area 0
Gi0/2192.168.10.254 /24Area 0
Loopback02.2.2.2 /32Area 0
Router C内部ルーター / Branch2Gi0/0 10.0.13.2 /30Area 10
Gi0/1192.168.20.254 /24Area 10
Loopback03.3.3.3 /32Area 10

基本設定(シングルエリアとマルチエリア)

Cisco ルーターでの設定手順はシンプルです。

  1. router ospf <プロセスID> で起動
  2. router-id で名前を決定
  3. network コマンドでインターフェースをエリアに参加させる

Area 0 の設定(Router B / シングルエリア)

まずは最も基本的なシングルエリアの設定です。Router B はすべてのインターフェースが Area 0 に属します。

Router B(Branch 1)の設定

Router_B(config)# router ospf 1
Router_B(config-router)# router-id 2.2.2.2

! ネットワークアドレス ワイルドカードマスク area エリアID の順で指定
! 2本の対向回線 (10.0.12.0/30, 10.0.21.0/30) を Area 0 へ
Router_B(config-router)# network 10.0.12.0 0.0.0.3 area 0
Router_B(config-router)# network 10.0.21.0 0.0.0.3 area 0

! LAN側ネットワーク (192.168.10.0/24) も Area 0 へ
Router_B(config-router)# network 192.168.10.0 0.0.0.255 area 0
💡ワイルドカードマスクの計算

基本的な変換例は以下の通りです。

  • /30 (255.255.255.252) → 0.0.0.3
  • /24 (255.255.255.0) → 0.0.0.255

複雑なサブネットの計算はミスしやすいので、以下の計算ツールを使うのがおすすめです。IPアドレスとプレフィックスを入力するだけで、ワイルドカードマスクも一発で算出できます。

Area 0 + Area 10 の設定(Router A / ABR)

次に、エリアをまたぐ ABR の設定です。 Router A は、左側(Router B 向け)を Area 0、右側(Router C 向け)を Area 10 として設定します。

Router A(Center / ABR)の設定

Router_A(config)# router ospf 1
Router_A(config-router)# router-id 1.1.1.1

! 左側のインターフェース群は Area 0 (バックボーン)
Router_A(config-router)# network 10.0.12.0 0.0.0.3 area 0
Router_A(config-router)# network 10.0.21.0 0.0.0.3 area 0
Router_A(config-router)# network 1.1.1.1 0.0.0.0 area 0

! 右側のインターフェースは Area 10 (非バックボーン)
Router_A(config-router)# network 10.0.13.0 0.0.0.3 area 10

このように area 番号を使い分けるだけで、ルーターが自動的に ABR として動作し、エリア間のルーティング情報を中継します。

Area 10 の設定(Router C / シングルエリア)

最後に Area 10 内のルーター設定です。Router B と同様ですが、エリア ID が 10 になる点だけが異なります。

Router C(Branch 2)の設定

Router_C(config)# router ospf 1
Router_C(config-router)# router-id 3.3.3.3

! すべてのインターフェースを Area 10 に所属させる
Router_C(config-router)# network 10.0.13.0 0.0.0.3 area 10
Router_C(config-router)# network 192.168.20.0 0.0.0.255 area 10

以上で、基本的な OSPF ネットワーク(シングルエリアおよびマルチエリア)の疎通が可能になります。
次は、OSPF をより実践的に使うための「冗長化設定」について解説します。

実践① コスト調整とロードバランシング(OSPF 内冗長化)

OSPF は、目的地への経路が複数ある場合、コスト(Cost)値 が最も小さい経路をベストパスとして選択します。 この性質を利用して、通信を分散させたり、主系・副系を切り替えたりすることができます。

等コストロードバランシング(ECMP)

Cisco ルーターのデフォルト動作です。 今回の構成のように、Router A と Router B の間が同じ帯域幅(例: どちらも 1Gbps)の回線で結ばれている場合、OSPF は両方の回線のコストを「同じ」と判断します。

コストが同じ場合、OSPF は 両方の経路をルーティングテーブルに登録 し、パケットを均等に分散させて転送します。これを ECMP(Equal Cost Multi-Path)と呼びます。

確認コマンド

Router B でルーティングテーブルを確認すると、宛先(Router A の Loopback 1.1.1.1 や Area 10 への経路)に対して、2つの Next Hop が表示されます。

Router_B# show ip route ospf

      1.0.0.0/32 is subnetted, 1 subnets
O        1.1.1.1 [110/2] via 10.0.12.1, 00:00:15, GigabitEthernet0/0
                 [110/2] via 10.0.21.1, 00:00:15, GigabitEthernet0/1  <-- 2行ある

特別な設定をしなくても、自動的に帯域を有効活用(Active/Active)できるのが OSPF の強みです。

コスト調整による優先制御(Active/Standby)

要件によっては、「普段は回線 1 だけを使い、回線 1 が切れた時だけ回線 2 を使いたい」という Active/Standby 構成にしたい場合があります。

その場合は、バックアップにしたい回線のコスト値を手動で高く設定 します。 OSPF は「コストが低い方」を優先するため、コストが高い回線はルーティングテーブルから消え、待機状態になります。

設定例

Router B にて、Gi0/1(バックアップ用)のコストを 100 に上げます。(デフォルトは 1)

Router_B(config)# interface GigabitEthernet0/1
Router_B(config-if)# ip ospf cost 100

※ 戻りの通信も制御したい場合は、対向の Router A 側でも同様に設定する必要があります。

設定後の確認

もう一度ルーティングテーブルを確認すると、コストの低い Gi0/0 の経路だけが残り、Gi0/1 は消えます。

Router_B# show ip route ospf

      1.0.0.0/32 is subnetted, 1 subnets
O        1.1.1.1 [110/2] via 10.0.12.1, 00:00:05, GigabitEthernet0/0
                 ! Gi0/1 の行が消え、Gi0/0 だけになった(Active/Standby完成)
💡障害時の動作

この状態で Gi0/0 のケーブルを抜くと、OSPF は瞬時に経路を再計算し、隠れていた Gi0/1(コスト 100)のルートを自動的にテーブルに浮上させます。これが OSPF の冗長化機能です。

実践② 異種プロトコル間の冗長化(フローティングスタティック)

前章では OSPF 同士の冗長化を行いましたが、実際の現場では「メイン回線は OSPF(専用線)、バックアップ回線は Static(インターネット VPN)」といったように、異なるプロトコルを組み合わせるケースが多々あります。

この場合、単にスタティックルートを書いただけでは問題が起きます。 Cisco ルーターのデフォルトでは、Static(AD値: 1)OSPF(AD値: 110) よりも優先されるため、バックアップのつもりが「常に VPN 経由」になってしまうのです。

そこで登場するのが フローティングスタティック です。

AD 値(管理ディスタンス)の調整

Static ルートの信頼度(AD 値)をわざと下げることで、普段は OSPF に負けるように設定します。

プロトコルデフォルト AD 値設定する AD 値状態
OSPF(メイン110変更なし優先(Routing Table に載る
Static(サブ1120(110より大きくする)待機(Routing Table に載らない)

こうすると、OSPF が生きている間は Static ルートは無視され(浮いている状態)、OSPF がダウンした瞬間に「代打」としてルーティングテーブルに降りてきます。

設定コマンド

設定は非常にシンプルです。ip route コマンドの末尾に、110 よりも大きい数字(例: 120) を付けるだけです。

Router B(Branch 1)の設定例

メインは OSPF で学習済みとします。バックアップとして VPN ルーター(192.168.100.1)に向けたスタティックルートを設定します。

! 本社 (1.1.1.1) へのルートを AD値 120 で設定
Router_B(config)# ip route 1.1.1.1 255.255.255.255 192.168.100.1 120

動作確認

実際に回線を抜いて(または shutdown して)、切り替わりを確認してみましょう。

通常時(OSPF 正常稼働)

ルーティングテーブルには OSPF のみが表示されています。

Router_B# show ip route 1.1.1.1
Routing entry for 1.1.1.1/32
  Known via "ospf 1", distance 110, metric 2, type intra area
  ! OSPF (AD: 110) が選ばれている
障害発生時(OSPF ダウン)

OSPF のリンクダウンを検知すると、隠れていた Static ルートが自動的に浮上します。

Router_B# show ip route 1.1.1.1
Routing entry for 1.1.1.1/32
  Known via "static", distance 120, metric 0
  ! Static (AD: 120) に切り替わった

このように、AD 値を調整するだけで、高価な専用線をメインに使いつつ、安価な回線を保険として確保する構成が簡単に実現できます。

実践③ 現場でよく使うオプション設定

OSPF の基本設定(router ospf, network)だけでは、セキュリティや経路選択の精度に課題が残ります。 ここでは、よく使う 3 つのチューニング設定を紹介します。

不要なパケットを止める(passive-interface)

network コマンドで指定したインターフェースからは、デフォルトで 10 秒ごとに Hello パケット が送信されます。 しかし、PC やサーバーしか繋がっていない LAN 側のポートに Hello を送る必要はありません。むしろ、無駄な帯域消費や、悪意あるユーザーに OSPF 情報を盗聴されるリスクになります。

設定例(Router B)

LAN 側の GigabitEthernet0/2 に対して Hello パケットの送信を停止します。 ※ ただし、OSPF ネットワークとしては広報され続けるため、通信には影響しません。

Router_B(config)# router ospf 1
Router_B(config-router)# passive-interface GigabitEthernet0/2

インターフェースが多い場合は、passive-interface default で全ポートを一旦停止し、必要なポートだけ no passive-interface で開放するのが一般的です。

インターネットへの出口を教える(default-information originate)

社内のルーター全てに「インターネットへ行くならここを通れ(0.0.0.0/0)」という静的ルートを 1 台ずつ書くのは大変です。 インターネット接続点となるルーター(今回の構成では Router A や上位ルーター)でこの設定を入れると、OSPF ドメイン内の全ルーターに デフォルトルート を自動的に配布できます。

設定例(Router A / Edge Router)

前提として、自身がデフォルトルート(static)を持っている必要があります。

! まず自身がデフォルトルートを持つ
Router_A(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1

! OSPF でそのルートをみんなに配る
Router_A(config)# router ospf 1
Router_A(config-router)# default-information originate

always オプションを付けると、自身がデフォルトルートを持っていなくても強制的に配布します。

高速回線に対応する(auto-cost reference-bandwidth)

OSPF のコスト値は 100 Mbps / 帯域幅 で計算されます。デフォルトの基準値(100Mbps)のままだと、100Mbps(FastEthernet)も 1Gbps(GigabitEthernet)も 10Gbps も、計算結果がすべて「1」になってしまいます。 これでは、1G と 10G の回線があっても OSPF は「同じ速さ」と誤認してしまいます。

これを防ぐため、基準値(分母)を引き上げます。

設定例(全ルーター共通

基準値を 10001Gbps)や 10000(10Gbps)に変更します。

※ この設定は、OSPF ドメイン内の 全てのルーターで統一 する必要があります。

Router_B(config)# router ospf 1
! 基準値を 10Gbps (10000 Mbps) に変更
Router_B(config-router)# auto-cost reference-bandwidth 10000

設定後、show ip ospf interface brief 等でコスト値が変わったことを確認しましょう(例:1Gbps リンクのコストが 10 になる等)

設定確認:ステータス確認コマンド

設定が完了したら、意図通りに OSPF が動作しているかを確認します。 特に重要なのが 「ネイバー」「インターフェース」「ルーティングテーブル」 の 3 つの視点です。

ネイバーの確立確認(show ip ospf neighbor)

最も頻繁に使うコマンドです。隣接ルーターと正しく情報交換ができているかを確認します。

Router_B# show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1           1   FULL/DR         00:00:32    10.0.12.1       GigabitEthernet0/0
1.1.1.1           1   FULL/DR         00:00:35    10.0.21.1       GigabitEthernet0/1
💡チェックポイント
  • Neighbor ID: 隣のルーターの ID が表示されているか。
  • State: FULL または 2WAY になっているか。
    • FULL/DR, FULL/BDR, FULL/DROTHER: 正常に情報交換完了
    • 2WAY/DROTHER: 正常(DR/BDR 以外のルーター同士)
    • INIT, EXSTART, EXCHANGE で止まっている場合はトラブルの可能性があります。

インターフェース設定の確認(show ip ospf interface)

各インターフェースが正しいエリアに所属しているか、コスト値やタイマー値が合っているかを確認します。

Router_B# show ip ospf interface GigabitEthernet0/0

GigabitEthernet0/0 is up, line protocol is up 
  Internet Address 10.0.12.2/30, Area 0 
  Process ID 1, Router ID 2.2.2.2, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State BDR, Priority 1 
  Designated Router (ID) 1.1.1.1, Interface address 10.0.12.1
  Backup Designated router (ID) 2.2.2.2, Interface address 10.0.12.2
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
💡チェックポイント
  • Area: 意図したエリア ID(Area 0 など)になっているか。
  • Cost: 設定したコスト値(帯域幅や手動設定)が反映されているか。
  • Hello / Dead: 隣接ルーターと同じ値か(デフォルトは Hello 10秒 / Dead 40秒)ここがズレるとネイバーになりません。

ルーティングテーブルの確認(show ip route ospf)

最終的に、OSPF によって学習した経路情報がルーティングテーブルに載っているかを確認します。

Router_B# show ip route ospf

      1.0.0.0/32 is subnetted, 1 subnets
O        1.1.1.1 [110/2] via 10.0.12.1, 00:00:12, GigabitEthernet0/0
                 [110/2] via 10.0.21.1, 00:00:12, GigabitEthernet0/1
      3.0.0.0/32 is subnetted, 1 subnets
O IA     3.3.3.3 [110/3] via 10.0.12.1, 00:00:12, GigabitEthernet0/0
💡チェックポイント
  • コード: 先頭の文字を確認します。
  • O: 同一エリア内(Intra-Area)の経路
  • O IA: 別エリア(Inter-Area)からの経路
  • ECMP: 同じ宛先に複数の via が表示されていれば、負荷分散(Active/Active)が効いています。

まとめ

本記事では、Cisco ルーターを用いた OSPF の実践的な設定手順を解説しました。

基本

router ospfnetwork コマンドでエリア参加させる。

応用

ABR を配置してエリアを分割し、LSA の氾濫を防ぐ。

冗長化

ECMP やコスト調整、フローティングスタティックを組み合わせて「切れないネットワーク」を作る。

実践

passive-interfaceauto-cost で、セキュリティとパフォーマンスを最適化する。

以上、最後までお読みいただきありがとうございました。

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

この記事を書いた人

インフラ(クラウド/NW/仮想化)から Web 開発まで、技術領域を横断して活動するエンジニア💻 コンシューマー向けエンタメ事業での新規開発・運営経験を活かし、実戦的な技術ノウハウを発信中

[ Certs ] CCIE Lifetime Emeritus / VCAP-DCA ✒️ [ Life ] 技術書・ビジネス書愛好家📖 / 小・中学校で卓球コーチ👟

目次