ネットワークコンピューティング

1. URL
2. 担当教員
3. ネットワークに関する疑問
4. 講義目的
5. 到達目標
6. 授業方法
7. 成績評価
8. スケジュール
9. 大崎が担当する科目に共通の連絡事項・アドバイス
10. LAN の構成要素・通信プロトコル
11. 無線 LAN、VLAN (仮想 LAN)
12. インターネットの概要、TCP/IP
13. IP プロトコル (1)
14. IP プロトコル (2)
15. 前半の総復習
16. TCP プロトコル (1)
17. TCP プロトコル (2)
18. インターネットの要素技術 (経路制御)
19. インターネットサービス (名前解決)
20. DHCP、ネットワークアドレス変換
21. HTTP
22. 後半の総復習

インターネットサービス (名前解決)

授業の流れ・チーム分けの方針・態度目標

2024/09/25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/netcomp/2024/#10-1

内容目標

- インターネットにおける名前解決の原理を、他人に説明できるようになる。

- DNS (Domain Name System) とは何かを、他人に説明できるようになる。

- DNS が TCP ではなく UDP を用いている理由を、定量的に説明できるようになる。

- nslookup コマンドを使って正引きおよび逆引きができるようになる。

課題

課題 1

DNS は Domain Name System の略である。 DNS の最後は S が、 サーバ (server) でもサービス (service) でもなく、 システム (system) である理由を論理的に説明せよ。

課題 2

すべてのホスト間において、 単一の IP データグラムの伝送時間が等しく 1 [ms] であるとする。 webmail.kwansei.ac.jp という名前を解決するまでに要する時間 D について、 以下の小問に答えよ。 ただし、 ネットワーク上のすべての DNS サーバが正常に稼働しており、 なおかつ、 すべてのホスト上で動作するソフトウェアの処理時間は無視できるほと小さいとする。

(1) D の最小値を答えよ。

(2) リゾルバが、 webmail.kwansei.ac.jp に対応するレコードを保持している最寄りの DNS サーバに問い合わせる時の D の値を答えよ。

(3) D の最大値を答えよ。

課題 3

DNS は名前解決に TCP ではなく UDP を用いる。 DNS が、もし UDP ではなく TCP を使っていたと仮定した時の、 課題 2 の (1)〜(3) に回答せよ。 ただし、DNS サーバへの問い合わせ時には毎回 TCP コネクションを確立するものとする。

課題 4

(1) webmail.kwansei.ac.jp に対応する IP アドレスを答えよ。

(2) www.kwansei.ac.jp に対応する IP アドレスを答えよ。

(3) 上の (1) と (2) で対応する IP アドレス数が異なるのはなぜか。

(4) 192.218.168.11 に対応する名前を答えよ (逆引きせよ)。

略解

課題 1

RFC 1034 より:
This RFC is an introduction to the Domain Name System (DNS), and omits
many details which can be found in a companion RFC, "Domain Names -
Implementation and Specification" [RFC-1035].  That RFC assumes that the
reader is familiar with the concepts discussed in this memo.

A subset of DNS functions and data types constitute an official
protocol.  The official protocol includes standard queries and their
responses and most of the Internet class data formats (e.g., host
addresses).

However, the domain system is intentionally extensible.  Researchers are
continuously proposing, implementing and experimenting with new data
types, query types, classes, functions, etc.  Thus while the components
of the official protocol are expected to stay essentially unchanged and
operate as a production service, experimental behavior should always be
expected in extensions beyond the official protocol.  Experimental or
obsolete features are clearly marked in these RFCs, and such information
should be used with caution.

DNS は、 名前を管理するシステム (name system) の名称であるので、 Domain Name *System* と呼ばれている。 DNS とは、 名前を解決するための、 分散型データベースシステムである。

一方、

RFC 1392 より:
Domain Name System (DNS)
   The DNS is a general purpose distributed, replicated, data query
   service.  The principal use is the lookup of host IP addresses
   based on host names.  The style of host names now used in the
   Internet is called "domain name", because they are the style of
   names used to look up anything in the DNS.  Some important domains
   are: .COM (commercial), .EDU (educational), .NET (network
   operations), .GOV (U.S. government), and .MIL (U.S. military).
   Most countries also have a domain.  For example, .US (United
   States), .UK (United Kingdom), .AU (Australia).  It is defined in
   STD 13, RFCs 1034 and 1035.  See also: Fully Qualified Domain
   Name.

のように、 名前を解決するためのサービスとも位置付けられているので、 Domain Name *Service* という名称でも良かったのかもしれない。 DNS の設計者は Domain Name *System* と名付けたが、 Domain Name *Service* という名前であったとしてもそれほどおかしくはなかったと思われる。

ただし、 Domain Name *Server* は、 「DNS に参加している / を構成する一つのサーバ」という英語になるのでおかしい。 Domain Name *Servers* であれば、 「システムを構成するサーバ群」という意味でありえた名前かもしれない。

課題 2

(1) リゾルバがキャッシュ済みの場合に最小となるから 0 [ms]。

(2) リゾルバから DNS サーバへの問い合わせ (query) に 1 [ms]、DNS サーバからリゾルバへの返答 (response) に 1 [ms] かかるため、合計で 2 [ms]。

