OSPFのコストと経路選択|計算方法・優先順位・設定例を図解

ネットワーク中級編 18/全50記事

この記事は、 「ネットワーク中級編|構築・検証・障害切り分けを身につける」 の第18回です。

OSPFが複数の経路を学習したとき、どの経路を選ぶのかを、 コストの計算方法と実際の確認コマンドから理解します。

OSPFのコストと経路選択|計算方法・優先順位・設定例を図解

OSPFは、宛先までに通過するインターフェースのコストを合計し、 原則として合計コストが最も小さい経路を選択します。 ただし、実際の経路選択では最長一致、アドミニストレーティブディスタンス、 OSPFの経路種別なども関係します。

対象レベル Level 2・中級
想定読了時間 約25分
身につく成果 OSPFが選ぶ経路を計算・確認できる
前提知識 OSPFの基本・ネイバー確立
演習環境 Packet Tracerなど

OSPFネイバーが正常に確立していても、 想定していた回線を通信が通るとは限りません。

経路が想定と違う場合は、ルーティングテーブルだけでなく、 各インターフェースのコスト、参照帯域幅、経路種別、等コスト経路の有無を確認する必要があります。

この記事を読み終えるとできること

  • OSPFコストの意味と計算式を説明できる
  • 構成図から宛先までの合計コストを計算できる
  • 参照帯域幅を変更する理由を説明できる
  • 等コスト経路とロードバランシングを理解できる
  • 経路が想定と違うときの確認順序を実践できる
  • show ip routeのメトリックを読み取れる

最初に結論:OSPFは何を基準に経路を選ぶのか

OSPF経路選択の基本

同じ宛先プレフィックスに対する同種のOSPF経路では、 宛先までの合計コストが最も小さい経路が選ばれます。

OSPFのコストは、回線の使いやすさを数値で表したメトリックです。 値が小さいほど優先度が高くなります。

1

宛先を比較する

まず、より具体的な宛先プレフィックスが優先されます。 これはOSPFに限らず、ルーティングテーブル全体で使われる最長一致の考え方です。

2

経路情報の種類を比較する

異なるルーティングプロトコルから同じプレフィックスを学習した場合は、 アドミニストレーティブディスタンスなどによって採用候補が決まります。

3

OSPFコストを比較する

同じ条件のOSPF経路が複数ある場合は、 宛先までの合計コストが小さい経路が選ばれます。

「OSPFコストが小さい経路が、常にすべての経路より優先される」わけではありません。

宛先プレフィックス長や経路の学習元が異なる場合は、 コストを比較する前に別の判断が行われます。

OSPFのコストとは何か

OSPFでは、各インターフェースにコストという値を持たせます。 ルーターは、宛先ネットワークまでに利用するインターフェースのコストを合計し、 最も小さい経路を最短経路として計算します。

コストは小さいほど優先される

選択される経路
R1
R2
宛先LAN

合計コスト:10 + 10 = 20

代替経路
R1
R3
宛先LAN

合計コスト:5 + 30 = 35

この例では、R1から宛先LANへ向かう経路が2つあります。 R2経由は合計20、R3経由は合計35なので、R1はR2経由を選択します。

OSPFが比較するのは、隣接ルーターまでの1区間だけではありません。

宛先までの経路全体について、各区間のコストを合計して比較します。

コストの計算式と参照帯域幅

Cisco IOSでは、インターフェースのOSPFコストを自動計算する場合、 基本的に次の考え方を使用します。

OSPFコスト = 参照帯域幅 ÷ インターフェース帯域幅 計算結果は整数として扱われ、コストの最小値は1です。

デフォルトの参照帯域幅

Cisco IOSのデフォルト参照帯域幅は、一般的に100Mbpsです。 このまま計算すると、次のようになります。

インターフェース帯域幅 計算 OSPFコスト 問題点
10Mbps 100 ÷ 10 10 帯域差を表現できる
100Mbps 100 ÷ 100 1 基準となる
1Gbps 100 ÷ 1000 1 100Mbpsと同じコストになる
10Gbps 100 ÷ 10000 1 1Gbpsとも区別できない

デフォルトのままでは、100Mbps、1Gbps、10Gbpsがすべてコスト1となり、 高速回線の違いを経路選択へ反映できません。

