前の話で、OSPF が動く核心の 3 ステップ動作モデル(配る・集める・計算する)を手元に置いた。各ルータが自分の周りのリンクの状態を断片として全員に配り、受け取った側は蓄積する。全員の蓄積場所が揃ったとき、全員が同じ地図を持つ。地図が揃ってから、各自が独立に最短経路を計算する。賢者がいるのではない、地図が揃うから各自の答えが勝手に一致する、までを手元に置いた。
地図共有 + 独立計算の仕組みは、見えた。
けれど、各ルータは地図のなかから「これが最短」と判定するとき、何を頼りにしているのだろう。地図には何が書かれていて、計算の入力として何が効いているのだろう。
ここで、その渇きに正面から向き合う。けれど、答え方には仕掛けがある。先に結論だけ置いておく。これは「距離(通過するルータの数)で測る世界の延長」ではない。
帯域は距離よりも正直だ。物差しの違いは、共有する内容の違いから来ていた。


考えてみよう
本話に入る前に、5 秒だけ自分の頭で先に置いてみてほしい。100Mbps のリンクと 10Gbps のリンクが、同じ「1 つ通過した」として扱われる世界では、何が見えなくなるのだろうか。もし、リンクの帯域そのものを物差しにできたら、最短経路の選び方は、どう変わるのだろうか。
5 秒だけ、先に置いてから読み進めてほしい。本話の §1 と §2 で、その予想に揺さぶりがかかる。
1. 距離だけで測る世界に残っていた違和感
前の話までで、こういう景色を残していた。
OSPF は、各ルータが自分の周りのリンクの状態を断片として全員に配り、受け取った側は蓄積する。全員の蓄積場所が揃うと、全員が同じ地図を持つ。地図が揃ってから、各自が独立に最短経路を計算する。
地図共有 + 独立計算の仕組みは、見えた。
けれど、最短経路を計算するとき、各ルータは地図のなかから「これが最短」と判定する。判定するためには、何かを頼りにしているはずだ。何を頼りにしているのだろう。
ここで、前のシリーズで出会った景色を 1 つだけ呼び戻す。
そのシリーズでは、RIP という距離ベクタ型のプロトコルを観察した。RIP は「隣に聞いて、距離を +1 する」という素朴な動きで経路を選んでいた。距離は「通過するルータの数」で数えていた。これを hop count と呼ぶ。
そのとき、こういう違和感が残っていた。
100Mbps のリンクと 10Gbps のリンクがあったとして、どちらも「1 つ通過した」として hop count は同じ 1 になる。100 倍の差があるリンクが、同じ 1 hop として扱われる。距離だけを見ている世界では、リンクが持つ性質(帯域、太さ、混み具合)は、hop count の 1 という数字のなかに溶けてしまう。
R1 から R5 までの経路を描いたとき、こういう状況が起きうる。
- 経路 A:
R1→R2→R5(hop count = 2、ただし途中のリンクが 100Mbps) - 経路 B:
R1→R3→R4→R5(hop count = 3、途中のリンクは全部 10Gbps)
hop count だけで判定すると、経路 A(2 hop)が選ばれる。けれど、リンクの太さで考えると、経路 B(全部 10Gbps)のほうが、流せるトラフィックの太さは桁違いだ。hop count は「通過するルータの数」しか数えていなくて、リンクの帯域そのものは判定に効かない。
距離だけの世界では、これが構造的な限界だった。
ポイント: RIP は経路を「通過するルータの数(hop count)」で測っていた。100Mbps と 10Gbps が同じ 1 hop として扱われる世界では、リンクが持つ帯域そのものは判定に溶けてしまう。距離だけを見ている世界の構造的な限界が、ここに残っていた。
2. リンクの帯域を物差しにする
前の節で残した違和感に、ここで正面から向き合う。
リンクの帯域そのものを、最短経路を選ぶときの物差しに、できないだろうか。
この問いに、OSPF は明確な答えを持っている。
OSPF では、各リンクに「コスト」と呼ばれる数値を割り当てる。これを cost と呼ぶ(あるいは metric とも呼ばれる)。各リンクに 1 つずつ、整数の cost がある。最短経路を計算するときは、経路上のリンクの cost を合計して、合計が最小になる経路を選ぶ。
ここで、もう 1 段だけ立ち止まる。リンクの cost は、どうやって決まるのだろうか。
OSPF の標準的な決め方は、こうなっている。
cost = 100,000,000 / リンクの帯域 (bps)
分子は、10^8(1 億)。100Mbps を意識して決められた基準値で、これを reference-bandwidth(基準帯域)と呼ぶ(本話では「標準で 100Mbps を基準にしている」までの輪郭で扱う)。リンクの帯域(bps 単位)で割ると、リンクごとの cost が出る。
具体的に、いくつかのリンクで計算してみる。
| リンクの帯域 | 帯域(bps) | cost = 10^8 / 帯域 |
|---|---|---|
| 10Mbps | 1.0 × 10^7 | 10^8 / 10^7 = 10 |
| 100Mbps | 1.0 × 10^8 | 10^8 / 10^8 = 1 |
| 1Gbps | 1.0 × 10^9 | 10^8 / 10^9 = 0.1 → 整数化で 1 |
| 10Gbps | 1.0 × 10^10 | 10^8 / 10^10 = 0.01 → 整数化で 1 |
(cost は整数として扱う規則があり、1 未満は 1 として扱う点だけ、本話では確認のために残しておく。標準の規則のもとでは、100Mbps 以上のリンクは整数化で cost = 1 に揃ってしまう。基準帯域を上げる調整を入れると 1Gbps と 10Gbps を区別できるようになるが、その調整の話は本話の射程外で、後続話で扱う)
ここで本話に効いてくる構造は、もっと素朴な対比のほうだ。
10Mbps のリンクは cost = 10、100Mbps のリンクは cost = 1、1Gbps 以上のリンクは整数化で cost = 1 に揃う。帯域が太いリンクほど、cost が小さくなる。これが「帯域の逆数を物差しにする」という設計の核だ。
帯域が太い = cost が小さい = 経路として選ばれやすい。
経路上の cost を合計して最小のものを選ぶ規則と組み合わせると、自然に「太いリンクを通る経路」が選ばれるようになる。距離(hop count)ではなく、リンクが持つ正直な性質(帯域)が、判定に効いてくる。
ポイント: OSPF は各リンクに cost(metric)という数値を割り当てる。標準では cost = 10^8 / リンクの帯域(bps)で計算される。10Mbps なら cost = 10、100Mbps なら cost = 1、1Gbps 以上は整数化で cost = 1 に揃う(基準帯域を変える調整は本話射程外)。帯域が太い = cost が小さい = 経路として選ばれやすい、という構造で、リンクの帯域そのものが物差しになる。
3. 物差しが変わると、選ばれる経路が変わる
リンクの帯域を物差しにする仕組みは、見えた。
ここから、もう 1 段だけ進む。物差しが変わると、選ばれる経路はどう変わるのだろうか。
§1 で見た「100Mbps と 10Gbps の経路」は、距離だけで測る世界の構造的限界を呼び戻すための例だった。一方で、§2 で確認したように、標準の整数化規則のもとでは 100Mbps も 10Gbps も cost = 1 に揃ってしまう。だから、ここでは整数化が効いた状態でも cost に差が出る別の帯域の組み合わせで、物差しの分岐を見ておく。
R1 から R5 までの 2 経路を、こういう構成で考える。
- 経路 A:
R1→R2→R5(各リンクは10Mbps、hop count = 2) - 経路 B:
R1→R3→R4→R5(各リンクは100Mbps、hop count = 3)
§2 の cost = 10^8 / 帯域(bps) でリンクごとの cost を出す。
10Mbpsのリンク: 帯域1.0 × 10^7 bps→cost = 10^8 / 10^7 = 10100Mbpsのリンク: 帯域1.0 × 10^8 bps→cost = 10^8 / 10^8 = 1
それぞれの経路で、リンクの cost を合計する。
- 経路 A の
cost合計 =10 + 10 = 20 - 経路 B の
cost合計 =1 + 1 + 1 = 3
ここで、hop count と cost の判定が分岐する。
hop countで判定すると、経路 A(2 hop)が選ばれるcostで判定すると、経路 B(cost 合計 = 3が経路 A の20より圧倒的に小さい)が選ばれる
つまり、距離だけを見る世界(RIP の hop count)で選ばれていた経路と、帯域を物差しにする世界(OSPF の cost)で選ばれる経路は、別物になる。物差しを変えると、答えが変わる。
OSPF を喋るルータが計算した最短経路の現在地を、手元で見るには、前の話で出会った show ip route ospf というコマンドが使える。本話の例題と同じ世界での出力では、こういう景色が見える。
R1#show ip route ospf
O 10.1.30.0/24 [110/3] via 10.1.1.3, 00:01:23, GigabitEthernet0/0
O 10.2.1.0/24 [110/20] via 10.1.1.2, 00:00:42, GigabitEthernet0/0
各行の [110/3] の角括弧のなかに、2 つの数字が並んでいる。前の話では「ここでは深入りしない」と言ったが、本話では右側の数字(3 のところ)が、この経路の cost を表している。10.1.30.0/24 への cost は 3(経路 B、100Mbps × 3 hop の合計)、10.2.1.0/24 への cost は 20(経路 A、10Mbps × 2 hop の合計)。
経路上のリンクの cost を合計した値が、この数字として手元に届いている。
(角括弧の左側、110 の数字のほうは、cost ではない別の物差しで、本話では深入りしない。後続話・別シリーズで扱う領域だ)
O から始まる行に、各経路の cost が並ぶ。これが、OSPF の判定の現在地として、ルーティングテーブルに届いた状態だ。


