OSPF のラボ:3台のルーターでダイナミックルーティングをブラウザーで立ち上げる
2つ目のネットワークラボです。生徒の Ubuntu VM 1台の中に5台のマシンを作ります。h1 と h2 はホスト、r1、r2、r3 は FRRouting を動かすルーターで、それぞれ OSPF のデーモンは起動していますが、何も設定されていません。誰もルートを持っていないので、h1 から h2 への最初の ping は失敗し、生徒はエリア 0 で OSPF を設定しなければなりません。
生徒が学ぶこと
設定する前に、OSPF が動く様子を観察します。r1 と r2 のあいだのリンクで、IP プロトコル 89 に絞った tcpdump は、ルーターに話すよう設定するまで静かで、設定すると、ルーターが隣接ルーターに何を、どれくらいの頻度で伝えているかが見えます。vtysh で3台のルーターをエリア 0 で OSPF を設定して、すべてのルーターがすべてのホストのネットワークを学ぶようにし、show ip ospf neighbor ですべての隣接が Full になるのを待ち、OSPF が何を待っているのか、インターフェースに隣接が1つしかないとどう伝えられるのかを突き止めます。
そのあと show ip route ospf と traceroute -n で結果を確認し、r3 の先の管理用ネットワークを広告に含めないようにして、h1 から届かないようにします。
トポロジー
h1 は r1 に、r1 は r2 に、r2 は r3 に、r3 は h2 につながり、r3 の先のリンクに管理用ネットワークがあります。アドレスは、ラボがホームフォルダーに置く README にあります。
ブラウザーで動かす
VM ラボはモジュールにラボ課題として追加し、サンプルはラボのページにあります。このようなリンクでは、隣接が Full になるまでに約40秒かかります。
- ラボを追加する. 自分が教えるモジュールで課題を追加し、「Ubuntu VM ラボ」のカードを選びます。ページにはcompose ファイルの代わりにマシンの短い記述が表示されます。
- サンプルから始める. ページには、そこから始められるネットワークラボが3つ用意されています。Networking lab 2: OSPFを選びます。サンプルを使うとテキストが置き換わりますが、「元に戻す」で自分のテキストに戻せます。
- 公開して自分のコピーを起動する. 「公開」してから「起動」を押します。VM の初回起動時に、ラボ自身の setup スクリプトが Ubuntu のアーカイブから FRRouting をインストールしてトポロジーを作ります。所要時間は約10秒です。
- ターミナルを開く. ターミナルを開き、ホームフォルダーの README.md を読みます。やることが書かれていて、答えは書かれていません。netlab status でマシンの一覧、netlab shell r1 でルーターのコンソールを開けます。
このラボの基本レッスン
OSPF Basics は、このラボで進める小さなレッスンです。このラボは Ubuntu VM で、各手順に説明と、マシンのターミナルにコマンドを入力してルーターの応答を表示する「実行」ボタンが付いています。生徒はマシンを確認し、ネットワークを越えようとして失敗し、OSPF が有効か、何を教えられているかをルーターに尋ねます。
生徒は見て回るだけで、ネットワークを動かすというラボ本来の課題は生徒に任せるので、レッスンは答えを教えません。無料の個人アカウントには、ホームにある Basics モジュールで配布されます。どの学校もライブラリの Basics フォルダから自分のモジュールにコピーでき、新しい学校ではサンプルモジュールの Networking Basics (Sample) に入っています。意図的に小さくしてあり、ラボで進めるレッスンとは何かを教員に見せるためのもので、残りはラボが担います。変更したい場合は、自分のモジュールにコピーしてください。
採点の仕組み
チェックは、新しく起動し直した、保存されたマシンのコピーで実行されるため、生徒が保存した内容だけが見えます。合格になるのは、OSPF の隣接が Full であること、h1 がルーターを通る経路で、OSPF が学んだルートを使って h2 に届くこと、そして管理用ネットワークが広告されず、届かないままであることがすべて成り立つときだけです。
- 配布する. ほかの課題と同じようにラボを配布します。期限を付けることもできます。各生徒には専用の VM が渡され、セッションをまたいで保持されます。
- チェックを実行する. クラス一覧の生徒の行で「チェックを実行」を押します。保存されたマシンのコピーが(元には保存されない形で)起動し、ラボのチェックスクリプトが root で実行されて、合格したか、何を出力したか、いつかが表示されます。結果は生徒には知らされません。
- 採点する. チェックの出力を読みます。生徒が VM を停止すると、クラス一覧にインストールしたパッケージや書いたファイルなどの変更内容も表示されるので、VM を起動せずに採点できます。足りない場合は理由を書いて差し戻します。
GitHub の定義ファイル
このファイルがラボの定義のすべてで、プラットフォームが実行するのと同じテキストです。コピーして自分のトポロジーを作れます。daemons ospfd と書くと、すべてのルーターでプロトコルが起動します。
よくある質問
- なぜ隣接が Full になるまで約40秒かかるのですか?
- このようなリンクでは、OSPF が隣接を Full にするまでに約40秒かかります。何を待っているのか、インターフェースに隣接が1つしかないとどう伝えるのかは、ラボの内容の一部なので、このページでは答えを明かしません。
- 生徒はどのエリアを使いますか?
- 3台のルーターすべてでエリア 0、つまりバックボーンです。チェックもそれを前提としています。
- Cisco の機器なしで OSPF を練習できますか?
- はい。3台のルーターは生徒の VM の中のネットワーク名前空間で、それぞれ FRRouting が動き、コンソールは vtysh です。ラボは実際の状態で採点されます。ネイバーが Full であること、h1 が OSPF で学んだ経路を通って h2 に届くこと、管理ネットワークが広告されていないことです。