参照帯域幅を100Gbpsへ変更した例

参照帯域幅を100Gbps、つまり100,000Mbpsへ変更すると、 各回線の違いを次のように表現できます。

インターフェース帯域幅 計算 OSPFコスト
100Gbps 100,000 ÷ 100,000 1
10Gbps 100,000 ÷ 10,000 10
1Gbps 100,000 ÷ 1,000 100
100Mbps 100,000 ÷ 100 1,000

参照帯域幅は、OSPFドメイン内で統一することが重要です。

ルーターごとに参照帯域幅が異なると、同じ回線に対するコストの考え方がそろわず、 意図しない経路選択や非対称経路の原因になります。

経路全体の合計コストを計算する

OSPFの経路コストは、ローカルルーターから宛先までの経路上で、 進行方向に使用する送信インターフェースのコストを合計して求めます。

R1から192.168.50.0/24までのコスト計算

R1
R2
R3
192.168.50.0/24

R1から見た合計コスト:10 + 20 + 5 = 35

ルーティングテーブルでは、この合計値がOSPFメトリックとして表示されます。 たとえば、次の表示にある35が合計コストです。

R1:OSPF経路の表示例
R1# show ip route ospf
O    192.168.50.0/24 [110/35] via 10.0.12.2, 00:00:18, GigabitEthernet0/0
110
OSPFのアドミニストレーティブディスタンス
35
宛先までのOSPF合計コスト
10.0.12.2
次に転送するネクストホップ
GigabitEthernet0/0
パケットを送信する出力インターフェース

[110/35]の2つの値を混同しないようにしましょう。 110は異なるルーティングプロトコル間で経路を選ぶときに使われる値、 35はOSPF内部で経路を比較するためのメトリックです。

実際の経路選択で確認する優先順位

実務では「コストが小さいから、この経路が選ばれる」とだけ判断すると、 誤った結論になることがあります。 ルーターが経路を利用するときは、次の順序で考えると整理しやすくなります。

  1. 宛先IPアドレスに最も長く一致するプレフィックスを探す /24/16が一致する場合は、より具体的な/24が優先されます。
  2. 同じプレフィックスを複数の学習元から受け取った場合、採用する経路を決める Cisco IOSでは、異なるルーティングプロトコル間の比較にアドミニストレーティブディスタンスが使われます。
  3. OSPFの経路種別を確認する 同じ宛先でも、エリア内経路、エリア間経路、外部経路では扱いが異なります。
  4. 比較対象となるOSPF経路の合計コストを確認する 同種の経路では、原則として合計コストが最小の経路が優先されます。
  5. 同じコストの経路が複数ある場合は等コスト経路として扱う 装置や設定が対応していれば、複数のネクストホップがルーティングテーブルへ登録されます。

現場での確認ポイント

OSPFコストを調べる前に、まず対象の宛先プレフィックスが同じか、 ルーティングテーブルへどの経路種別で登録されているかを確認します。

OSPFの経路種別と優先関係

OSPFでは、経路をどこから学習したかによって経路種別が変わります。 Cisco IOSのルーティングテーブルでは、主に次のコードで表示されます。

コード 経路種別 概要 確認ポイント
O Intra-Area 同じOSPFエリア内で学習した経路 エリア内のSPF計算で求める
O IA Inter-Area ABRを経由して別エリアから学習した経路 エリア内経路より後に評価される
O E1 External Type 1 OSPF外部から再配信された経路 外部メトリックとASBRまでの内部コストを合計する
O E2 External Type 2 OSPF外部から再配信された経路 通常は外部メトリックを主に比較する
O N1 / O N2 NSSA External NSSA内で生成された外部経路 Type 1とType 2でコストの考え方が異なる

E1とE2の違い

E1

内部コストも含める

E1は、再配信時に設定された外部メトリックに、 自分からASBRまでのOSPF内部コストを加算します。

E1コスト = 外部メトリック + ASBRまでの内部コスト

E2

外部メトリックを中心に比較する

E2は、通常、再配信時に設定された外部メトリックを主なメトリックとして扱います。 外部メトリックが同じ場合は、ASBRまでの内部コストが判断材料になります。

E2コスト = 主に外部メトリック

同じ宛先にエリア内経路と外部経路が存在する場合、 単純に表示された数値だけを比較するのではなく、まず経路種別を確認します。

