このレッスンですること
2つの事務所に、それぞれ相手から見えないプライベートネットワークがあります。VPN トンネルは、パケットを暗号化したパケットで包んで、インターネットをまたいで2つをつなぎます。WireGuard は、トンネルを作るための小さくて新しい方法です。このレッスンでは、トンネルを作る前の2つの拠点を見て回り、何があるかを確かめます。作ることはしません。それはラボ自身の課題です。
始める前に
メモ
このレッスンの上のバーにある ラボを起動 を押してください。このラボは、あなた専用の Ubuntu マシン まるごとで、中に2つの拠点が作られています。コンテナより起動に少し時間がかかります。下の 実行 ボタンは、マシンのターミナルにコマンドを順番に入力します。「マシンはまだ起動中です」と出たら、数秒待ってからもう一度押してください。実行の様子を見たり、自分でコマンドを打ったりするときは、バーの ターミナルを開く(新しいタブ) を押します。
1. マシンを確かめる
ここにあるものはすべて、1台の Ubuntu マシンの中に作られています。ホストもゲートウェイも、それぞれ別々の ネットワーク名前空間(network namespace、1台の中に作った独立したネットワークの部屋)で、自分のアドレスを持っています。wglab status でその一覧が出ます。a1 は拠点 A のホスト、gwA はそのゲートウェイで、b1 と gwB は拠点 B で同じ役目です。ゲートウェイには、インターネットを表すリンク wan0 上に2つ目のアドレスがあり、203.0.113.0/24 の中にあります。
wglab statusここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
2. もう一方の拠点に届くか試す
ping は小さなパケットを送り、答えを待ちます。もう一方の拠点の b1(10.2.0.2)を呼んでみてください。何も届きません。a1 の隣のゲートウェイが理由を返します。Destination Net Unreachable(宛先ネットワークに届きません)、つまり「そのネットワークへの道を知りません」です。2つのプライベートネットワークは、お互いの存在を知りません。
sudo ip netns exec a1 ping -c 2 -W 1 10.2.0.2ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
3. ゲートウェイのルートを読む
ルート(route、経路)は、あるネットワーク宛てのパケットをどこへ送るかを示します。gwA にあるのはちょうど2つです。自分の拠点 10.1.0.0/24 と、インターネット用のリンク 203.0.113.0/24 です。10.2.0.0/24 への行はありません。手順2の ping がここで止まったのは、そのためです。
sudo ip netns exec gwA ip routeここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
4. トンネルはあるか
wg show は、WireGuard のインターフェースを、鍵と接続相手(peer)といっしょに一覧にします。ここでは何も表示されません。トンネルも鍵もまだないからです。探しても何も見つからないコマンドは、何も言わないことが多く、それも1つの答えです。
sudo ip netns exec gwA wg showここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ラボに進みましょう
ヒント
足りないものが分かりました。鍵、各ゲートウェイの設定、そしてトンネルに向かうルートです。これらを作るのが、このラボの課題です。ターミナルで cat README.md と打って、ホームフォルダの README.md を開いてください。何をするかが書いてありますが、答えは書いてありません。
先生へ
ヒント
このレッスンは ラボで進めるレッスン の小さな例です。手順と 実行 ボタンがレッスンで、ラボは生徒一人ひとりのコピーです。このレッスンは VM ラボで進めます。生徒それぞれが、2つの小さな拠点が中に入った自分専用の Ubuntu マシンを持ち、実行ボタンはそのターミナルに入力して、出力を表示します。ラボには、保存された内容からトンネルを採点する確認があります。ハンドシェイク(相手との最初のあいさつの通信)、インターネット側のリンクを流れる通信、ルート、鍵を見ます。自分のモジュールにコピーして変更するか、レッスンビルダーの ラボ メニューから一から作ってください。