OSPFのメトリックとは
OSPF(Open Shortest Path First)のメトリックは、ネットワーク内の各リンクに関連付けられた値で、ルーティング決定時に最適なパスを選択するために使用されます。このメトリックは、各ルーターがリンクコストを比較して、最も低いコストのパスを選択するために利用されます。
OSPFでは、メトリックとして「コスト」が使用され、コストは帯域幅に基づいて計算されます。具体的には、デフォルトでは次のように計算されます:
コスト=100,000,000リンクの帯域幅(bps)\{リンクの帯域幅(bps)}
例えば、帯域幅が100 Mbps(100,000,000 bps)のリンクのコストは1になります。リンクの帯域幅が高いほどコストが低くなり、優先されます。
メトリックの設定
OSPFのメトリックを変更するにはコストを直接変更する方法と帯域に関する設定を変更する方法の2種類があります。
基本構文(コストの変更)
ip ospf cost cost コマンドを使用することでIFのcostを変更することが出来ます。
Router(config)#interface interface-id
Router(config-if)#ip ospf cost cost
基本構文(帯域の変更)
コストの算出式に関わるIFの帯域幅を変更することでもコストを変更することが出来ます。
bandwidth kbpsコマンドを使用します。
Router(config)#interface interface-id
Router(config-if)#bandwidth bandwidth
動作確認

上図の構成の場合、R1からR3のLoアドレス:3.3.3.3までの通信経路はGi0/2とGi0/4から出力する2つの経路がありますが、どちらも同じ帯域なので等コストとなるので2つのIFから通信されます。

OSPFのメトリックを変更するにはコストを直接変更する方法と帯域に関する設定を変更する方法の2種類があります。
コストの変更
Gi0/2のコストを変更します。
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#int g0/2
R1(config-if)#ip ospf cost 10
G0/2のcostを10に変更されました。show ip ospf interface briefコマンドで確認ができます。

コストがGi0/4は1、Gi0/2は10になったことにより、コストが低い方が優先されるのでR3までの通信経路はGi0/4のみとなりました。

帯域の変更
現在の帯域を確認します。
R1#show interfaces gi0/2 | i BW
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
R1#show interfaces gi0/4 | i BW
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
R1#
帯域を変更します。
R1(config)#int g0/2
R1(config-if)#bandwidth 10000000
R1(config-if)#end
R1#show interfaces gi0/2 | i BW
MTU 1500 bytes, BW 10000000 Kbit/sec, DLY 10 usec,
R1#show interfaces gi0/4 | i BW
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
ただしcostを確認したところどちらも1で変更はありません。

これはコストの計算式が100Mbps÷帯域幅で算出され、かつ1以下はすべて1となるためです。
Gi0/2 = 100Mbps ÷ 10000000Kbit(10000Mbps) = 0.01
Gi0/4 = 100Mbps ÷ 1000000Kbit(1000Mbps) = 0.1
OSPFの内部では0.01も0.1も1と認識されます。
OSPFのコスト計算式の変更
OSPFのコスト値の算出式に使用される分子の値を変えることが可能です。
auto-cost reference-bandwidth <帯域幅値(mbps)>コマンドを使用することで変更できます。
以下の設定では算出式の分子の値を10000に変更します。
R1(config)#router ospf 1
R1(config-router)#auto-cost reference-bandwidth 10000
% OSPF: Reference bandwidth is changed.
Please ensure reference bandwidth is consistent across all routers.
R1(config-router)#end
リファレンス帯域幅を変更する場合、ネットワーク内のすべてのOSPFルーターで同じリファレンス帯域幅を設定する必要があります。そうしないと、一貫性のないコスト計算が行われ、ネットワークの安定性に影響を与える可能性があります。
計算式が変わったことでcostが変更されました。
Gi0/2 = 10000Mbps ÷ 10000000Kbit(10000Mbps) = 1
Gi0/4 = 10000Mbps ÷ 1000000Kbit(1000Mbps) = 10

costが低いIFが優先されるため、R3までの通信はGi0/2のIFが使用されます。