等コスト経路とロードバランシング

宛先までの合計コストが同じ経路を複数学習した場合、 OSPFはそれらを等コスト経路として扱えます。 この仕組みをECMP(Equal-Cost Multi-Path)と呼びます。

2本の経路がどちらも合計コスト20

等コスト経路1
R1
R2
宛先

合計20

等コスト経路2
R1
R3
宛先

合計20

等コスト経路が登録された例
R1# show ip route 192.168.50.0
Routing entry for 192.168.50.0/24
  Known via "ospf 1", distance 110, metric 20, type intra area
  Routing Descriptor Blocks:
  * 10.0.12.2, from 3.3.3.3, via GigabitEthernet0/0
    10.0.13.3, from 3.3.3.3, via GigabitEthernet0/1

複数経路がルーティングテーブルへ登録されても、 パケットが1パケットごとに完全に交互へ振り分けられるとは限りません。 実際の分散方法は、装置の転送方式、CEF、ハッシュ条件、設定などによって変わります。

ECMPを利用する場合は、戻り通信の経路、ファイアウォールのセッション管理、 回線ごとの帯域差、遅延差も確認してください。

Cisco IOSの設定例

参照帯域幅を変更する

次の例では、OSPFプロセス1の参照帯域幅を100Gbpsへ変更しています。 コマンドの単位はMbpsです。

参照帯域幅を100Gbpsへ変更
R1(config)# router ospf 1
R1(config-router)# auto-cost reference-bandwidth 100000

この設定は、OSPFへ参加するすべてのルーターで統一してください。 変更時は経路再計算が発生するため、稼働中ネットワークでは影響確認と切り戻し計画が必要です。

インターフェースへコストを直接設定する

特定の回線を主系・待機系として明確に使い分けたい場合は、 ip ospf costでコストを直接設定できます。

GigabitEthernet0/1のOSPFコストを50へ設定
R1(config)# interface GigabitEthernet0/1
R1(config-if)# ip ospf cost 50

手動設定したコストは、帯域幅から自動計算される値より優先されます。 物理回線の速度を変更するコマンドではなく、OSPFの経路計算に使う値だけを変更します。

bandwidthコマンドで計算元を変更する

論理帯域幅を100Mbpsへ設定する例
R1(config)# interface GigabitEthernet0/1
R1(config-if)# bandwidth 100000

bandwidthコマンドの単位はKbpsです。 この値はOSPFの自動コスト計算などに参照されますが、 インターフェースの実際の物理速度を100Mbpsへ変更するものではありません。

経路制御だけを目的として明確な値を設定する場合は、 ip ospf costを使う方が、設計意図を読み取りやすいことがあります。

showコマンドの確認方法

1.インターフェースのOSPFコストを確認する

インターフェース単位の確認
R1# show ip ospf interface GigabitEthernet0/0
GigabitEthernet0/0 is up, line protocol is up
  Internet Address 10.0.12.1/30, Area 0, Attached via Interface Enable
  Process ID 1, Router ID 1.1.1.1, Network Type POINT_TO_POINT, Cost: 10
  Transmit Delay is 1 sec, State POINT_TO_POINT

重要なのはCost: 10です。 構成図上の各区間について、送信側インターフェースのコストを確認します。

2.ルーティングテーブルの合計コストを確認する

OSPF経路だけを表示
R1# show ip route ospf
O    192.168.20.0/24 [110/20] via 10.0.12.2, 00:04:12, GigabitEthernet0/0
O IA 192.168.30.0/24 [110/40] via 10.0.12.2, 00:04:12, GigabitEthernet0/0
O E2 203.0.113.0/24 [110/20] via 10.0.13.3, 00:02:46, GigabitEthernet0/1

コードOO IAO E2を確認したうえで、 角括弧内の2つ目の値を読み取ります。

3.特定の宛先について詳細を確認する

特定プレフィックスの詳細
R1# show ip route 192.168.20.0
Routing entry for 192.168.20.0/24
  Known via "ospf 1", distance 110, metric 20, type intra area
  Last update from 10.0.12.2 on GigabitEthernet0/0, 00:04:18 ago
  Routing Descriptor Blocks:
  * 10.0.12.2, from 2.2.2.2, 00:04:18 ago, via GigabitEthernet0/0
      Route metric is 20, traffic share count is 1

