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

無料レッスン

BGP の基本

レッスン全文をここで読めます。無料アカウントを作成すると、実際のラボで実践できます。

仮想マシンラボ読了目安 8分コマンド5個

このレッスンですること

ネットワークは、パケットを次へ渡すルーターと、パケットを送ったり受け取ったりするホストでできています。ここでは r1 が AS 65001 というひとつのネットワーク全体、r2 が AS 65002 という別のネットワーク全体です。自律システム(AS)とは、ひとつの組織が持つネットワークのこと。BGP は、インターネット上の組織どうしが「自分のところにはここまで届くよ」と教え合うための仕組みです。

3つめのネットワークのラボを見て回り、届かないパケットを送って、その理由を調べます。直すところまではやりません。それはラボ自身の課題です。

始める前に

メモ

このレッスンの上のバーでラボを起動を押してください。このラボは、自分専用のUbuntu マシンまるごとで、その中に小さなネットワークが作ってあります。コンテナより起動に少し時間がかかります。下の実行ボタンは、コマンドをマシンのターミナルに順番に入力してくれます。「マシンはまだ起動中です」と出たら、数秒待ってからもう一度押してください。入力の様子を見たり、自分でコマンドを打ったりするときは、バーのターミナルを開く(新しいタブ)を押します。

1. マシンを確かめよう

ここにあるものはすべて、あなたの Ubuntu マシンの中に作られています。ルーターもホストも、それぞれ別々のネットワーク名前空間(network namespace)で、自分のアドレスを持っています。netlab status で一覧が見られます。r1 と r2 がルーターで、どちらも BGP のプログラム bgpd を動かしています。priv は r2 の奥にあるプライベートネットワークです。to- で始まる名前はネットワークケーブル、数字はアドレスです。

コマンド
netlab status

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

2. となりのルーターと話そう

2台のルーターは1本のケーブルでつながっているので、お互いに話せます。次は r1 から r2 に ping を送ります。

コマンド
sudo ip netns exec r1 ping -c 2 -W 1 10.0.12.2

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

3. ネットワークを越えてみよう

今度は向こう側のホスト 10.0.3.2 に送ります。ping は小さなパケットを送って、返事を待つコマンドです。何も届きません。h1 のとなりのルーターが、理由を教えてくれます。Destination Net Unreachable(宛先ネットワークに届きません)、つまり「そのネットワークへの道を知りません」という意味です。

コマンド
sudo ip netns exec h1 ping -c 2 -W 1 10.0.3.2

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

4. BGP が動いているか聞こう

show bgp summary は、このルーターが BGP のセッションを張っている相手の一覧を出します。プログラムは動いていますが、まだだれも BGP を設定していないので、聞く相手のインスタンスさえありません。

コマンド
sudo vtysh -N r1 -c "show bgp summary"

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

5. r1 が何を知っているか聞こう

BGP がないと、r1 が知っているのは、つながっている2つのネットワークだけです。C(connected、直接つながっている)と L(自分のアドレス)の印がついた行がそれです。h2 がいるネットワークは載っていません。だから手順3は失敗したのです。

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

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

ラボに取り組もう

ヒント

パケットがどこで止まるか、そしてなぜ止まるかが分かりました。動くようにするのはこのラボの課題です。ターミナルで cat README.md を実行して、ホームフォルダの README.md を開いてください。やることが書いてありますが、答えは書いてありません。

先生へ

ヒント

このレッスンは、ラボで進めるレッスンの小さな例です。手順と実行ボタンがレッスンで、ラボは生徒ひとりひとりのコピーです。これは VM ラボのレッスンで、生徒はそれぞれ自分の Ubuntu マシンを持ち、その中に2つの自律システムがあります。ラボのチェックは、セッションが Established になっていること、そしてプライベートネットワークが広告されていないことを見ます。ご自分のモジュールにコピーして変更するか、レッスンビルダーのラボメニューから一から作ってください。

このラボとソースについて: BGP のラボ:2つの自律システムをブラウザーでつなぐ

授業で教えていますか?これらのレッスンを生徒に割り当て、採点と生徒ごとのラボを使えます。