OSPFのメトリック

OSPFの最適ルートの選択基準であるメトリックには、「パスコスト」を利用します。宛先ネットワークまでの経路上のコストを累積していき、最もコストが小さい経路が最適経路として、ルーティングテーブルに採用されます。パスコストによって、宛先ネットワークまでの距離を計測していると考えてください。

コストの決定は、Ciscoルータの実装ではデフォルトで帯域幅から自動的に計算されます。Cisco以外のベンダのルータも帯域幅から自動で計算していることが多いようです。Ciscoルータの実装でコストを計算する式は、デフォルトで次の通りです。

OSPFコストの計算式(Cisco)

100(Mbps) / インタフェースの帯域幅(Mbps)

たとえば、10Mbpsのイーサネットであればコストは10、1.544Mbpsの専用線であればコストは64です。コストの値は、帯域幅が大きいほど小さくなるので、OSPFによる最適ルートの選択はデフォルトでは帯域幅が大きい経路を優先することになります。

ただし、小数点以下を考慮しないため、この計算式では100Mbps以上の帯域幅に対してはすべて1というコストになります。100Mbps以上のリンクが存在する場合には、正しくネットワークの帯域幅を反映できない可能性があります。そのため、インタフェースの帯域幅によらずに、管理者が手動でコマンドによってコスト値を設定することもできます。

また、コストの計算式のパラメータ自体をより高速なインタフェースに対応できるように変更することもできます。ただし、OSPFコストの計算式を変更するときは、すべてのOSPFルータで変更してください。計算式を変更しているルータと変更していないルータが混在すると、同じ帯域幅のインタフェースでもコストの計算結果が異なり、正しく最適ルートを決定できなくなります。

以下の表は、Ciscoルータにおける代表的なインタフェースごとのデフォルトのコスト値をまとめたものです。

インタフェースタイプ コスト(100Mbps/帯域幅)
ファストイーサネット 1
イーサネット 10
HSSI(45Mbps) 2
T1(1.544Mbps) 64
DS0(64kbps) 1562

パスコストの例

累積のコストを計算するにはSPFアルゴリズムを実行します。わかりやすく考えると、RIPのようにOSPFルートが流れてくると仮定した場合に、ルートを受信するインタフェースのコストが累積されます。簡単な累積コストの例が次の図です。R1から見て、192.168.1.0/24までのパスコストは、図のベージュ部分のコスト値を累積したものになります。

 図 OSPFパスコストの例
図 OSPFパスコストの例
OSPFでは図のようにネットワークアドレス/サブネットマスク+メトリックの形式になっているとは限りません。あくまでもわかりやすくするためのものです。

もし、最小コストとなる経路が複数存在する場合には、その経路を利用して等コストロードバランスを行うことができます。

OSPFコストの変更

OSPFのメトリックであるコストを変更して、最適ルートの決定を制御できます。OSPFコストの変更は、3通りあります。

  1. OSPFコストを直接設定する
  2. インタフェースの帯域幅(BW)を変更する
  3. コストの計算式の分子(reference-bandwidth)を変更する

OSPFコストを直接設定する

OSPFコストを直接設定するには、インタフェースコンフィグレーションモードで次のコマンドです。

OSPFコストの変更

(config-if)#ip ospf cost <cost>

<cost> : OSPFコスト

インタフェースの帯域幅(BW)を変更する

インタフェースの帯域幅を変更するには、インタフェースコンフィグレーションモードで次のコマンドです。

帯域幅の変更

(config-if)#bandwidth <BW>

<BW> : 帯域幅(kbps)

コストの計算式の分子(reference-bandwidth)を変更する

コストの計算式の分子を変更するには、OSPFコンフィグレーションモードで次のコマンドを利用します。

コストの計算式の分子を変更

(config)#router ospf < process-id >
(config-router)#auto-cost reference-bandwidth < bandwidth >

< process-id > : OSPFプロセスID
< bandwidth > : コスト計算式の分子Mbps単位

以下の図にOSPFのコスト変更をまとめています。

図 OSPFコストの設定
図 OSPFコストの設定

コストの変更は、単体のルータだけではなく全体としてコストの値の一貫性が保てるようにしてください。特に計算式の分子を変更する設定は、すべてのOSPFルータで同じ設定をしておくことが重要です。

OSPFコストの確認

OSPFのコストを確認するには、主に次のコマンドを利用します。

  • show ip ospf interface
  • show interface
  • show ip protocols

show ip ospf interface

OSPFコストを確認するには、show ip ospf interfaceコマンドが一番わかりやすいです。特にbriefをつけると、OSPFが有効なインタフェースごとのコストの値がすぐにわかります。

R1#show ip ospf interface brief
Interface    PID   Area            IP Address/Mask    Cost  State Nbrs F/C
Se2/0        1     0               Unnumbered Fa0/0   64    P2P   1/1
Fa0/0        1     0               192.168.12.1/24    1     BDR   0/1
R1#show ip ospf interface FastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
  Internet Address 192.168.12.1/24, Area 0
  Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 1.1.1.1, Interface address 192.168.12.1
  No backup designated router on this network
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:01
  Supports Link-local Signaling (LLS)
  Index 1/1, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 0, maximum is 0
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 1, Adjacent neighbor count is 0
  Suppress hello for 0 neighbor(s)

show interface

show interfaceコマンドはOSPFコスト計算に利用するBWを確認します。

R1#show interface FastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
  Hardware is AmdFE, address is cc01.29a8.0000 (bia cc01.29a8.0000)
  Internet address is 192.168.12.1/24
  MTU 1500 bytes, BW 100000 Kbit/sec, DLY 100 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Full-duplex, 100Mb/s, 100BaseTX/FX
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input 00:00:01, output 00:00:00, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
~省略~

show ip protocols

show ip protocolsコマンドで、OSPFコストの計算式の分子の値であるreference-bandwidthを確認できます。

R1#show ip protocols
Routing Protocol is "ospf 1"
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is not set
  Router ID 1.1.1.1
  Number of areas in this router is 1. 1 normal 0 stub 0 nssa
  Maximum path: 4
  Routing for Networks:
    192.168.12.0 0.0.0.255 area 0
 Reference bandwidth unit is 100 mbps
  Routing Information Sources:
    Gateway         Distance      Last Update
    2.2.2.2              110      00:00:00
  Distance: (default is 110)

OSPFの仕組み