4.OSPFプロセスの参照帯域幅を確認する

OSPFプロセス情報
R1# show ip ospf
 Routing Process "ospf 1" with ID 1.1.1.1
 Reference bandwidth unit is 100000 mbps

表示内容はCisco IOSのバージョンやプラットフォームによって多少異なります。 確認したい要素は、インターフェースコスト、経路種別、合計メトリック、 ネクストホップ、出力インターフェース、参照帯域幅です。

設計・変更作業での判断基準

自動計算と手動設定を使い分ける

方式 向いている場面 メリット 注意点
帯域幅から自動計算 回線速度に応じて自然に経路を選びたい インターフェース速度と設計が連動しやすい 参照帯域幅の統一が必要
ip ospf costで手動設定 主系・待機系、運用上の優先順位を明確にしたい 経路制御の意図を直接表現できる 値の根拠と管理ルールが必要
bandwidth値を変更 論理帯域幅を複数機能へ反映したい OSPF以外の機能でも参照される場合がある 影響範囲がOSPFだけとは限らない

コスト変更前に確認する項目

  • 変更対象の宛先プレフィックスと現在の経路
  • 変更後に主経路となるネクストホップ
  • 戻り通信も同じ設計意図になるか
  • ECMPが発生または解消しないか
  • ファイアウォールやNATをまたぐ非対称経路にならないか
  • 障害時に待機経路へ切り替わるか
  • OSPFドメイン全体で参照帯域幅が統一されているか
  • 変更によるSPF再計算と一時的な通信影響
  • 切り戻し用の元設定と確認コマンド

OSPFコストを変更しても、通常はネイバー関係を切断するための変更ではありません。 ただし、LSA更新とSPF再計算が発生し、経路が切り替わるため、 通信の瞬断やセッションへの影響が起きる可能性は考慮します。

値を決めるときは余白を持たせる

主系を10、待機系を11のように近い値へすると、 将来リンクが追加されたときに設計変更しにくくなります。 たとえば主系10、準主系50、待機系100のように、 将来の追加経路を挿入できる余白を持たせる方法があります。

コスト値そのものに絶対的な正解はありません。 重要なのは、ネットワーク全体で一貫したルールを作り、 設計書やパラメータシートへ選定理由を残すことです。

経路が想定と違うときの切り分け

「OSPFネイバーはFullなのに、通信が想定外の回線を通る」という場合は、 次の順序で確認します。

  1. 宛先IPアドレスとプレフィックスを確認する 確認対象がホストルート、サブネットルート、デフォルトルートのどれに一致しているかを整理します。
  2. ルーティングテーブルで実際に採用された経路を確認する 経路コード、ネクストホップ、出力インターフェース、メトリックを記録します。
  3. 同じ宛先に別の経路がないか確認する スタティックルート、他の動的ルーティング、より長いプレフィックスが存在しないかを確認します。
  4. 経路上の各インターフェースコストを確認する show ip ospf interfaceを使い、構成図へコストを書き込みます。
  5. 参照帯域幅と手動コストを確認する 自動計算の前提が全ルーターで統一されているか、ip ospf costが設定されていないかを確認します。
  6. OSPF経路種別を確認する O、O IA、O E1、O E2などを区別し、数値だけで比較していないかを確認します。
  7. 等コスト経路と実際の転送を確認する 複数ネクストホップが登録されている場合は、CEFやトラフィックのハッシュ結果も確認します。
  8. 戻り経路を確認する 片方向だけでなく、通信先から送信元への経路も確認します。

調査時は、構成図の各リンクへコストを書き込み、 候補経路ごとに合計値を手計算すると、設定ミスを見つけやすくなります。

OSPFコストに関するよくある勘違い

回線速度が速ければ、必ずOSPFで優先される

OSPFが直接比較するのはコストです。 参照帯域幅が小さいままだと、100Mbps以上の回線がすべてコスト1になり、 速度差が経路選択へ反映されないことがあります。

隣接ルーターまでのコストだけを比較すればよい

OSPFは宛先までの合計コストを比較します。 最初の区間が低コストでも、その先の区間が高コストなら選ばれない場合があります。

