OSPF メトリック

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のコストを変更します。

G0/2のcostを10に変更されました。show ip ospf interface briefコマンドで確認ができます。

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

帯域の変更

現在の帯域を確認します。

帯域を変更します。

ただし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に変更します。

リファレンス帯域幅を変更する場合、ネットワーク内のすべてのOSPFルーターで同じリファレンス帯域幅を設定する必要があります。そうしないと、一貫性のないコスト計算が行われ、ネットワークの安定性に影響を与える可能性があります。

計算式が変わったことでcostが変更されました。

Gi0/2 = 10000Mbps ÷ 10000000Kbit(10000Mbps) = 1
Gi0/4 = 10000Mbps ÷ 1000000Kbit(1000Mbps) = 10

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