Curious TechieDev Toolbox
すべてのガイド/ネットワーク8 min read

DNSの仕組みとネームサーバーの動作原理を徹底解説

ドメインネームシステムの階層的名前解決、ルートサーバー、A/AAAA/MX/TXTレコード、およびDNS-over-HTTPS (DoH)の暗号化を解説。

重要ポイント (要約)
  • DNSは人間が読みやすいドメイン名を機械がルーティング可能なIPアドレス(IPv4/IPv6)へ変換します。
  • 名前解決は、リカーシブリゾルバ → ルートサーバー → TLDサーバー → 権威DNSサーバーの階層構造で行われます。
  • 主要レコードには A (IPv4)AAAA (IPv6)CNAME (別名)MX (メール)TXT (認証)があります。
  • 現代のDNSは、盗聴を防ぐために DoH (RFC 8484)DoT (RFC 7858) を用いて通信を暗号化します。

1. DNS(ドメインネームシステム)とは何か?

DNS (Domain Name System) は、人間が覚えやすいドメイン名(例:curious-techie.com)を、ネットワークルーティングに必要な数値形式のIPアドレス(例:104.21.45.122606:4700:3037::6815:2d0c)へ相互変換する分散型データベース基盤です。

1987年に RFC 1034 および RFC 1035 として策定され、徹底したキャッシュ戦略と多重化された権威サーバー群により、単一障害点を作ることなく地球規模のトラフィックを処理しています。

2. 4段階の階層的名前解決シーケンス

ブラウザで新しいドメインにアクセスした際、ローカルキャッシュにIPが存在しない場合は以下の4ステップで階層解決が行われます:

1. スタブリゾルバ(端末) → ローカルのリカーシブDNS(1.1.1.1 や 8.8.8.8 等)へ問い合わせ
2. リカーシブリゾルバ(キャッシュサーバー) → ルートネームサーバー(.)へTLDサーバーの所在を照会
3. TLDネームサーバー(.com) → 該当ドメインの権威ネームサーバー(ns1.cloudflare.com 等)のIPを返答
4. 権威DNSサーバー → 最終的な A / AAAA レコード(IPアドレス + TTL)をリゾルバへ返答

3. 主要なDNSレコード種別の詳細

レコード種別用途・機能設定値サンプル
Aホスト名を32ビットIPv4アドレスへ紐付け93.184.216.34
AAAAホスト名を128ビットIPv6アドレスへ紐付け2606:2800:220:1:248:1893:25c8:1946
MX優先度付きメール受信サーバーの指定10 mail.example.com
TXTSPF、DKIM、ドメイン所有権確認用テキストv=spf1 include:_spf.google.com ~all
CNAME正規ホスト名に対する別名(エイリアス)docs.example.com → cdn.vendor.io
CAA証明書発行を許可する認証局(CA)の制限0 issue "letsencrypt.org"

4. DNSセキュリティ: DNSSEC、DoH & DoT

従来のDNSはポート53の暗号化されないUDPで動作していたため、ISPによる閲覧履歴の監視やキャッシュポイズニング攻撃に晒されていました。現代の技術はこれを解決しています:

  • DNSSEC (DNS Security Extensions): 公開鍵暗号を用いてDNSレコードに電子署名を施し、応答の改ざんやスプーフィングを防止。
  • DNS-over-HTTPS (DoH, RFC 8484): HTTPS(ポート443)のHTTP/2やHTTP/3セッション内でDNS問い合わせを暗号化し、通常のWeb通信と見分けがつかない状態で保護。
  • DNS-over-TLS (DoT, RFC 7858): 専用ポート853を用いてTLSセッション内でDNS通信を生パケット単位で暗号化。

5. レコード浸透遅延とTTL設定のベストプラクティス

DNSレコードを変更する際、TTL (Time-to-Live) は世界中のリカーシブリゾルバがキャッシュを破棄して再問い合わせを行うまでの秒数を指定します。

サーバー移行を予定している場合、作業の24〜48時間前にTTLを 300秒(5分) などの短い値に下げておくことで、DNS伝播待ち時間を最小限に抑えダウンタイムゼロの移行が可能になります。