コンテンツにスキップ

2-1. 演習問題


1-1. DNS の役割として最も適切なのはどれか。

  • A. ドメイン名を IP アドレスへ対応付ける
  • B. パスワードを暗号化する
  • C. HTTP のステータスコードを返す

1-2. TCP/IP モデルのトランスポート層で扱う代表的なプロトコルはどれか。

  • A. TCP と UDP
  • B. HTTP と DNS
  • C. IP と ICMP

1-3. 93.184.216.34:443 のうち、443 が表しているものは何か。

  • A. 宛先のドメイン名
  • B. 宛先のサービスを識別するポート番号
  • C. 送信元の OS の種類

1-4. 次のうち、プライベート IP アドレスの例として最も適切なのはどれか。

  • A. 192.168.1.10
  • B. 8.8.8.8
  • C. 93.184.216.34

1-5. ネットワークをレイヤーで分けて考える主な利点はどれか。

  • A. すべての通信エラーが自動的に消える
  • B. 役割ごとに切り分けて理解しやすくなる
  • C. IP アドレスを覚えなくてよくなる

次の文章の空欄を埋めてください。

  1. ドメイン名を IP アドレスへ変換する仕組みを (   ) という。
  2. 宛先の機械を識別する番号を (   ) という。
  3. 1台の機械の中で、どのサービスに届けるかを識別する番号を (   ) という。
  4. 実務でよく使われる4層の考え方を (   ) モデルという。
  5. https:// の既定のポート番号は (   ) である。
  6. 127.0.0.1 のように自分自身を表すアドレスを (   ) アドレスという。
解答欄

3-1. IP アドレスと DNS の違いを説明してください。

解答欄

3-2. IP アドレスとポート番号の違いを説明してください。

解答欄

3-3. なぜ DNS にキャッシュが必要なのか説明してください。

解答欄

3-4. 通信をレイヤーで分けて考えると、トラブルシューティングでどのように役立つか説明してください。

解答欄

Git Bash を使って、次の確認を行ってください。

① ループバックアドレスを確認する

Terminal window
ping 127.0.0.1
ping localhost
  • 127.0.0.1localhost が、自分自身を表していることを確認する
  • 出力の中で、どの IP アドレスへ送っているかを見る

② DNS の結果を確認する

Terminal window
nslookup example.com
  • example.com に対して、どの IP アドレスが返るか確認する
  • 複数の IP が返っても問題ない

③ URL からホストとポートを読み取る

https://example.com という URL を見て、次の2つを答える。

  • ホスト名は何か
  • 既定で使うポート番号は何か

④ エラーも記録する

もし途中で timed outcommand not found などが出たら、そのメッセージを控える。


問題1の解答(クリックで開く)

1-1. 正解:A. ドメイン名を IP アドレスへ対応付ける

解説

  • A が正しい。DNS は example.com のような名前から、通信に必要な IP アドレスを調べる仕組みである。
  • B は誤り。暗号化は TLS など別の仕組みの役割である。
  • C は誤り。ステータスコードは HTTP レスポンスの情報であり、DNS の役割ではない。

1-2. 正解:A. TCP と UDP

解説

  • A が正しい。TCP と UDP はトランスポート層の代表的なプロトコルである。
  • B の HTTP と DNS はアプリケーション層で使うルール。
  • C の IP と ICMP はインターネット層で扱う。

「アプリの会話ルール」「届け方」「宛先の識別」は別の層に分かれている、というのがポイントである。


1-3. 正解:B. 宛先のサービスを識別するポート番号

解説

  • A は誤り。ドメイン名は example.com のような名前の部分である。
  • B が正しい。443 は HTTPS でよく使うポート番号で、機械の中のどのサービスへ届けるかを表す。
  • C は誤り。OS の種類はこの書き方からは分からない。

1-4. 正解:A. 192.168.1.10

解説

  • A が正しい。192.168.x.x はプライベート IP の代表例である。
  • B の 8.8.8.8 は Google Public DNS として知られるグローバル IP。
  • C の 93.184.216.34 もインターネット上で使うグローバル IP の例である。

プライベート IP は主に家庭や社内ネットワークで使われ、外部へ出るときはルーターを経由する。


