LinuCレベル1 102試験の例題と解説
1.07.3基本的なネットワークの問題解決
今回は、LinuCレベル1 102試験の試験範囲から、「1.07.3 基本的なネットワークの問題解決」についての例題を解いてみます。ネットワーク接続に問題が起きたときに必ず役立つコマンドについて学んでみましょう。
例題
下記のコマンドの解説として、正しいものを一つ選択してください。
「traceroute」
- 指定ホストまでのネットワーク経路を確認できる
- 名前解決ができる
- ホストが現在実行している接続一覧とそのステータスを確認できる
- TCP/UDPの接続確認を行うことができる
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「1. 指定ホストまでのネットワーク経路を確認できる」です。
tracerouteは、指定したホストまでのネットワーク経路を表示するコマンドです。ネットワーク接続に問題が発生したとき等に、どの部分で問題が起きているのか確認することができます。
構文は以下の通りです。
# traceroute [オプション] 接続先
仕組みとしてはIPパケットのTTLを活用しています。
最初にTTLを1に設定して ICMPパケットを送信します。そうすると1番目のルータが受け取った時点で TTLは1減算されるため、ルータはTTLがなくなったことを通知します。これを受けてTTLを2にして送信、2番目のルータは同じくTTLがなくなったことを通知します。
これを繰り返すことで、目的のホストまでの経路情報を取得します。
tracerouteには下記のようなオプションもあります。
-q 回数
一ヶ所ごとのパケット送信回数(デフォルトは3回)
-w 秒数
応答の待ち時間(デフォルトは5秒)
-d
デバッグモードを有効にする
-I
ICMPを使用する
-n
ホストまでの経路に表示されるIPアドレスの名前解決を行わない
tracerouteの検索結果は下記のようになります。
# traceroute www.example.com
traceroute to www.example.com (192.168.7.123), 30 hops max, 60 byte packets
1 * * *
2 192.168.0.12 (192.168.0.12) 1.279 ms 1.230 ms 1.164 ms
3 gate.example.co.jp (192.168.2.23) 1.108 ms 1.039 ms 0.969 ms
4 192.168.3.10 (192.168.3.10) 2.923 ms 2.874 ms 2.811 ms
5 192.168.4.10 (192.168.4.10) 2.867 ms 2.794 ms 2.816 ms
6 example..example.ne.jp (192.168.5.12) 3.434 ms 3.192 ms 3.677 ms
7 example.b.example.ne.jp (192.168.6.12) 4.317 ms 4.234 ms 4.243 ms
(以下省略)
また、同じような機能であるコマンドとして「ping」があります。
pingは、ホストに対して直接パケットを送ることで反応があるかを確認します。検索結果は下記のようになります。
# ping www.example.com
PING www.example.com (192.168.0.12) 56(84) bytes of data.
64 bytes from server.example.com (192.168.0.12): icmp_seq=1 ttl=43 time=255 ms
64 bytes from server.example.com (192.168.0.12): icmp_seq=2 ttl=43 time=255 ms
64 bytes from server.example.com (192.168.0.12): icmp_seq=3 ttl=43 time=255 ms
64 bytes from server.example.com (192.168.0.12): icmp_seq=4 ttl=43 time=255 ms
(以下省略)
例えば、pingで指定ホストから反応がない場合はtracerouteで原因を調査していくという流れになります。
選択肢の解説は以下です。
[1. 指定ホストまでのネットワーク経路を確認できる ]
正解です。
[2. 名前解決ができる]
誤りです。
名前解決ができるコマンドは「dig」や「host」になります。上記のコマンドは、DNSサーバに対して問い合わせを行いその結果を表示します。
[3. ホストが現在実行している接続一覧とそのステータスを確認できる]
誤りです。
ホストが現在実行している接続一覧とそのステータスを確認できるコマンドは「netstat」になります。現在どのようなTCP通信が行われているかを確認することができます。
例えば、意図しない通信をしていないかの確認又は意図した接続が実際に行われているか確認をすることができます。
[4. TCP/UDPの接続確認を行うことができる ]
誤りです。
サービスの接続を確認できるコマンドは、「netcat」になります。例えばFirewalldを設定したときには、実際に許可したポートから接続ができるか確認する必要があります。そのような場合に、netcatコマンドを用いれば許可したポートでリッスンすることができます。
そして同じくnetcatコマンドでリッスンしているポートに接続することができます。
許可したサービスを用意しなくても、接続確認ができる便利なコマンドになります。
今回はネットワーク接続に問題が発生した場合の調査コマンドを紹介しました。
問題が起きたときには、冷静にどこに原因があるのかを適切なコマンドを用いて調べていきましょう。
例題作成者
株式会社デージーネット ソリューション開発部 山中咲彩