DNSがよくわかる教科書 ch4 (2/2)

DNS勉強メモ

出典: 


構成要素の連携による名前解決

  • 例: ブラウザでjprs.jpにアクセス
  • 仮定: キャッシュにはなにも入っていない

20200314074141

Column: ルートサーバーのIPアドレスはどうやって知る?

  • フルリゾルバーが最初から持っている

    • ヒントファイル
  • 不変ではないので、特定のタイミングで最新のルートサーバーのIP一覧を取得する仕組みがある

Column: 名前解決要求と名前解決の実行の違い

  • 名前解決要求

    • スタブリゾルバー->フルリゾルバー
    • 私の代わりに名前解決をして」
  • 名前解決実行

    • フルリゾルバー->権威サーバー
    • 「名前解決をして」

DNSの処理の効率化と可用性の向上

キャッシュとネガティブキャッシュ

20200314074212

  • ネガティブキャッシュ

    • 当該リソースレコードが「存在しない」という結果もキャッシュする

キャッシュとネガティブキャッシュのメリット/保持してもよい時間

  • メリット

    • フルリゾルバー、権威サーバーの負荷軽減
    • ターンアラウンドタイムの短縮
    • トラフィック軽減
  • キャッシュの保持時間は、ゾーン側管理

    • TTL: Time To Live

      • レコードごとに設定される、「キャッシュを保持してもよい時間」
docker-compose exec client dig server
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> server
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13259
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;server.				IN	A

;; ANSWER SECTION:
server.			600	IN	A	172.23.0.2

;; Query time: 0 msec
;; SERVER: 127.0.0.11#53(127.0.0.11)
;; WHEN: Fri Mar 13 22:29:48 UTC 2020
;; MSG SIZE  rcvd: 46
  • これ
server.			600	IN	A	172.23.0.2
  • 10分キャッシュ可能、の意

複数台の権威サーバーを設置する

dig ns google.co.jp
...
;; QUESTION SECTION:
;google.co.jp.			IN	NS

;; ANSWER SECTION:
google.co.jp.		0	IN	NS	ns3.google.com.
google.co.jp.		0	IN	NS	ns2.google.com.
google.co.jp.		0	IN	NS	ns4.google.com.
google.co.jp.		0	IN	NS	ns1.google.com.
...
  • 冗長化・負荷分散のために、同じゾーンデータを持つ権威サーバーを複数台設置する

権威サーバー間でのゾーンデータのコピー

  • ゾーン転送

    • 権威サーバー間でゾーン情報を同期する手法
    • JPRS用語辞典
    • セカンダリがプライマリにゾーンデータをリクエスト
    • プライマリは必要な情報をレスポンス
  • 【所感】RDBのレプリケーションそっくり

    • あれもセカンダリ主導

フルリゾルバーにおける権威サーバーの選択

  • RTT: Round Trip Timeの短い権威サーバーへ優先的に問い合わせる

正引きと逆引き

  • 正引き

    • ドメイン名->IPアドレス
  • 逆引き

    • IPアドレス->ドメイン名
    • アクセス元確認に用いる