DNSサーバとは?仕組み・主要レコード・セキュリティ対策・運用ベストプラクティス完全ガイド
DNSサーバとは何か — インターネットの電話帳
DNS(Domain Name System)サーバは、ドメイン名とIPアドレスを対応付ける仕組みを提供するサーバです。人間が扱いやすい「example.com」のような名前を、コンピュータが通信に使う数値のIPアドレス(IPv4/IPv6)に変換します。インターネット上のほぼすべての名前解決はDNSを介して行われるため、DNSは「インターネットの電話帳」や「名前解決インフラの基盤」として不可欠な役割を担います。
DNSの基本構造と主要な要素
DNSは階層構造(ルート → TLD → ドメイン → サブドメイン)で成り立ちます。主要な要素は次の通りです。
- ルートサーバ:DNS階層の最上位。論理的に13のルートサーバ(ラベルAからM)が指定されており、多数のAnycastインスタンスで運用されています。
- TLDサーバ:トップレベルドメイン(.com、.jp など)を管理するサーバ。
- 権威DNSサーバ(Authoritative):特定ドメインの正確なレコード(A/AAAA/MX/NS等)を保持し、最終的な回答を返すサーバ。
- 再帰的リゾルバ(Recursive Resolver):クライアント(スタブリゾルバ)の問い合わせを受け、必要に応じて他のDNSサーバに問い合わせを行って最終回答を取得するサーバ。ISPや企業、公共DNS(例:Google Public DNS、Cloudflare 1.1.1.1)がこれにあたります。
- スタブリゾルバ:OSやアプリケーション内で動作する軽量なクライアント機能。ユーザープログラムは通常、ローカルに設定された再帰リゾルバに問い合わせを投げます。
名前解決の流れ(再帰・反復の違い)
一般的な名前解決の流れは以下の通りです。クライアント→再帰リゾルバ→ルート→TLD→権威サーバの順に問い合わせが進み、再帰リゾルバが最終的なIPアドレスをクライアントに返します。
- 再帰問い合わせ(Recursive Query):クライアントが再帰リゾルバに投げる問い合わせ。再帰リゾルバは最終的な答えを得るまで他サーバに問い合わせを行います。
- 反復問い合わせ(Iterative/Referral):再帰リゾルバが上位サーバに送る問い合わせでは、上位サーバは最も適切な参照(referral:例えば「.comのNSはこちら」)を返すだけで、最終的な回答は返しません。再帰リゾルバがその参照先に自ら問い合わせを続けます。
主要なDNSレコードタイプ
DNSは多様なレコードタイプをサポートします。代表的なものを挙げます。
- A:ホスト名→IPv4アドレス
- AAAA:ホスト名→IPv6アドレス
- NS:ゾーンの権威ネームサーバ指定
- SOA:ゾーンの基礎情報(管理者、シリアル、リフレッシュ等)
- CNAME:別名(canonical name)の指示(一つの名前が他の名前を参照)
- MX:メールサーバ指定
- TXT:任意テキスト(SPFやDKIM情報なども格納される)
- PTR:逆引き(IP→ホスト名)に使用、in-addr.arpa / ip6.arpa を使う
- SRV:サービス位置(プロトコルや優先度などを指定)
ゾーン、ゾーンファイル、グルー(Glue)レコード
ドメインは「ゾーン」として管理され、ゾーンファイルにレコードが定義されます。SOAレコードはゾーンのメタ情報を含みます。ネームサーバを同じドメイン内で指定する(例:ns1.example.com が example.com の NS となる)場合、親ゾーンにグルーレコード(A/AAAA)を置く必要があり、これがないと名前解決ループを防げません。
キャッシュとTTL
再帰リゾルバやクライアントは受け取ったDNS応答をキャッシュします。TTL(Time To Live)値はレコードの寿命(秒)を示し、その間はキャッシュが使われます。TTLの長短は可用性・変更伝播速度・トラフィック負荷に影響します。たとえばメンテナンス時にIPを切り替える必要がある場合は短いTTLを事前に設定しておくのが一般的です。
DNSセキュリティ — DNSSECとその他の技術
従来のDNSは認証機能が弱く、キャッシュポイズニングや偽の応答による攻撃が可能でした。DNSSEC(DNS Security Extensions)はレコードの整合性と認証を提供する仕組みで、公開鍵暗号を用いてゾーンに署名(RRSIG)を付与し、チェーン・オブ・トラスト(親のDSレコード→子のDNSKEY)で検証します。DNSSECにより名前解決応答の改ざんを検出できますが、応答サイズが大きくなるためTCPフォールバックやフラグメンテーションの問題にも注意が必要です。
近年はクライアントとリゾルバ間のプライバシー保護のため、DNS over TLS(DoT, RFC 7858, port 853)やDNS over HTTPS(DoH, RFC 8484, port 443)といった暗号化トンネルが普及しています。これらは盗聴や中間者攻撃を防ぎますが、運用上の可視性やフィルタリングに影響を与える場合があります。
代表的な攻撃と対策
DNSは攻撃の対象になりやすく、主な攻撃と対策は次の通りです。
- キャッシュポイズニング:偽の応答をキャッシュさせる攻撃。対策はDNSSEC導入、クエリIDとソースポートのランダマイズ。
- DDoS/リフレクション攻撃:オープンリゾルバやANYクエリを悪用した増幅攻撃。対策はオープンリゾルバの無効化、レスポンスレート制限(RRL)、フィルタリング。
- ゾーン転送(AXFR)悪用:無許可でゾーン情報を取得されるリスク。対策はTSIGやACLで転送許可を制限。
- なりすまし・中間者攻撃:DoT/DoHの導入やネットワーク層のセキュリティで軽減。
運用のベストプラクティス
DNS運用者が押さえておくべき実践的なポイントです。
- 複数の権威サーバを用意し、異なるネットワークと地域に分散(Anycastの活用も推奨)。
- ゾーンファイルのバックアップとシリアル管理(SOAシリアルを適切に運用)。
- 権威サーバと再帰リゾルバを分離し、アクセス制御を厳格化(オープンリゾルバを避ける)。
- DNSSECを可能な限り導入し、鍵管理を自動化(KSK/ZSKのローテーション計画)。
- TTLの適切な設定:頻繁に変える場合は短め、安定している場合は長め。
- ソフトウェアの定期アップデート(BIND、Unbound、Knot、PowerDNS、Microsoft DNS など)。
- モニタリングとアラーティング:異常クエリ量やレイテンシ、エラー率の監視。
運用・トラブルシューティングに使うツール
代表的なコマンドと用途を紹介します(ツール名のみ)。
- dig:詳細な問い合わせや +trace(追跡)で解決経路を確認
- nslookup:歴史のある簡易ツール(詳細設定は dig 推奨)
- host:簡便な名前解決確認
- tcpdump / Wireshark:DNSパケットのキャプチャと解析
- 監視ツール(Zabbix、Prometheus 等):稼働監視とアラート
クラウドDNSとマネージドサービス
多くの組織は自社でDNSインフラを構築する代わりに、信頼性・スケーラビリティ・DDoS保護を提供するマネージドDNS(Cloudflare、AWS Route 53、Google Cloud DNS など)を利用します。これらはAnycast、グローバル配信、Webベースの管理UIやAPI、DNSSECのサポートを提供することが多いです。ただし、依存先やベンダーロックイン、プライバシー要件を考慮する必要があります。
特殊な運用形態と機能
- スプリットホライズンDNS(Split-horizon):社内ネットワークと外部で異なる応答を返す運用。内部用と外部用のレコードを切り分けてセキュリティを高める手法。
- 動的DNS(DDNS):クライアントやDHCPが動的にゾーンを更新(例:IPが変わる端末の登録)。RFC 2136 が規定。
- ゾーン転送(AXFR/IXFR):プライマリ → セカンダリ間でゾーンデータを同期。アクセス制御が必須。
よくある誤解と注意点
いくつかの誤解を正します。
- 「DNSは単純なテキストデータ」:正しくは、DNS応答はプロトコル仕様(RFC 1034/1035 等)に従うバイナリ構造で、DNSSECやTSIGなどを組み合わせると複雑になります。
- 「DNSを暗号化すれば全て解決する」:DoH/DoTは通信の機密性を高めますが、権威サーバ側や再帰リゾルバの運用問題、エンドポイントでの可視性低下など別の課題を生みます。
- 「DNSは一度設定すれば放置して良い」:ゾーンの有効期限、鍵のローテーション、ソフトウェア更新、監視は継続的管理が必要です。
まとめ
DNSサーバはインターネットの基幹的なインフラであり、可用性・セキュリティ・パフォーマンスの観点から慎重に設計・運用する必要があります。DNSの仕組み(ルート→TLD→権威、キャッシュ、TTL)、主要なレコードタイプ、セキュリティ(DNSSEC、DoT/DoH)、一般的な攻撃とその対策、そして運用のベストプラクティスを理解することで、信頼性の高い名前解決環境を提供できます。
参考文献
- RFC 1034 - Domain Names - Concepts and Facilities
- RFC 1035 - Domain Names - Implementation and Specification
- RFC 4033 - DNS Security Introduction and Requirements
- RFC 4034 - Resource Records for the DNS Security Extensions
- RFC 4035 - Protocol Modifications for the DNS Security Extensions
- RFC 7858 - DNS over TLS (DoT)
- RFC 8484 - DNS Queries over HTTPS (DoH)
- ICANN - Domain Name System overview
- Verisign - How DNS Works
- Cloudflare - What is DNS?


