「DNSがよくわかる教科書」を読んだメモ

TLD

  • TLD には ccTLD(Country code top-level domain) と gTLD(Generic top-level domain) がある
    • ccTLD: .jp や .uk などの国や地域に割り当てられる
    • gTLD: 国や地域の制限は無い。 .com や .net など。ただし .edu や .gov などには利用制限がある

スタブリゾル

  • DNSクライアントとも呼ばれる

フルリゾル

  • スタブリゾルバが指定した 問い合わせ情報(ドメイン名と種類) が自分のキャッシュにあれば、それを返す
  • 問い合わせ情報がキャッシュに無いと、権威サーバの階層構造をルートサーバから、たどり名前解決する。以下は example.jp を問い合わせする例
    1. ルートネームサーバに example.jp を聞いて、a.dns.jp に聞いてと返って来る
    2. a.dns.jp に example.jp を聞いて、ns1.example.jp に聞いてと返って来る
    3. ns1.example.jp に example.jp を聞いて、192.0.2.10 が返って来る
  • 委任情報や名前解決を一定時間キャッシュすることで以下を実現する
    • フルリゾルバ、権威サーバの負荷軽減
    • 問い合わせから応答までの時間短縮
    • ネットワークトラフィックの軽減
  • キャッシュには 問い合わせ情報(ドメイン名と種類) が存在しないことを表すネガティブキャッシュもある
  • 似ているものにフォワーダーがある

権威サーバ

  • 自分のゾーンの委任情報とドメインとアドレス間の対応関係を管理する。ネームサーバとも呼ばれる
  • 権威サーバでは階層化して委任することでドメインを管理する。委任された範囲を ゾーン と呼ぶ
  • ゾーンの設定内容を ゾーンデータ といい、 リソースレコード という単位で情報を保持する
  • 同じゾーンデータの権威サーバを複数台設置できる仕組みを ゾーン転送 という
  • プライマリサーバをリゾルバには応答しない形にして、ゾーン転送のみ利用する方法もある。プライマリサーバの負荷軽減とセキュリティ強化ができる
  • 委任した側を といい、委任された側を という。.jp なら、親がルートドメイン、子は jp ドメイン
  • 子はインターネット上にネームサーバ(ns1.example.jp など)を用意し、ゾーン内のドメイン名の対応付けと委任先(子)の情報を管理する
  • 親は子のネームサーバ情報(ns1.example.jp とその IP) を自分のネームサーバに登録する

リソースレコード

  • リソースレコードは次の要素から構成される
    • ドメイン名, TTL, クラス, タイプ, データ
    • 例: jprs.jp, 300, IN, A, 117.104.133.164

便利なコマンド

  • dig, drill, kdig

サンプルなど

  • 以下ではリソースレコードとコマンド実行例のサンプルを載せている arw.hatenablog.jp