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

無料レッスン

つながらない原因を探す

このレッスンのあとで: 出力を読んで、つながらない原因を一つに絞れる。

45分のレッスンコマンド5件スタティックルーティングのラボ:小さなネットワークの経路をブラウザーで作る

事務所のパソコンがネットにつながらない

ネットワークの切り分けとは、つながらない原因を、近い所から順に確かめて絞ることです。順番を決めておくと、どこで止まったかがすぐ分かります。

朝、制作のパソコンがネットにつながらないと言われたとします。pingと経路表を使って、原因を見つける手順を身につけましょう。

このレッスンのゴール

メモ

出力を読んで、つながらない原因を一つに絞れる。

重要な言葉

ことばいみ
切り分け原因がある場所を、少しずつ絞ること
ping相手に届くかを調べる小さな問いかけ
経路表どこへどう送るかを書いたルーターの表
タイムアウト待っても返事が来ないこと
名前解決DNSで名前をアドレスに変えること
ホップパケットが通るルーターの一つ

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

近い所から順に確かめる

遠くの相手から調べると、どこが悪いのか分かりません。まず自分、次に出口、その次に外、最後に名前の順に調べます。

一つ前の段階が通ったら、次へ進みます。止まった段階が、原因のある場所です。

例:調べる四つの段階

段階調べること使う道具
1自分のアドレスと出口ip route get
2出口のルーターに届くかping(出口のアドレス)
3外のアドレスに届くかping、traceroute
4名前がアドレスになるかping(名前)、dig

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

h1が出口をどう選ぶか

コマンド
sudo ip netns exec h1 ip route get 10.0.1.1

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

出口のルーターにping

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

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

段階2までは通っている

一つ目は 10.0.1.1 dev to-r1 で始まり、via がありません。出口のルーター r1 は、h1 と同じネットワークにいます。

二つ目は、二回とも返事が来て、0% packet loss と出ます。h1 から出口までは、問題がありません。

ping の失敗の文面で原因が絞れる

pingは、失敗の理由によって違う文を出します。文面を読むと、原因が近い場所か遠い場所かが分かります。

Destination Host Unreachable は、同じネットワークの相手が見つからないという意味です。Destination Net Unreachable は、途中のルーターに道が無いという意味です。

例:出力と考えられる原因

出力意味次に調べる所
Destination Host Unreachable同じネットワークの相手が見つからない相手の電源とケーブル
Destination Net Unreachable送り先のルーターに道が無いそのルーターの経路表
100% packet loss だけ返事が来ない途中のルールや帰り道
Name or service not known名前がアドレスにならないDNSの設定

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

h1からh2へping

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

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

通るルーターをたどる

コマンド
sudo ip netns exec h1 traceroute -n -m 4 -w 1 10.0.3.2

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

r1にどこへ送るか聞く

コマンド
sudo ip netns exec r1 ip route get 10.0.3.2

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

パケットはr1で止まった

ping は From 10.0.1.1 ... Destination Net Unreachable を二回出します。送ったのは h2 ではなく、出口の r1 です。

traceroute には 10.0.1.1 の一つだけが !N つきで出ます。r1 は Network is unreachable と答えます。r1 の経路表に、10.0.3.0/24 の行が無いのが原因です。

名前だけが通らないときは名前解決

アドレスを打つと通るのに、名前を打つと通らないことがあります。これは、DNSの設定か、DNSサーバーに届いていないことが原因です。

Name or service not known や Temporary failure in name resolution が出たら、道は無事で、名前の問題だと考えられます。

例:アドレスと名前の組み合わせ

アドレスで試すと名前で試すと原因の見当
通る通る問題なし
通る通らないDNSの設定
通らない通らない経路かルール

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

よくある間違い

注意

pingが通らないのは、相手が壊れているからだと思いがちです。途中で止まっていることも、相手がpingを断る設定のこともあります。一つの結果で決めず、近い所から順に確かめます。

さらに挑戦:帰り道が無いとき

ラボが動いたら、sudo ip netns exec r2 ip route を実行しましょう。r2 が h1 へ返事を送れるのは、どの行のおかげでしょうか。

行が無いと、行きの ping は届いても返事が戻らず、100% packet loss だけが出ます。自分の diagnose で、その出力の答えを確かめましょう。

このラボとソースについて: スタティックルーティングのラボ:小さなネットワークの経路をブラウザーで作る

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