OSPFのコスト(=メトリック)の計算方法

OSPFのコストを計算する方法を解説します。

 OSPFのコストの計算式

OSPFのコストの計算式は以下の通りです。

100,000,000は、100Mbpsと覚えておくと便利です。

また、帯域幅というのは、インタフェースの帯域幅となります。
例えば、FastEthernetのインタフェースの帯域幅は、100Mbpsですので、bpsに直すと、100,000,000bpsとなりますので、コストは、「1」ということになります。

代表的なインタフェースのタイプごとの、コスト値を以下に記します。

インタフェースのタイプ (帯域幅)コスト
Ethernet (10Mbps)10
FastEthernet (100Mbps)1
GigabitEthernet (1,000Mbps)1
Serial :T1 (1,544Kbps)64
Serial:INS回線等 (64Kbps)1,562

GigabitEthernet(1,000Mbps)は、1,000,000,000bpsとなるので、計算結果は、「0.1」となりますが、コスト値には整数しか使えないため、小数点未満は切り捨てとなり、1未満は繰り上げとなるので、FastEthernetと同じコスト値である「1」ということになります。

OSPFでは、宛先ネットワークまでのコスト計算に、この値を利用するため、以下の図のように、FastEhternetでもGigabitEthernetでも宛先ネットワークまでのコストが同一となってしまうことがあります。

本来であれば、宛先ネットワークまで帯域幅が大きい、GigabitEthernetの経路を使いたいところですが、コストの計算式上、このようなことになってしまいます。

このような事態を防ぐ方法として、コストを変更する方法が3つあります。

コストを変更する方法

①計算式の基準値を変更する

コストの計算式は、前述したとおりですが、基準値を変更することが可能です。
例えば、以下のように10倍に基準値を変更できます。

こうすることで、
■ FastEthernetのコスト値 = 10
■ GigabitEthernetのコスト値 = 1
にすることが可能となり、帯域の広いGigabitEthernetの経路が使われることになります。

Ciscoの機器であれば、以下のコマンドで変更することが可能です。

<value> = Mbps指定 1~4294967の範囲で指定

ただし、この方法では、OSPFが動作するすべてのルータに対して設定変更が必要となるため、設計フェーズ段階で導入を検討しておく必要があります。

②手動でインタフェースに設定する

①の手法では、すべてのルータに設定変更が必要でしたが、対象となるインタフェースに手動でコスト値を設定することができます。

この方法であれば、すべてのルータに変更は必要ではないため、一般的にはこの手法が多く使われています。

Ciscoの機器であれば、以下のコマンドで変更することが可能です。

<value> = 1~65535の範囲でコスト値を指定

③手動でインタフェースの帯域幅を設定する

コスト値の計算式に利用されている帯域幅は、インタフェースの帯域幅ですので、この帯域幅の値を手動で設定することで、コスト値を変更することが可能です。

Ciscoの機器であれば、以下のコマンドで変更することが可能です。

<value> = kbpsで指定

ただし、物理リンクの帯域幅と論理リンクの帯域幅が違うことになってしまい、誤解が生まれやすく、設定によってはQoS設定などにも影響してしまうため、一般的には利用されていません。