🐥

フロントエンドロードマップの覚書③ ~DNS~

2022/04/20に公開

https://roadmap.sh/frontend

ドメインネームシステム(DNS)は、インターネットの電話帳です。人間は、nytimes.comやespn.comなどのドメイン名を介してオンラインで情報にアクセスします。Webブラウザーは、インターネットプロトコル(IP)アドレスを介して対話します。DNSはドメイン名をIPアドレスに変換して、ブラウザがインターネットリソースをロードできるようにします。

DNS とはなんですか?

ドメイン名をIPアドレスに変換するもの
DNSとは?DNSの仕組み | Cloudflare

ウェブページの読み込みには4つのDNSサーバーが関与しています

さまざまな管理領域がある(ゾーン)

DNSリカーサー

  • ブラウザからクエリを受け取るためのサーバー
  • クライアントのDNSクエリに答えるためにリクエストを追加する

ルートネームサーバー

  • ルートゾーンで動作 - 最初に他のDNSサーバーに問い合わせに行く
  • ルートゾーン内に格納またはキャッシュされたレコードのクエリに直接応答できる
  • 他のリクエストはTLDサーバーに参照する

TLDネームサーバー

  • 最上位のドメインサーバー
  • .com とか

権威ネームサーバー

  • ネームサーバークエリの最終段階
  • DNSリサーカーにリクエストを返す
  • ゾーンファイルがあり自分が管理するドメインのレコードを保持

権威DNSサーバーと再帰DNSリゾルバ―の違いとは?

再帰DNSリゾルバー

  • 再帰リゾルバはクライアントからの再帰リクエストに応答しDNSレコードを追跡るために時間をかけるコンピュータプログラム(?)
  • DNSルックアップから一度要求されたことのあるものはキャッシュされる
  • キャッシュサーバの認識

権威DNSサーバー

  • DNSリソースレコードを保持
  • サブドメインの場合であればCNAMEレコードを保持

DNS ルックアップの手順とは?

  1. example.com を webブラウザに入力。クエリはインターネットに送信されDNS再帰リゾルバーがクエリを受ける。
  2. リゾルバーはDNSルートネームサーバーへのクエリを行う。
  3. ルートネームサーバーはドメインの情報をほじするTLDDNSサーバーのアドレスでリゾルバに応答。
  4. リゾルバーは.com TLDにリクエストを行う。
  5. TLDサーバが応答し、ドメインのネームサーバーのIPアドレスを送信
  6. 再帰リゾルバはドメインのネームサーバへクエリを送信
  7. ネームサーバーからリゾルバーに応答しIPアドレスが送信
  8. DNSリゾルバーが webブラウザに応答し、最初にリクエストされたドメインのIPアドレスを送信

DNS クエリにはどのような種類があるのか?

  1. 再帰クエリ
    1. 要求されたリソースレコードをクライアントに応答すること
  2. 反復クエリ
    1. 一致するものがないとき最善の解答を返せるようにすること
    2. エラーかタイムアウトが生じるまで続く
  3. 非再帰クエリ
    1. 送信先がそのレコードの権威サーバーであった場合やキャッシュされていたら上流サーバーで読み込めるようにしている

DNS キャッシングとは? DNS キャッシングはどこで行われるか

保存期間は Time to Live ( TTL ) によって決まる

ブラウザ DNS キャッシュ

  • 一定期間キャッシュするように設計されている
  • chrome://net-internals/#dns でステータスを見ることができる

オペレーティング・システムレベルのDNSキャッシュ

JPRS用語辞典|スタブリゾルバー(DNSクライアント)
がわかりやすかった。ただ、OSレベルの意味がよくわからない。
ウェブブラウザがスタブリゾルバー呼び出し → キャッシュDNSサーバーに問い合わせ

Discussion