クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

ルーターが最短経路を見つける(OSPF)

このレッスンのあとで: OSPFのルーターがネットワークを学ぶ仕組みを説明できる。

55分のレッスンコマンド4件OSPF のラボ:3台のルーターでダイナミックルーティングをブラウザーで立ち上げる

道が閉まっても電話は要らない

宅配会社は、町ごとに営業所を持っています。ある道が通行止めになっても、本社が全営業所に電話をかけることはありません。

各営業所は、自分の周りの道で起きた変化を、隣の営業所に伝えます。一分もしないうちに、全営業所が同じ地図を持ちます。

OSPFは、ルーターにこれと同じことをさせます。

このレッスンのゴール

メモ

OSPFのルーターがネットワークを学ぶ仕組みを説明できる。

重要な言葉

ことばいみれい
隣接ルーター同じ線の上にいて、同じくOSPFを使うルーター。ネイバーとも呼ぶ
Helloパケット隣を見つけ、つながりを保つための短い知らせ
リンクステートDBルーターが持つ、全ルーターと全リンクの地図
コストリンクを避けたい度合いを表す数。小さいほどよい
エリア一つの地図を共有するルーターの集まりarea 0
最短経路コストの合計が一番小さい道

学生が入力するセルは、このプレビューでは空白です。

静的経路は大きな網に向かない

静的経路は一度書いたら変わりません。リンクが切れても経路は残り、パケットは失われます。

ルーターが五十台ある網で、全部の行を手で書く人はいません。そこで、ルーター同士が知っていることを共有するルーティングプロトコルを使います。

OSPFは、全ルーターが完全な地図を作るプロトコルです。

ルーターはHelloで出会う

OSPFを使う口から、ルーターはHelloパケットを出します。同じ線の上でそれを聞いたルーターは、返事をします。

お互いの声が聞こえた二台は隣接ルーターになり、持っている地図を交換します。地図が揃うと、状態はFullになります。

OSPFはIPの上を直接走り、プロトコル番号は89です。

例: 隣接の状態

状態意味
DownHelloをまだ聞いていない
InitHelloを聞いたが、相手の一覧に自分がいない
2-Wayお互いの声が聞こえている
ExStart交換をどちらが主導するかを決めている
Exchange地図の概要を交換している
Loading足りない部分を取り寄せている
Full地図が揃った。この隣は使える

学生が入力するセルは、このプレビューでは空白です。

各ルーターで動くプログラムを見る

コマンド
netlab status

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

r2に隣接ルーターを聞く

コマンド
sudo vtysh -N r2 -c "show ip ospf neighbor"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

OSPFなしのr2の表を読む

コマンド
sudo vtysh -N r2 -c "show ip route"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

三つの答えが言うこと

netlab status は、各ルーターの最後に daemons: の行を出します。デーモンは裏で動き続けるプログラムで、ospfd がOSPFのものです。

隣を聞くと % OSPF is not enabled in vrf default と出ます。プログラムは動いていますが、どの口で使うか誰も決めていません。

表の実行は、直接つながった経路の C と、ルーター自身のアドレスの L だけを並べます。OSPFで学んだ経路を表す O の行はありません。

全ルーターが同じ地図を作る

各ルーターは、自分のリンクをリンクステート広告という知らせに書き、隣に送ります。隣はそれをさらに先へ回します。

まもなく全ルーターが同じリンクステートDBを持ちます。これはエリアの中の全ルーターと全リンクの地図です。

経路は、各ルーターが、その地図から自分で計算します。

コストが道の良し悪しを決める

各リンクにはコストがあります。初期値はリンクの速さで決まり、速いほど小さくなります。人が手で決めることもできます。

ルーターは、基準の速さ(変えなければ100 Mbit/s)をリンクの速さで割ります。コストは1より小さくなりません。

道のコストは、通るリンクのコストの合計です。OSPFが選ぶ最短経路は、ルーターの数が少ない道ではなく、合計が小さい道です。

ルーターの口を読む

コマンド
sudo vtysh -N r2 -c "show interface to-r1"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

よくある間違い

注意

「OSPFはルーターの数が一番少ない道を選ぶ」と思う人が多いです。選ぶ基準は、リンクのコストの合計です。安いリンク三本の道が、高いリンク一本の道に勝つことがあります。

各ルーターが最短経路を計算する

ルーターは、コスト0の自分から始めます。まだ確定していないルーターのうち、一番近いものを選び、そこから出るリンクのコストを足していきます。

全ルーターが確定するまで繰り返します。結果は、各ルーターまでの一番安いコストと、最初に使うホップです。

例: r1が順に確定する

手順確定r1からのコスト理由
1r10出発点
2r45r1とr4のリンクが5
3r210r1とr2のリンクが10
4r320r2経由の10+10が、5+30に勝つ
5r521r3経由の20+1

学生が入力するセルは、このプレビューでは空白です。

発展: 安いリンク一本で全部変わる

例の表で、r4とr3のリンクのコストを30から12に変えましょう。そして、r1から全ルーターを紙の上でもう一度確定させます。

r1は、r3とr5へ行くとき、最初のホップにどこを使いますか。それぞれのコストはいくつですか。LINKSのその行を変えて、自分の shortest_path で答えを確かめましょう。

このラボとソースについて: OSPF のラボ:3台のルーターでダイナミックルーティングをブラウザーで立ち上げる

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。