[110/20]の110もOSPFコストである

110はアドミニストレーティブディスタンス、20がOSPFメトリックです。 役割が異なります。

参照帯域幅は1台だけ変更しても問題ない

ルーターごとにコスト計算の基準が異なると、 ネットワーク全体で一貫した経路設計ができません。

bandwidthコマンドで物理回線の速度が変わる

bandwidthは、ルーティングプロトコルなどが参照する論理値です。 実際の物理リンク速度を変更するコマンドではありません。

経路種別を確認してからコストを比較する

O、O IA、O E1、O E2では経路の意味が異なります。 ルーティングテーブルのコードを確認してから、メトリックを評価します。

顧客・上司への説明例

OSPFコストの変更を非エンジニアへ説明するときは、 計算式だけでなく、変更目的、影響範囲、障害時の動作を伝えます。

説明例

現在は2本の回線が同じ優先度として扱われる設定になっています。 今回、主回線のOSPFコストを小さくし、通常時は主回線を利用するように変更します。 主回線に障害が発生した場合は、OSPFが経路を再計算し、待機回線へ切り替わります。 変更時には経路再計算が発生するため、通信確認を実施し、問題があれば元のコストへ戻します。

障害報告へ記載する例

調査結果の記載例
■確認結果
・OSPFネイバー状態:Full
・対象経路:192.168.50.0/24
・現在の経路:R3経由、OSPFコスト20
・想定経路:R2経由、OSPFコスト30

■原因
R3側インターフェースに手動コスト10が設定されており、
R2経由より合計コストが小さくなっていたため。

■対応
設計値に合わせてR3側コストを50へ変更し、
R2経由へ切り替わったことを確認。

英語ドキュメントで使われる表現

英語表現 意味 検索・確認での使い方
OSPF cost OSPFコスト インターフェースコストの設定・確認
reference bandwidth 参照帯域幅 自動コスト計算の基準
shortest path 最短経路 SPF計算で選ばれる経路
cumulative cost 累積コスト・合計コスト 宛先までのコスト合計
equal-cost path 等コスト経路 ECMPの動作確認
intra-area route エリア内経路 ルーティングテーブルのO経路
inter-area route エリア間経路 ルーティングテーブルのO IA経路
external metric 外部メトリック E1・E2経路の調査

英語で検索するときの例

  • OSPF cost calculation reference bandwidth
  • OSPF path selection intra area inter area
  • OSPF E1 vs E2 metric
  • show ospf interface cost
  • OSPF equal cost multipath troubleshooting

理解度チェック

次の5問に答えて、OSPFのコストと経路選択を理解できているか確認しましょう。

問題1.同じ宛先プレフィックスに対する同種のOSPF経路が2つあります。経路Aの合計コストは20、経路Bは35です。原則としてどちらが選ばれますか。

  1. 経路A
  2. 経路B
  3. 必ず両方
  4. Router IDが大きい方
解答を見る
正解:A

OSPFでは、原則として合計コストが小さい経路が優先されます。

問題2.Cisco IOSでデフォルトの参照帯域幅が100Mbpsの場合、1Gbpsインターフェースのコストはいくつになりますか。

  1. 0
  2. 1
  3. 10
  4. 100
解答を見る
正解:B

100 ÷ 1000の計算結果は1未満ですが、OSPFコストの最小値は1です。 そのため100Mbps以上の回線が同じコストになる問題があります。

問題3.O 192.168.10.0/24 [110/25]の25は何を表しますか。

  1. OSPFプロセスID
  2. Router ID
  3. アドミニストレーティブディスタンス
  4. 宛先までのOSPFメトリック
解答を見る
正解:D

110がアドミニストレーティブディスタンス、25がOSPFの合計コストです。

問題4.E1経路のメトリックには、何が含まれますか。

  1. 外部メトリックだけ
  2. 外部メトリックとASBRまでの内部コスト
  3. ホップ数だけ
  4. Router IDの値
解答を見る
正解:B

E1は、外部メトリックへASBRまでのOSPF内部コストを加算します。

問題5.OSPFの参照帯域幅を変更するとき、最も重要な注意点はどれですか。

  1. 1台のルーターだけ変更する
  2. OSPFドメイン内のルーターで値を統一する
  3. 必ずRouter IDも変更する
  4. Hello Intervalを0へする