(3) すべての DNS サーバがレコードをキャッシュしていない時に最も名前解決に時間がかかる。 この時、 a) リゾルバが最寄りの DNS サーバに問い合わせる、 b) 最寄りの DNS サーバがルートサーバに問い合わせる、 c) 最寄りの DNS サーバが jp ドメインを管理する DNS サーバに問い合わせる、 d) 最寄りの DNS サーバが ac.jp ドメインを管理する DNS サーバに問い合わせる、 e) 最寄りの DNS サーバが kwansei.ac.jp ドメインを管理する DNS サーバに問い合わせる、 という通信の流れになる。従って、

D = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 10 [ms]
    =====   =====   =====   =====   =====
      a)      b)      c)      d)      e)

である。

課題 3

(1) 0 [ms]

(2) 4 [ms]

TCP で名前解決を行う場合には、 問い合わせの前にコネクション確立が必要となる。 TCP の 3 ウェイハンドシェイクでは、 下図のように、 照会メッセージ (query) の前に a) SYN、 b) SYN + ACK、 c) ACK のやりとりが必要となる。 なお、c) ACK と d) query は連続して送出できる。 1 回の問い合わせに、 最低でも 2 往復の通信が必要となるので計 4 [ms] かかる。

問い合せ元      問い合わせ先
  |                  |
  |     a) SYN       |
  | ---------------> |
  |                  |
  |   b) SYN + ACK   |
  | <--------------  |
  |                  |
  |      c) ACK      |
  | ---------------> |
  |      d) query    |
  | ---------------> |
  |                  |
  |     e) response  |
  | <--------------- |
  |                  |

(3) 20 [ms]

課題 2 の略解 (3) における a)〜e) それぞれに TCP のコネクション確立が必要となる。 したがって、 課題 2 の (3) の 2 倍の通信時間がかかるため、 合計 20 [ms]。

課題 4

nslookup コマンドを使って調査すればよい。

実行結果の例:

(1)

> nslookup webmail.kwansei.ac.jp
Server:         106.187.2.33
Address:        106.187.2.33#53

Non-authoritative answer:
Name:   webmail.kwansei.ac.jp
Address: 192.218.168.202

(2)

> nslookup www.kwansei.ac.jp
Server:         106.187.2.33
Address:        106.187.2.33#53

Non-authoritative answer:
www.kwansei.ac.jp       canonical name = d277hm1gq2kzwt.cloudfront.net.
Name:   d277hm1gq2kzwt.cloudfront.net
Address: 54.230.130.73
Name:   d277hm1gq2kzwt.cloudfront.net
Address: 54.230.130.120
Name:   d277hm1gq2kzwt.cloudfront.net
Address: 54.230.130.38
Name:   d277hm1gq2kzwt.cloudfront.net
Address: 54.230.130.99

(3) www.kwansei.ac.jp は DNS ラウンドロビンによって (少なくとも) 4 台のサーバで負荷分散を行っているから。

(4)

> nslookup 192.218.168.11
11.168.218.192.in-addr.arpa     name = ns01.kwansei.ac.jp.

Authoritative answers can be found from:

類題

類題 1

任天堂のファミリーコンピュータの英語名は NES (Nintendo Entertainment System) である。 NES の最後の S が、 サーバ (server) でもサービス (service) でもなく、 システム (system) である理由を論理的に説明せよ。

(略解) NES 本体とテレビさえあれば、 一通りのものが揃うから system である。 NES は service を提供するものでもないし、 service を提供するものでもないから server でもない。

類題 2

ある会社 X では、 n 番目の職位の人は n + 1 番目の職位の人の名前だけを知っている。 例えば、 社長 A は副社長 B_1, ..., B_n の名前だけを知っており、 部長、 課長、 係長などの名前は知らない。 課長 D は、 同じ課に所属する係長 E_1, ..., E_m の名前だけを知っている。 職位は、 上から順に、 社長、 副社長、 部長、 課長、 係長とする。 このような会社において、 人事部人事課における採用担当の係長の名前を知るために要する質問回数を D とする。 以下の小問に答えよ。

(1) D の最小値を答えよ。

(2) 人事部人事課の課長に質問する時の D の値を答えよ。

(3) D の最大値を答えよ。

(略解) (1) 0 回 (もともと知っていた場合)、(2) 1 回 (人事部人事課の課長に聞けばすぐわかる)、(3) 4 回 (社長 → 副社長 → 部長 → 課長) と聞く場合)

類題 3

課題 2 において、質問する前に、質問してよいかどうかを確認する場合を考える。 例えば、課長に係長の名前を質問する場合は、

私: 「係長の名前は何ですか?」
課長 D: 「係長の名前は E_1, ..., E_m です。」

ではなく、

私: 「課長 D さん、係長の名前を教えてもらえますか?」
課長 D: 「いいですよ」
私: 「係長の名前は何ですか?」
課長 D: 「係長の名前は E_1, ..., E_m です。」

のように質問してよいかの質問が必要だとする。

このように仮定した時の、課題 2 の (1)〜(3) に回答せよ。

(略解) (1) 0 回、(2) 2 回、(3) 8 回 (質問数が 2 倍なので、質問回数も 2 倍になる)

類題 4

なし

レポート課題・質問・要望・コメント 2024/11/27

「レポート課題 2024/09/25」と同じ。

[<18. インターネットの要素技術 (経路制御)] [>20. DHCP、ネットワークアドレス変換]