この記事は、 「ネットワーク中級編|構築・検証・障害切り分けを身につける」 の第18回です。
OSPFが複数の経路を学習したとき、どの経路を選ぶのかを、 コストの計算方法と実際の確認コマンドから理解します。
OSPFのコストと経路選択|計算方法・優先順位・設定例を図解
OSPFは、宛先までに通過するインターフェースのコストを合計し、 原則として合計コストが最も小さい経路を選択します。 ただし、実際の経路選択では最長一致、アドミニストレーティブディスタンス、 OSPFの経路種別なども関係します。
OSPFネイバーが正常に確立していても、 想定していた回線を通信が通るとは限りません。
経路が想定と違う場合は、ルーティングテーブルだけでなく、 各インターフェースのコスト、参照帯域幅、経路種別、等コスト経路の有無を確認する必要があります。
この記事を読み終えるとできること
- OSPFコストの意味と計算式を説明できる
- 構成図から宛先までの合計コストを計算できる
- 参照帯域幅を変更する理由を説明できる
- 等コスト経路とロードバランシングを理解できる
- 経路が想定と違うときの確認順序を実践できる
show ip routeのメトリックを読み取れる
最初に結論:OSPFは何を基準に経路を選ぶのか
同じ宛先プレフィックスに対する同種のOSPF経路では、 宛先までの合計コストが最も小さい経路が選ばれます。
OSPFのコストは、回線の使いやすさを数値で表したメトリックです。 値が小さいほど優先度が高くなります。
宛先を比較する
まず、より具体的な宛先プレフィックスが優先されます。 これはOSPFに限らず、ルーティングテーブル全体で使われる最長一致の考え方です。
経路情報の種類を比較する
異なるルーティングプロトコルから同じプレフィックスを学習した場合は、 アドミニストレーティブディスタンスなどによって採用候補が決まります。
OSPFコストを比較する
同じ条件のOSPF経路が複数ある場合は、 宛先までの合計コストが小さい経路が選ばれます。
「OSPFコストが小さい経路が、常にすべての経路より優先される」わけではありません。
宛先プレフィックス長や経路の学習元が異なる場合は、 コストを比較する前に別の判断が行われます。
OSPFのコストとは何か
OSPFでは、各インターフェースにコストという値を持たせます。 ルーターは、宛先ネットワークまでに利用するインターフェースのコストを合計し、 最も小さい経路を最短経路として計算します。
コストは小さいほど優先される
合計コスト:10 + 10 = 20
合計コスト:5 + 30 = 35
この例では、R1から宛先LANへ向かう経路が2つあります。 R2経由は合計20、R3経由は合計35なので、R1はR2経由を選択します。
OSPFが比較するのは、隣接ルーターまでの1区間だけではありません。
宛先までの経路全体について、各区間のコストを合計して比較します。
コストの計算式と参照帯域幅
Cisco IOSでは、インターフェースのOSPFコストを自動計算する場合、 基本的に次の考え方を使用します。
デフォルトの参照帯域幅
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から見た合計コスト:10 + 20 + 5 = 35
ルーティングテーブルでは、この合計値がOSPFメトリックとして表示されます。
たとえば、次の表示にある35が合計コストです。
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内部で経路を比較するためのメトリックです。
実際の経路選択で確認する優先順位
実務では「コストが小さいから、この経路が選ばれる」とだけ判断すると、 誤った結論になることがあります。 ルーターが経路を利用するときは、次の順序で考えると整理しやすくなります。
-
宛先IPアドレスに最も長く一致するプレフィックスを探す
/24と/16が一致する場合は、より具体的な/24が優先されます。 - 同じプレフィックスを複数の学習元から受け取った場合、採用する経路を決める Cisco IOSでは、異なるルーティングプロトコル間の比較にアドミニストレーティブディスタンスが使われます。
- OSPFの経路種別を確認する 同じ宛先でも、エリア内経路、エリア間経路、外部経路では扱いが異なります。
- 比較対象となるOSPF経路の合計コストを確認する 同種の経路では、原則として合計コストが最小の経路が優先されます。
- 同じコストの経路が複数ある場合は等コスト経路として扱う 装置や設定が対応していれば、複数のネクストホップがルーティングテーブルへ登録されます。
現場での確認ポイント
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は、再配信時に設定された外部メトリックに、 自分からASBRまでのOSPF内部コストを加算します。
E1コスト = 外部メトリック + ASBRまでの内部コスト
外部メトリックを中心に比較する
E2は、通常、再配信時に設定された外部メトリックを主なメトリックとして扱います。 外部メトリックが同じ場合は、ASBRまでの内部コストが判断材料になります。
E2コスト = 主に外部メトリック
同じ宛先にエリア内経路と外部経路が存在する場合、 単純に表示された数値だけを比較するのではなく、まず経路種別を確認します。
等コスト経路とロードバランシング
宛先までの合計コストが同じ経路を複数学習した場合、 OSPFはそれらを等コスト経路として扱えます。 この仕組みをECMP(Equal-Cost Multi-Path)と呼びます。
2本の経路がどちらも合計コスト20
合計20
合計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です。
R1(config)# router ospf 1
R1(config-router)# auto-cost reference-bandwidth 100000
この設定は、OSPFへ参加するすべてのルーターで統一してください。 変更時は経路再計算が発生するため、稼働中ネットワークでは影響確認と切り戻し計画が必要です。
インターフェースへコストを直接設定する
特定の回線を主系・待機系として明確に使い分けたい場合は、
ip ospf costでコストを直接設定できます。
R1(config)# interface GigabitEthernet0/1
R1(config-if)# ip ospf cost 50
手動設定したコストは、帯域幅から自動計算される値より優先されます。 物理回線の速度を変更するコマンドではなく、OSPFの経路計算に使う値だけを変更します。
bandwidthコマンドで計算元を変更する
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.ルーティングテーブルの合計コストを確認する
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
コードO、O IA、O 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プロセスの参照帯域幅を確認する
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なのに、通信が想定外の回線を通る」という場合は、 次の順序で確認します。
- 宛先IPアドレスとプレフィックスを確認する 確認対象がホストルート、サブネットルート、デフォルトルートのどれに一致しているかを整理します。
- ルーティングテーブルで実際に採用された経路を確認する 経路コード、ネクストホップ、出力インターフェース、メトリックを記録します。
- 同じ宛先に別の経路がないか確認する スタティックルート、他の動的ルーティング、より長いプレフィックスが存在しないかを確認します。
-
経路上の各インターフェースコストを確認する
show ip ospf interfaceを使い、構成図へコストを書き込みます。 -
参照帯域幅と手動コストを確認する
自動計算の前提が全ルーターで統一されているか、
ip ospf costが設定されていないかを確認します。 - OSPF経路種別を確認する O、O IA、O E1、O E2などを区別し、数値だけで比較していないかを確認します。
- 等コスト経路と実際の転送を確認する 複数ネクストホップが登録されている場合は、CEFやトラフィックのハッシュ結果も確認します。
- 戻り経路を確認する 片方向だけでなく、通信先から送信元への経路も確認します。
調査時は、構成図の各リンクへコストを書き込み、 候補経路ごとに合計値を手計算すると、設定ミスを見つけやすくなります。
OSPFコストに関するよくある勘違い
OSPFが直接比較するのはコストです。 参照帯域幅が小さいままだと、100Mbps以上の回線がすべてコスト1になり、 速度差が経路選択へ反映されないことがあります。
OSPFは宛先までの合計コストを比較します。 最初の区間が低コストでも、その先の区間が高コストなら選ばれない場合があります。
[110/20]の110もOSPFコストである
110はアドミニストレーティブディスタンス、20がOSPFメトリックです。 役割が異なります。
ルーターごとにコスト計算の基準が異なると、 ネットワーク全体で一貫した経路設計ができません。
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 bandwidthOSPF path selection intra area inter areaOSPF E1 vs E2 metricshow ospf interface costOSPF equal cost multipath troubleshooting
理解度チェック
次の5問に答えて、OSPFのコストと経路選択を理解できているか確認しましょう。
問題1.同じ宛先プレフィックスに対する同種のOSPF経路が2つあります。経路Aの合計コストは20、経路Bは35です。原則としてどちらが選ばれますか。
- 経路A
- 経路B
- 必ず両方
- Router IDが大きい方
解答を見る
OSPFでは、原則として合計コストが小さい経路が優先されます。
問題2.Cisco IOSでデフォルトの参照帯域幅が100Mbpsの場合、1Gbpsインターフェースのコストはいくつになりますか。
- 0
- 1
- 10
- 100
解答を見る
100 ÷ 1000の計算結果は1未満ですが、OSPFコストの最小値は1です。 そのため100Mbps以上の回線が同じコストになる問題があります。
問題3.O 192.168.10.0/24 [110/25]の25は何を表しますか。
- OSPFプロセスID
- Router ID
- アドミニストレーティブディスタンス
- 宛先までのOSPFメトリック
解答を見る
110がアドミニストレーティブディスタンス、25がOSPFの合計コストです。
問題4.E1経路のメトリックには、何が含まれますか。
- 外部メトリックだけ
- 外部メトリックとASBRまでの内部コスト
- ホップ数だけ
- Router IDの値
解答を見る
E1は、外部メトリックへASBRまでのOSPF内部コストを加算します。
問題5.OSPFの参照帯域幅を変更するとき、最も重要な注意点はどれですか。
- 1台のルーターだけ変更する
- OSPFドメイン内のルーターで値を統一する
- 必ずRouter IDも変更する
- Hello Intervalを0へする
解答を見る
コスト計算の基準をネットワーク全体で統一する必要があります。
実践演習:OSPFが選ぶ経路を判断する
演習1.合計コストを計算する
R1から192.168.100.0/24へ到達する経路が2つあります。 どちらが選ばれるか考えてください。
- R1 → R2:コスト10
- R2 → R4:コスト10
- R4 → 宛先LAN:コスト5
- R1 → R3:コスト5
- R3 → R4:コスト15
- R4 → 宛先LAN:コスト5
経路Bの合計:____
選ばれる経路:____
理由:____________________
演習1の解答を見る
- 経路A:10 + 10 + 5 = 25
- 経路B:5 + 15 + 5 = 25
- 結果:等コスト経路
両方の合計コストが25なので、装置と設定が対応していれば、 2つのネクストホップがルーティングテーブルへ登録されます。
演習2.想定外の経路を切り分ける
次の状況から、確認すべき項目を考えてください。
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つ以上書いてください。
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 costやbandwidthの手動設定を確認show ip route ospf:同じ宛先の経路種別と等コスト経路の有無を確認- 中継ルーターでも各インターフェースコストを確認し、宛先までの合計値を計算
演習3.自分の言葉で説明する
「OSPFはどのように経路を選ぶのですか?」と後輩から質問されました。 1分程度で説明してください。
説明例を見る
OSPFは、各インターフェースに設定されたコストを使って、 宛先までの経路全体の合計コストを計算します。 同じ宛先に同種の経路が複数ある場合は、原則として合計コストが最も小さい経路を選びます。 同じコストの経路が複数あれば、等コスト経路として利用できる場合があります。 ただし、実際には最長一致、経路の学習元、OSPFの経路種別を確認してからコストを比較します。
まとめ
- OSPFコストは、値が小さいほど優先度が高い
- 宛先までの送信インターフェースコストを合計して経路を比較する
- Cisco IOSの自動計算では、参照帯域幅 ÷ インターフェース帯域幅でコストを求める
- デフォルト参照帯域幅が100Mbpsの場合、高速回線を区別できないことがある
- 参照帯域幅はOSPFドメイン内で統一する
ip ospf costを使うと、インターフェースコストを直接設定できる[110/20]では、110がAD、20がOSPFメトリック- 経路種別を確認してからコストを比較する
- 合計コストが同じ経路は、ECMPとして複数登録される場合がある
- 経路変更時は戻り経路、非対称通信、SPF再計算の影響も確認する
OSPFの経路選択を理解するには、構成図へ各リンクのコストを書き込み、 候補経路ごとに合計値を計算することが最も確実です。

コメント