このレッスンですること
普通のスイッチでは、つながっているパソコンすべてが、お互いの通信を聞き取れます。VLAN は、1台のスイッチをいくつかの別々のネットワークに分けるしくみです。経理の部署と来客用のネットワークを分ければ、お互いは見えなくなります。許可したときだけ両者をつなぐのが ルーター(router)です。このレッスンでは、VLAN を作る前の小さなネットワークを見て回り、何があるかを確かめます。作ることはしません。それはラボ自身の課題です。
始める前に
メモ
このレッスンの上のバーにある ラボを起動 を押してください。このラボは、あなた専用の Ubuntu マシン まるごとで、中に小さなネットワークが作られています。コンテナより起動に少し時間がかかります。下の 実行 ボタンは、マシンのターミナルにコマンドを順番に入力します。「マシンはまだ起動中です」と出たら、数秒待ってからもう一度押してください。実行の様子を見たり、自分でコマンドを打ったりするときは、バーの ターミナルを開く(新しいタブ) を押します。
1. マシンを確かめる
ここにあるものはすべて、1台の Ubuntu マシンの中に作られています。スイッチ sw、ルーター r1、パソコン h10、h20、srv は、それぞれ別々の ネットワーク名前空間(network namespace、1台の中に作った独立したネットワークの部屋)です。vlanlab status でその一覧が出ます。h10 と srv のアドレスは 10.10.0 で始まり、h20 は 10.20.0 で始まります。つまり2つのネットワークに分けるつもりの機器です。最後にスイッチの VLAN 表が出ます。p-h10 から p-r1 までのポートは、すべて VLAN 1 に入っていて、ほかには何もありません。ルーターにはまだアドレスが1つもありません。
vlanlab statusここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
2. 本当に分かれているか
arping は「このアドレスを持っているのは誰ですか」と、ルーターを通さずスイッチ越しにそのまま尋ねます。h20 は srv と別のネットワークにいるはずなのに、srv は2回とも自分のハードウェアアドレスで答えます。すべてのポートが VLAN 1 にあると、スイッチは何でも全員に通してしまうからです。ラボではこれを変えます。
sudo ip netns exec h20 arping -c 2 -I eth0 10.10.0.100ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
3. 別のネットワークに呼びかける
今度は h10 から、別のネットワークにある h20(10.20.0.11)を呼びます。パケットは h10 のゲートウェイ(出入口になる機器)10.10.0.1 に向かいますが、答えるものはありません。そのアドレスを持つマシンがまだないからです。ping の結果は 2 packets transmitted, 0 received, 100% packet loss になります。
sudo ip netns exec h10 ping -c 2 -W 1 10.20.0.11ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
4. ルーターの1本のケーブルを見る
router on a stick(ルーター・オン・ア・スティック)は、ルーターとスイッチを1本のケーブルだけでつなぎ、その1本で2つの VLAN の通信を扱う方式です。ここではそのケーブルが eth0 です。eth0 は動いていますが、付いているアドレスは fe80:: で始まるリンクローカルアドレスだけで、自動的に作られたものです。ホストが探しているゲートウェイのアドレスは1つもありません。しかも、このケーブルの上で2つの VLAN を見分ける手がかりもありません。
sudo ip netns exec r1 ip -br addr show dev eth0ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ラボに進みましょう
ヒント
足りないものが分かりました。スイッチの VLAN、ルーターに VLAN ごとに作るサブインターフェース(1本のケーブルを論理的に分けたもの)、そして VLAN 間のルーティングです。これらを作るのが、このラボの課題です。ターミナルで cat README.md と打って、ホームフォルダの README.md を開いてください。何をするかが書いてありますが、答えは書いてありません。
先生へ
ヒント
このレッスンは ラボで進めるレッスン の小さな例です。手順と 実行 ボタンがレッスンで、ラボは生徒一人ひとりのコピーです。このレッスンは VM ラボで進めます。生徒それぞれが、スイッチ1台、ルーター1台、パソコン3台が中に入った自分専用の Ubuntu マシンを持ち、実行ボタンはそのターミナルに入力して、出力を表示します。ラボには、各パソコンが届く先と届かない先を試して、完成したネットワークを採点する確認があります。自分のモジュールにコピーして変更するか、レッスンビルダーの ラボ メニューから一から作ってください。