解答を見る
正解:B

コスト計算の基準をネットワーク全体で統一する必要があります。

実践演習:OSPFが選ぶ経路を判断する

演習1.合計コストを計算する

R1から192.168.100.0/24へ到達する経路が2つあります。 どちらが選ばれるか考えてください。

経路A:R2経由
  • R1 → R2:コスト10
  • R2 → R4:コスト10
  • R4 → 宛先LAN:コスト5
経路B:R3経由
  • R1 → R3:コスト5
  • R3 → R4:コスト15
  • R4 → 宛先LAN:コスト5
経路Aの合計:____
経路Bの合計:____
選ばれる経路:____
理由:____________________
演習1の解答を見る
  • 経路A:10 + 10 + 5 = 25
  • 経路B:5 + 15 + 5 = 25
  • 結果:等コスト経路

両方の合計コストが25なので、装置と設定が対応していれば、 2つのネクストホップがルーティングテーブルへ登録されます。

演習2.想定外の経路を切り分ける

次の状況から、確認すべき項目を考えてください。

R1の確認結果
R1# show ip route 192.168.200.0
Routing entry for 192.168.200.0/24
  Known via "ospf 1", distance 110, metric 20, type intra area
  * 10.0.13.3, via GigabitEthernet0/1

設計書上の想定:10.0.12.2経由
実際の経路   :10.0.13.3経由

OSPFネイバーは両方ともFullです。 原因を特定するために、次に実行するコマンドと確認内容を3つ以上書いてください。

1.コマンド:________ 確認内容:____________
2.コマンド:________ 確認内容:____________
3.コマンド:________ 確認内容:____________
演習2の解答例を見る
  • show ip ospf interface GigabitEthernet0/0:10.0.12.2側の送信コストを確認
  • show ip ospf interface GigabitEthernet0/1:10.0.13.3側の送信コストを確認
  • show ip ospf:参照帯域幅を確認
  • show running-config interface ...ip ospf costbandwidthの手動設定を確認
  • show ip route ospf:同じ宛先の経路種別と等コスト経路の有無を確認
  • 中継ルーターでも各インターフェースコストを確認し、宛先までの合計値を計算

演習3.自分の言葉で説明する

「OSPFはどのように経路を選ぶのですか?」と後輩から質問されました。 1分程度で説明してください。

OSPFは、____________________________________。
説明例を見る

OSPFは、各インターフェースに設定されたコストを使って、 宛先までの経路全体の合計コストを計算します。 同じ宛先に同種の経路が複数ある場合は、原則として合計コストが最も小さい経路を選びます。 同じコストの経路が複数あれば、等コスト経路として利用できる場合があります。 ただし、実際には最長一致、経路の学習元、OSPFの経路種別を確認してからコストを比較します。

まとめ

  • OSPFコストは、値が小さいほど優先度が高い
  • 宛先までの送信インターフェースコストを合計して経路を比較する
  • Cisco IOSの自動計算では、参照帯域幅 ÷ インターフェース帯域幅でコストを求める
  • デフォルト参照帯域幅が100Mbpsの場合、高速回線を区別できないことがある
  • 参照帯域幅はOSPFドメイン内で統一する
  • ip ospf costを使うと、インターフェースコストを直接設定できる
  • [110/20]では、110がAD、20がOSPFメトリック
  • 経路種別を確認してからコストを比較する
  • 合計コストが同じ経路は、ECMPとして複数登録される場合がある
  • 経路変更時は戻り経路、非対称通信、SPF再計算の影響も確認する

OSPFの経路選択を理解するには、構成図へ各リンクのコストを書き込み、 候補経路ごとに合計値を計算することが最も確実です。

次の記事:IPv6の基礎

今回は、OSPFが複数の経路から最適な経路を選ぶ仕組みを学びました。

次の記事では、IPv4アドレス枯渇への対応として利用が広がっているIPv6について、 アドレス表記、プレフィックス、主なアドレス種別、IPv4との違いを解説します。

ネットワーク中級編 18/全50記事

中級編では、スイッチング、ルーティング、ネットワークサービス、 パケット解析、障害切り分け、実務で必要な資料の読み方を順番に学びます。

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

この記事を書いた人

コメント

コメントする

目次