1-5. 正解:B. 役割ごとに切り分けて理解しやすくなる

解説

  • A は誤り。レイヤー分けは便利だが、エラーそのものを消す仕組みではない。
  • B が正しい。どの層で問題が起きているかを切り分けやすくなるのが最大の利点である。
  • C は誤り。IP アドレスの役割は依然として理解する必要がある。

たとえば「DNS は通るが HTTP が失敗する」なら、名前解決より上の層を疑う、といった考え方ができる。

問題2の解答(クリックで開く)
  1. DNS

ドメイン名と IP アドレスを対応付ける仕組みである。人間に読みやすい名前を使えるようにするために必要。

  1. IP アドレス

宛先の機械を識別する番号。通信相手がどのホストかを決めるために使う。

  1. ポート番号

同じ機械の中で、どのサービスに届けるかを識別する番号である。1台のサーバーで Web、DB、SSH などを同時に動かせるのはこの仕組みがあるからである。

  1. TCP/IP

実務では OSI 参照モデルより TCP/IP モデルで語られることが多い。4層で考えると全体像をつかみやすい。

  1. 443

HTTPS の既定ポート番号。URL に書かれていなくても、https:// と見たらまず 443 を思い出せるとよい。

  1. ループバック

127.0.0.1 のように、自分自身を指すための特別なアドレスをループバックアドレスという。外のネットワークへ出ずに、自分のPCの中だけで通信を確認できる。

問題3の解答例(クリックで開く)

3-1. IP アドレスと DNS の違い

IP アドレスは、ネットワーク上で宛先の機械を識別するための番号である。 DNS は、その IP アドレスを人間に分かりやすい名前から調べる仕組みである。 つまり DNS は「名前を番号へ変換する仕組み」、IP アドレスは「実際の宛先番号」と整理できる。


3-2. IP アドレスとポート番号の違い

IP アドレスは「どの機械か」を示し、ポート番号は「その機械の中のどのサービスか」を示す。 たとえば 93.184.216.34:443 では、93.184.216.34 が機械、443 が HTTPS サービスを表す。 1台のサーバーで複数のアプリが動けるのは、ポート番号で受付を分けているからである。


3-3. DNS キャッシュが必要な理由

同じ名前に何度もアクセスするたびに毎回遠くの DNS サーバーへ問い合わせると、遅くなり負荷も高くなる。 そのため一度引いた結果を一定期間キャッシュして、次回はすぐ再利用できるようにしている。 ただし古い情報が残ることもあるので、DNS トラブルではキャッシュが原因になる場合もある。


3-4. レイヤー分けがトラブルシューティングに役立つ理由

通信は DNS、IP、ポート、HTTP など複数の役割から成っているため、全部を一気に考えると原因を見失いやすい。 レイヤーで分けると、「名前解決の問題か」「宛先には届くがアプリが返答しないのか」を順番に切り分けられる。 実務ではこの切り分けが速いほど、障害対応やデバッグが楽になる。

問題4の解答例(クリックで開く)

① ループバックアドレスを確認する

Terminal window
$ ping 127.0.0.1
$ ping localhost

127.0.0.1localhost も通常は自分自身を指す。 ここで重要なのは、localhost という名前が最終的には IP アドレスへ対応付けられていると観察できること。

環境によっては応答の細かい表示が違っても問題ない。


② DNS の結果を確認する

Terminal window
$ nslookup example.com

example.com に対して 1 個または複数の IP アドレスが返ることがある。 複数返るのは異常ではなく、負荷分散や CDN の都合でよくある。 大切なのは、「名前を問い合わせると IP が返る」という構造を確認すること。


③ URL からホストとポートを読む

https://example.com のホスト名は example.com である。 https:// なので、既定で使うポート番号は 443 である。

URL に :443 が明示されていなくても、スキームが https なら通常 443 を使う。


④ エラーメッセージを記録する

たとえば nslookup が失敗したときに「DNS に到達できない」のか「コマンド自体がない」のかで見るべき場所が変わる。 そのため、単に「動かなかった」ではなく、どのコマンドでどのメッセージが出たかを残すことが重要である。