経路選択の分岐がもう少し具体的に見えるように、同じネットワーク図でもう 1 枚並べておく。
ポイント: hop count と cost で判定すると、選ばれる経路が分岐する。本話の例題では、経路 A(10Mbps × 2 hop、cost 合計 = 20)と経路 B(100Mbps × 3 hop、cost 合計 = 3)で hop count なら A、cost なら B が選ばれる。show ip route ospf の
O行の角括弧の右側の数字([110/3]の3)が、その経路の cost。経路上のリンクの cost を合計した値が、判定の現在地として手元に届いている。
4. 物差しの違いは、共有する内容の違いから来ていた
前の節までで観察してきたものを、ここで自分自身の言葉で 1 度だけまとめる。
RIP は、hop count(通過するルータの数)で経路を測っていた。リンクの帯域は、hop count の数字に溶けて見えなくなっていた。
OSPF は、cost(帯域の逆数を整数化した数値)で経路を測る。各リンクに cost が付き、経路上の cost の合計が小さい経路が選ばれる。帯域が太いリンクほど cost が小さくなり、自然と選ばれやすくなる。リンクが持つ正直な性質(帯域)が、判定に効く。
ここで、本話の発想転換を、もう 1 度だけ言葉に置き直す。
OSPF は、ただ「物差しの種類を変えた」プロトコルではなかった。
距離だけを見る世界では、そもそもリンクの帯域そのものを物差しにすることが、構造的にできなかった。RIP の経路情報の更新で他のルータに渡るのは、宛先ごとの hop count(通過するルータの数)だけで、リンクの帯域そのものは metric に載らない。受け取ったルータからは、途中のリンクが太いのか細いのかは見えない。だから、判定材料に帯域は使えない。物差しは、hop count しか持てなかった。
前の話までで見たように、OSPF は、各ルータが「自分の周りのリンクの状態」を断片として全員に配り、受け取った側はそれを蓄積して地図にする世界だった。地図には、リンクが持つ性質(帯域)が、リンクごとに書き込まれている。地図そのものに、リンクの正直な性質が乗っている。
地図にリンクの性質が書かれているから、最短経路を計算するときに、その性質を物差しにできる。cost という数値は、地図に書かれている帯域の情報を、判定可能な数値に変換した結果だ。
物差しが変わったのではない。共有する内容が変わったから、使える物差しが増えた。
これが、本話の核だ。
RIP と OSPF の物差しの違い(hop count vs cost)は、表面的には「数値の決め方が違う」だけに見える。けれど、その背景には「何を共有しているか」の違いがある。距離だけを共有していた世界では、距離しか物差しにできなかった。リンクの状態そのものを共有する世界では、リンクが持つ性質(帯域)が物差しになる。
帯域は距離よりも正直だ。物差しの違いは、共有する内容の違いから来ていた。
現場で show ip route ospf を打って O で始まる行の [110/3] や [110/20] のような数字を読むときには、その右側の数字が「経路上のリンクの帯域を集約した物差し」として手元に届いていることを思い出してほしい。OSPF がリンクの状態を共有しているから、この数字が成立している。
本話の手土産は、この 1 行に集約される。
帯域は距離よりも正直だ。物差しの違いは、共有する内容の違いから来ていた。
ポイント: OSPF は単に物差しの種類を変えたプロトコルではなかった。各ルータがリンクの状態(帯域を含む)を断片として共有しているから、リンクの正直な性質(帯域)を物差しにできる。RIP は経路選択の物差しとして hop count しか metric に載せなかったから、距離だけが物差しになる。物差しの違いは、共有する内容の違いから来ていた。show ip route ospf の
O行の角括弧の右側の数字([110/3]の3など)が、その経路の cost = 経路上のリンクの帯域を集約した値として届いている。
コストが帯域から来る理由
本話の冒頭で抱えていた渇きに、いま、自分の言葉で答えられる。
各ルータは、地図のなかから「これが最短」と判定するとき、何を頼りにしているのか。経路上のリンクに付いている cost の合計を頼りにしている。
地図には何が書かれているのか。リンクの状態(帯域を含む)が書かれている。
RIP の hop count と OSPF の cost は、どこが違うのか。hop count は通過するルータの数、cost は帯域の逆数の合計。物差しの違いは、共有する内容の違いから来ていた。
明日、自分の手元に残るのは、次の 3 行だ。
「OSPF cost = 経路上のリンクの cost の合計、リンクの帯域(bps)の逆数として割り当てられる」
「帯域が太いリンクは cost が小さく、自然と経路として選ばれる」
「物差しの違いは、共有する内容の違いから来ていた」
明日、現場で show ip route ospf を打って O で始まる行の [110/3] や [110/20] のような数字を見るときには、右側の数字が「経路上のリンクの帯域を集約した物差し」として手元に届いていることを、運用感覚として呼び戻してほしい。
けれど、ここで 1 つだけ立ち止まる。
OSPF が距離ではなく帯域で測る理由は、見えた。
けれど — ここまで観察してきた仕組み(隣を見つける挨拶、地図を持ち寄る、帯域を物差しにする)を、実機の出力からはどう読み解くのだろう。手元の景色をどう並べると、OSPF が動いている全体像が見えてくるのだろう。
この問いに、次の話で正面から向き合う。