DNSとは
DNS(Domain Name System)は、人間が覚えやすいドメイン名(例:example.com)を、コンピュータが理解できるIPアドレス(例:192.0.2.1)に変換する分散型データベースシステムです。1983年にPaul MockapetrisがRFC 882/883として提案し、現在のインターネットの根幹を支える基盤技術となっています。「インターネットの電話帳」とも呼ばれ、Webサイトの閲覧、メールの送受信、オンラインサービスへのアクセスなど、あらゆるインターネット通信でDNSが利用されています。
DNSが存在しなければ、私たちはすべてのWebサイトにIPアドレスを直接入力してアクセスしなければなりません。DNSは人間にとって記憶しやすいドメイン名と、機械にとって処理しやすいIPアドレスの橋渡しを行う、いわば「翻訳」の役割を果たしています。
DNSの階層構造
DNSは世界中に分散された階層型のシステムとして設計されています。その構造は以下のとおりです。
- ルートDNSサーバー:DNSの最上位に位置し、世界に13系統(A〜M)のルートサーバー群が存在します。Anycast技術により、物理的には世界中に数百台以上のサーバーが分散配置されています。
- TLD(トップレベルドメイン)サーバー:.com、.jp、.orgなどのトップレベルドメインを管理します。gTLD(汎用TLD)とccTLD(国コードTLD)に分類されます。
- 権威DNSサーバー(Authoritative DNS Server):特定のドメインのDNSレコードを保持し、最終的な回答を提供するサーバーです。ドメイン所有者が設定・管理します。
- DNSリゾルバー(Recursive Resolver):ユーザーからのDNSクエリを受け取り、上位のDNSサーバーに再帰的に問い合わせて結果を返す中継サーバーです。ISPやパブリックDNS(Google Public DNS、Cloudflare DNSなど)が提供しています。
名前解決のプロセス
ユーザーがブラウザに「www.example.com」と入力したとき、以下のプロセスで名前解決が行われます。
- ブラウザキャッシュの確認:ブラウザは最近アクセスしたドメインのIPアドレスをキャッシュしています。キャッシュに該当する情報があればそれを使用します。
- OSキャッシュの確認:ブラウザにキャッシュがなければ、OSのDNSキャッシュ(hostsファイル含む)を確認します。
- DNSリゾルバーへの問い合わせ:ローカルに情報がなければ、ISPなどのDNSリゾルバーに再帰クエリを送信します。
- ルートサーバーへの問い合わせ:リゾルバーはルートDNSサーバーに問い合わせ、「.com」のTLDサーバーの情報を取得します。
- TLDサーバーへの問い合わせ:「.com」のTLDサーバーに問い合わせ、「example.com」の権威DNSサーバーの情報を取得します。
- 権威DNSサーバーへの問い合わせ:最終的に権威DNSサーバーから「www.example.com」のIPアドレスを取得します。
- 結果の返却とキャッシュ:取得したIPアドレスをユーザーに返し、同時にTTLに基づいてキャッシュします。
この一連のプロセスは通常数十〜数百ミリ秒で完了し、ユーザーはほとんど遅延を感じることなくWebサイトにアクセスできます。
主要なDNSレコードの種類
DNSには多くのレコードタイプが定義されており、それぞれ異なる目的で使用されます。
| レコード | 説明 | 例 |
|---|---|---|
| A | ドメイン名をIPv4アドレスにマッピング | example.com → 93.184.216.34 |
| AAAA | ドメイン名をIPv6アドレスにマッピング | example.com → 2606:2800:220:1:... |
| MX | メールサーバーを指定 | 10 mail.example.com |
| CNAME | 別のドメイン名へのエイリアス | www → example.com |
| TXT | テキスト情報(SPF、DKIM等) | v=spf1 include:... |
| NS | ネームサーバーを指定 | ns1.example.com |
| SRV | 特定サービスのサーバー情報 | _sip._tcp.example.com |
| CAA | SSL/TLS証明書の発行元を制限 | 0 issue "letsencrypt.org" |
| PTR | IPアドレスからドメイン名への逆引き | 34.216.184.93.in-addr.arpa |
DNSキャッシュとTTL
DNSの性能を支える重要な仕組みがキャッシュです。DNSクエリの結果は、ブラウザ、OS、DNSリゾルバーの各レベルでキャッシュされ、同じドメインへの再問い合わせを大幅に高速化します。
TTL(Time To Live)は、DNSレコードがキャッシュに保持される時間(秒数)を定義します。TTL値は用途に応じて適切に設定する必要があります。短いTTL(60-300秒)は頻繁な変更に対応できますがDNSサーバーへの負荷が増加し、長いTTL(3600-86400秒)はパフォーマンスに優れますが変更反映に時間がかかります。CDN利用時やサーバー移行時には、事前にTTLを短くしておくことが重要です。
DNSセキュリティの課題と対策
DNSは元来セキュリティを考慮せずに設計されたため、様々な脅威にさらされています。
主な攻撃手法
- DNSキャッシュポイズニング:偽のDNS応答をキャッシュに注入し、ユーザーを不正サイトに誘導する攻撃
- DNSスプーフィング:DNS応答を偽装し、ユーザーをフィッシングサイトなどに誘導する攻撃
- DNS増幅攻撃(DNS Amplification Attack):DNSの応答サイズが問い合わせよりも大きいことを悪用したDDoS攻撃
- DNSトンネリング:DNSプロトコルを悪用してファイアウォールを迂回するデータ転送手法
- ドメインハイジャック:レジストラアカウントに不正アクセスし、DNSレコードを改ざんする攻撃
セキュリティ対策
- DNSSEC(DNS Security Extensions):DNS応答に電子署名を付与し、データの完全性と認証を保証します。RRSIG、DNSKEY、DSなどのレコードタイプを使用します。
- DoH(DNS over HTTPS):HTTPS(ポート443)を使ってDNSクエリを暗号化し、プライバシーを保護します。Firefox、Chrome、Edgeなど主要ブラウザが対応しています。
- DoT(DNS over TLS):TLS(ポート853)を使ってDNSクエリを暗号化する方式です。ネットワーク管理者がDNSトラフィックを識別しやすい特徴があります。
- DoQ(DNS over QUIC):QUICプロトコルを使った最新のDNS暗号化方式で、接続確立の高速化と暗号化を同時に実現します。
- レスポンスレート制限(RRL):DNS増幅攻撃を緩和するため、同一ソースからのクエリレートを制限する技術です。
パブリックDNSサービス
ISP提供のDNSに代わり、高速性・セキュリティ・プライバシーに優れたパブリックDNSサービスが広く利用されています。
- Google Public DNS(8.8.8.8 / 8.8.4.4):Googleが提供する無料DNSサービス。世界最大規模のDNSインフラストラクチャで高い信頼性を誇ります。
- Cloudflare DNS(1.1.1.1 / 1.0.0.1):Cloudflareが提供するプライバシー重視のDNSサービス。業界最速クラスの応答速度を実現しています。
- Quad9(9.9.9.9):セキュリティ重視のDNSサービス。マルウェアやフィッシングサイトへのアクセスを自動的にブロックします。
2025-2026年の最新動向
DNS技術は進化を続けています。DNS over QUIC(DoQ)の標準化が進み、RFC 9250として正式に定義されました。QUICの高速な接続確立と暗号化の恩恵を受け、特にモバイル環境でのDNS解決が高速化しています。
Service Binding(SVCB/HTTPS)レコードが広く普及し、クライアントがHTTPSサーバーの情報(対応プロトコル、ALPNなど)をDNS問い合わせの段階で取得できるようになりました。これにより、HTTP/3への接続確立がさらに高速化されています。
また、Encrypted Client Hello(ECH)の普及に伴い、DNSを使ったECH鍵の配布メカニズムが実運用に入っています。さらに、ゼロトラストセキュリティモデルの一環として、DNS over HTTPSを活用したきめ細かいアクセス制御が企業ネットワークで採用されるケースが増えています。
実務でのDNS設定のポイント
- 冗長構成:権威DNSサーバーは最低2台、できれば異なるネットワーク上に配置する
- 適切なTTL設定:通常時は3600秒(1時間)程度、移行時は60-300秒に短縮
- DNSSEC有効化:可能な限りDNSSECを有効にし、データの信頼性を確保
- CAA レコード設定:許可するSSL/TLS証明書発行元を明示的に制限
- 監視の実施:DNS応答時間、レコードの不正変更、DDoS攻撃の兆候を常時監視
関連技術と用語
- IPv6 - AAAAレコードで解決されるIPv6アドレス体系
- HTTP/2 - DNS解決後に確立される接続プロトコル
- HTTP/3 - QUICベースの最新Webプロトコル
- VPN - DNS漏洩(DNS Leak)対策が重要なセキュリティ技術
- REST API - ドメイン名によるAPIエンドポイント管理
外部リンク
よくある質問(FAQ)
Q. DNSとは何ですか?
DNS(Domain Name System)は、人間が覚えやすいドメイン名(例:example.com)を、コンピュータが理解できるIPアドレス(例:192.0.2.1)に変換する分散型のシステムです。「インターネットの電話帳」とも呼ばれ、Webサイトの閲覧やメール送信など、あらゆるインターネット通信の基盤となっています。
Q. DNSの名前解決はどのように行われますか?
ブラウザがURLを入力すると、まずローカルキャッシュを確認し、なければDNSリゾルバーに問い合わせます。リゾルバーはルートDNSサーバー→TLDサーバー→権威DNSサーバーの順に再帰的に問い合わせを行い、最終的にIPアドレスを取得します。この過程は通常数十ミリ秒で完了します。
Q. 主なDNSレコードの種類は?
主なDNSレコードには、Aレコード(IPv4アドレス対応)、AAAAレコード(IPv6アドレス対応)、MXレコード(メールサーバー指定)、CNAMEレコード(別名定義)、TXTレコード(テキスト情報、SPF/DKIM等)、NSレコード(ネームサーバー指定)、SRVレコード(サービス指定)などがあります。
Q. DNSSECとは何ですか?
DNSSEC(DNS Security Extensions)は、DNSの応答データに電子署名を付与し、データの完全性と認証を保証するセキュリティ拡張です。DNSキャッシュポイズニングやDNSスプーフィングなどの攻撃を防ぎます。2025年現在、多くのTLDやドメインレジストラがDNSSECに対応しています。
Q. DNS over HTTPS(DoH)とDNS over TLS(DoT)の違いは?
DoHはHTTPS(ポート443)を使ってDNSクエリを暗号化する方式で、通常のWebトラフィックと見分けがつきにくいのが特徴です。DoTはTLS(ポート853)を使って暗号化する方式で、DNSトラフィックとして識別可能です。どちらもDNSクエリのプライバシーを保護しますが、用途に応じて使い分けられます。
