1. DNS/検索してみよう

2. web を見るまで

ブラウザで https://moin.qmail.jp を見るまでのDNSに関係する働きを題材にしよう。

  1. インターネット上の通信ではIPアドレスを使って通信相手を識別する。(パケットによる通信とかは省略)
    • 人間にはIPアドレスは使いづらい。人間はドメイン名を使い、DNSを利用して、IPアドレスを管理する。
  2. /ドメイン名(空間)についての説明

    • moin.qmail.jp というドメイン名がどういう形式と意味をもつか。(構造)
    • /ドメイン名空間全体の話、DNSがなかったころはどうしていたかにも少し触れる。

  3. moin.qmail.jp の IPアドレスつまりA /レコードの探しかた

    • ブラウザなどは(外部または同一ホスト上の)/リゾルバー(キャッシュサーバ)に問い合わせる。

      • これらの問い合わせかたには違いがある。[問い合わせの道具、演習問題]
    • 目的のデータ(分散管理されている)をどう探すか。探せた結果をどう使うか。
  4. DNS サーバと言う呼び方は間違い。以下のように機能に分かれている。
  5. /ゾーンサーバ(分散データベース)の仕組みの説明

  6. /リゾルバーまたは/キャッシュサーバの振る舞いの説明

    • 原則として、ルートからたどる。TTL時間はキャッシュしてよい。

3. dnsq を使ってみよう

digでも同様のことは出きるが、分かりづらい。

djbdnsをインストールせよ。(daemontoolsなどはいれなくてよい。)

4. moin.qmail.jp のIPアドレス(A レコード)を入手するまで

5. まずはrootサーバに問い合わせる

#dnsq a moin.qmail.jp a.root-servers.net

1 moin.qmail.jp:
427 bytes, 1+0+7+13 records, response, noerror
query: 1 moin.qmail.jp
authority: jp 172800 NS a.dns.jp
authority: jp 172800 NS b.dns.jp
authority: jp 172800 NS c.dns.jp
authority: jp 172800 NS d.dns.jp
authority: jp 172800 NS e.dns.jp
authority: jp 172800 NS f.dns.jp
authority: jp 172800 NS g.dns.jp

additional: a.dns.jp 172800 A 203.119.1.1
additional: b.dns.jp 172800 A 202.12.30.131
...
(略)

a.root-servers.net でいいのかと思ったひとは有望だ。

6. JPサーバに問い合わせる

$ dnsq a moin.qmail.jp a.dns.jp

1 moin.qmail.jp:
82 bytes, 1+0+1+2 records, response, noerror
query: 1 moin.qmail.jp
authority: qmail.jp 86400 NS a.ns.qmail.jp
additional: a.ns.qmail.jp 86400 A 14.192.44.5
additional: a.ns.qmail.jp 86400 A 49.212.139.194

7. qmail.jp のNSに問い合わせる

$ dnsq a moin.qmail.jp a.ns.qmail.jp

1 moin.qmail.jp:
47 bytes, 1+1+0+0 records, response, authoritative, noerror
query: 1 moin.qmail.jp
answer: moin.qmail.jp 86400 A 14.192.44.5