DNS

読み:でぃーえぬえす / 英語表記:Domain Name System

ドメイン名とIPアドレスなどの情報を対応づけ、問い合わせに応じて答える仕組み。世界中のDNSサーバが階層的に分担して管理している。

イマシルちゃんの解説

人間は「example.com」みたいな名前のほうが覚えやすいけど、
コンピュータが通信するには「192.0.2.1」みたいなIPアドレスが必要なんだ。

その名前と番号を結び付ける、インターネットの電話帳みたいな仕組みがDNS!
しかも、世界中に分かれて置かれた電話帳が、少しずつ担当を分け合っているんだよ。

より深い解説

定義

DNS(Domain Name System)は、ドメイン名とIPアドレスなどの情報(リソースレコード)を対応づけて管理する、分散型のデータベースの仕組みである。ドメイン名からIPアドレスを求めることを名前解決(正引き)、IPアドレスからドメイン名を求めることを逆引きという。ポート番号は53番で、主にUDPを使い、応答が大きい場合やゾーン転送ではTCPを使う。

階層構造

ドメイン名は、右から順に階層をたどる。

www.example.co.jp.
                 └ ルート(最後の「.」。通常は省略)
              └ トップレベルドメイン(jp)
           └ 第2レベルドメイン(co)
   └ example.co.jp
└ www

それぞれの階層を担当するDNSサーバが、自分の下の階層の担当サーバを知っていて、管理を委任している。

2種類のDNSサーバ

種類役割
権威DNSサーバ自分が管理するドメイン(ゾーン)の情報を持ち、それについて答える
フルサービスリゾルバ(キャッシュDNSサーバ)利用者からの問合せを受け、権威DNSサーバに順に問い合わせて答えを探し、結果を一時的に保存(キャッシュ)する

利用者のPCなどにある、問合せを出すだけの仕組みはスタブリゾルバという。

名前解決の流れ

  1. PC(スタブリゾルバ)が、フルサービスリゾルバに www.example.co.jp のIPアドレスを問い合わせる(再帰的問合せ)
  2. フルサービスリゾルバは、キャッシュになければ、ルートサーバに問い合わせ、jpの担当サーバを教えてもらう
  3. jpの担当サーバに問い合わせ、co.jpの担当サーバを教えてもらう
  4. 同様にたどり、example.co.jpの権威DNSサーバから答えを得る(2〜4は反復問合せ)
  5. 結果をキャッシュし、PCに答える

キャッシュは、リソースレコードに付いているTTL(有効期間)の間だけ保存される。

セキュリティ

脅威内容主な対策
キャッシュポイズニングフルサービスリゾルバに偽の応答を覚えさせる送信元ポート番号のランダム化、DNSSEC
オープンリゾルバの悪用誰からの問合せにも答えるDNSサーバを、DRDoS攻撃の反射に使う再帰的問合せを受け付ける範囲を制限する
通信の盗聴問合せの内容(見ようとしているサイト)を見られるDNS over TLS(DoT)、DNS over HTTPS(DoH)

実際の試験ではここに出る!

この用語が出てくる記事

↑