2-1. 演習問題
問題1:選択問題
Section titled “問題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 アドレスを覚えなくてよくなる
問題2:穴埋め問題
Section titled “問題2:穴埋め問題”次の文章の空欄を埋めてください。
- ドメイン名を IP アドレスへ変換する仕組みを ( ) という。
- 宛先の機械を識別する番号を ( ) という。
- 1台の機械の中で、どのサービスに届けるかを識別する番号を ( ) という。
- 実務でよく使われる4層の考え方を ( ) モデルという。
https://の既定のポート番号は ( ) である。127.0.0.1のように自分自身を表すアドレスを ( ) アドレスという。
問題3:記述問題
Section titled “問題3:記述問題”3-1. IP アドレスと DNS の違いを説明してください。
3-2. IP アドレスとポート番号の違いを説明してください。
3-3. なぜ DNS にキャッシュが必要なのか説明してください。
3-4. 通信をレイヤーで分けて考えると、トラブルシューティングでどのように役立つか説明してください。
問題4:ハンズオン
Section titled “問題4:ハンズオン”Git Bash を使って、次の確認を行ってください。
① ループバックアドレスを確認する
ping 127.0.0.1ping localhost127.0.0.1とlocalhostが、自分自身を表していることを確認する- 出力の中で、どの IP アドレスへ送っているかを見る
② DNS の結果を確認する
nslookup example.comexample.comに対して、どの IP アドレスが返るか確認する- 複数の IP が返っても問題ない
③ URL からホストとポートを読み取る
https://example.com という URL を見て、次の2つを答える。
- ホスト名は何か
- 既定で使うポート番号は何か
④ エラーも記録する
もし途中で timed out や command 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の解答(クリックで開く)
- DNS
ドメイン名と IP アドレスを対応付ける仕組みである。人間に読みやすい名前を使えるようにするために必要。
- IP アドレス
宛先の機械を識別する番号。通信相手がどのホストかを決めるために使う。
- ポート番号
同じ機械の中で、どのサービスに届けるかを識別する番号である。1台のサーバーで Web、DB、SSH などを同時に動かせるのはこの仕組みがあるからである。
- TCP/IP
実務では OSI 参照モデルより TCP/IP モデルで語られることが多い。4層で考えると全体像をつかみやすい。
- 443
HTTPS の既定ポート番号。URL に書かれていなくても、
https://と見たらまず 443 を思い出せるとよい。
- ループバック
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.1もlocalhostも通常は自分自身を指す。 ここで重要なのは、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 に到達できない」のか「コマンド自体がない」のかで見るべき場所が変わる。 そのため、単に「動かなかった」ではなく、どのコマンドでどのメッセージが出たかを残すことが重要である。