DNSの仕組みと設定【2026年6月更新】

インターネット上のあらゆるサービスはDNS(Domain Name System)によって成り立っています。ウェブサイトへのアクセス、メールの送受信、クラウドサービスの利用など、すべてDNSがなければ機能しません。DNSの仕組みを理解し、適切な設定を行うことで、システムのパフォーマンス向上、セキュリティ強化、運用効率化を実現できます。本記事では、DNSの基本原理から実践的な設定方法、最新のセキュリティ対策まで、包括的に解説します。自社システムのDNS運用に課題を感じている方や、クラウド移行を検討している方は必見です。

目次

– [DNSとは何か、なぜ重要なのか](#dnsとは何かなぜ重要なのか) – [DNSの基本原理と仕組み](#dnsの基本原理と仕組み) – [DNSサーバの種類と役割](#dnsサーバの種類と役割) – [DNSレコードの種類と用途](#dnsレコードの種類と用途) – [DNSの設定方法と実践ガイド](#dnsの設定方法と実践ガイド) – [DNSセキュリティの最新動向](#dnsセキュリティの最新動向) – [DNSパフォーマンスの最適化手法](#dnsパフォーマンスの最適化手法) – [DNS監視とトラブルシューティング](#dns監視とトラブルシューティング) – [まとめ](#まとめ) —

DNSとは何か、なぜ重要なのか

DNS(Domain Name System)は、人間が理解しやすいドメイン名(例:example.com)を、コンピュータが理解できるIPアドレス(例:192.0.2.1)に変換するシステムです。この変換プロセスがなければ、インターネット上のサービスにアクセスするたびにIPアドレスを手動で入力しなければなりません。例えば、Googleのウェブサイトにアクセスする際に、142.250.190.46といったIPアドレスを直接入力するのは現実的ではありません。

DNSの重要性は、単なる名前解決機能にとどまりません。以下のような側面でインターネットインフラの基盤を支えています。

  • サービスの可用性向上:DNSは負荷分散(ロードバランシング)にも利用され、特定のサーバに障害が発生しても他のサーバにリクエストを振り分けることでサービスを継続できます。
  • セキュリティ強化:DNSSEC(DNS Security Extensions)を導入することで、DNS応答の改ざんを防止し、フィッシング攻撃のリスクを低減できます。
  • グローバルなアクセス性能向上:CDN(Content Delivery Network)と連携することで、ユーザーに最も近いサーバからコンテンツを配信し、応答速度を向上させます。
  • クラウドサービスとの連携:AWS Route 53、Google Cloud DNS、Azure DNSなどのクラウドDNSサービスを活用することで、柔軟なサービス展開とコスト削減が可能です。

総務省の「令和4年度情報通信利用動向調査」によると、日本国内のインターネット利用者は1億2,000万人を超え、そのうち98.6%がDNSを介してインターネットに接続しています(出典: 総務省「令和4年度情報通信利用動向調査」)。この数字からも、DNSが現代社会のインフラとして不可欠であることがわかります。

DNSの基本原理と仕組み

DNSの階層構造

DNSは、階層的な構造を持つ分散型データベースです。この構造は、以下の4つのレベルで構成されています。

レベル説明
ルートDNSサーバDNS階層の最上位に位置し、トップレベルドメイン(TLD)の管理サーバを指す.(ピリオド)
トップレベルドメイン(TLD)サーバ国別コード(ccTLD)やジェネリック(gTLD)を管理するサーバ.com.jp.net
権威DNSサーバ特定のドメインのDNS情報を管理するサーバexample.comのDNS情報を管理
ローカルDNSサーバISPや企業内で運用され、ユーザーからの問い合わせを受け付けるキャッシュサーバ自宅のルーターや企業のDNSサーバ

例えば、www.example.comというドメイン名を解決する際の流れは以下の通りです。

  1. ユーザーがブラウザにwww.example.comを入力します。
  2. ローカルDNSサーバ(ISPや企業内DNS)に問い合わせます。
  3. ローカルDNSサーバは、まず自身のキャッシュを確認します。キャッシュに情報がなければ、ルートDNSサーバに問い合わせます。
  4. ルートDNSサーバは、.comのTLDサーバを返します。
  5. ローカルDNSサーバは、.comのTLDサーバにexample.comの権威DNSサーバを問い合わせます。
  6. 権威DNSサーバは、www.example.comのIPアドレスを返します。
  7. ローカルDNSサーバは、このIPアドレスをユーザーに返します。
  8. ユーザーは、取得したIPアドレスにアクセスします。

DNSクエリの種類

DNSクエリには、主に以下の3種類があります。

クエリタイプ説明用途
再帰的クエリ(Recursive Query)クライアントからの問い合わせを受けたDNSサーバが、他のDNSサーバに問い合わせを繰り返し、最終的に回答を返す一般的なDNS解決に使用
反復的クエリ(Iterative Query)DNSサーバが、クライアントに対して次の問い合わせ先を返す。クライアントが自身で問い合わせを繰り返すルートDNSサーバやTLDサーバが使用
非再帰的クエリ(Non-Recursive Query)DNSサーバが自身のキャッシュや権威DNSサーバの情報を返すキャッシュヒット時や権威DNSサーバからの応答

DNSのキャッシュ機能

DNSサーバは、一度解決したドメイン名とIPアドレスのペアをキャッシュに保存します。これにより、同じドメインへのアクセス時には、再度DNSサーバに問い合わせることなく、キャッシュから回答を返すことができます。キャッシュの有効期限は、DNSレコードのTTL(Time To Live)によって制御されます。

TTLの設定は、以下の要素を考慮して決定します。

  • サービスの安定性:TTLを短く設定すると、サーバの移行やIPアドレスの変更に迅速に対応できますが、DNSサーバへの負荷が増加します。
  • セキュリティ:TTLを短く設定することで、DNSキャッシュポイズニング攻撃のリスクを低減できます。
  • パフォーマンス:TTLを長く設定すると、キャッシュヒット率が向上し、DNSクエリの応答時間が短縮されます。

一般的なTTLの設定値は以下の通りです。

TTL値用途
300秒(5分)高頻度で変更される可能性のあるドメイン
3600秒(1時間)一般的なウェブサイト
86400秒(24時間)安定したサービスや頻繁に変更されないドメイン

DNSサーバの種類と役割

権威DNSサーバ

権威DNSサーバは、特定のドメインのDNS情報を管理するサーバです。このサーバは、ドメインの所有者によって設定され、ドメイン名とIPアドレスのマッピング(DNSレコード)を保持しています。権威DNSサーバは、以下の2種類に分類されます。

種類説明メリットデメリット
プライマリDNSサーバドメインのDNS情報の主たる管理サーバ。DNSレコードの更新はここで行う一元管理が可能で、設定変更が容易単一障害点になりやすい
セカンダリDNSサーバプライマリDNSサーバのバックアップとして機能。プライマリからのゾーン転送(AXFR)で情報を同期冗長性が確保され、可用性が向上設定が複雑で、同期に時間がかかる場合がある

権威DNSサーバの設定には、以下の要素が含まれます。

  • ゾーンファイル:ドメインのDNSレコードを定義したテキストファイル
  • SOA(Start of Authority)レコード:ゾーンの管理情報(プライマリDNSサーバ、管理者メールアドレス、更新間隔など)を定義
  • NS(Name Server)レコード:権威DNSサーバのホスト名を定義
  • その他のDNSレコード:A、AAAA、MX、CNAMEなどのレコード

キャッシュDNSサーバ

キャッシュDNSサーバは、ユーザーからのDNSクエリを受け付け、その結果をキャッシュに保存するサーバです。キャッシュDNSサーバは、以下の2種類に分類されます。

種類説明用途
ローカルDNSサーバ企業や家庭内で運用され、社内ネットワークや家庭内ネットワークのDNSクエリを処理社内システムのDNS解決、インターネットへのアクセス制御
パブリックDNSサーバISPや第三者によって運用され、一般ユーザーにDNSサービスを提供Google Public DNS(8.8.8.8)、Cloudflare DNS(1.1.1.1)など

キャッシュDNSサーバのメリットは以下の通りです。

  • DNSクエリの応答時間を短縮できる
  • インターネットへのアクセスを制御できる(フィルタリング、広告ブロックなど)
  • 権威DNSサーバへの負荷を軽減できる

フォワーダー

フォワーダーは、キャッシュDNSサーバが自身でDNSクエリを解決できない場合に、他のDNSサーバに問い合わせを転送する機能です。フォワーダーを使用することで、以下のメリットがあります。

  • 社内ネットワークのDNSクエリを外部に漏らさずに解決できる
  • ISPのDNSサーバへの負荷を軽減できる
  • 特定のドメインへのアクセスを制御できる

DNSレコードの種類と用途

DNSレコードは、ドメイン名とIPアドレス、メールサーバ、その他のリソースを関連付けるための情報です。以下に主要なDNSレコードの種類と用途を解説します。

レコードタイプ説明構文例用途
Aレコードドメイン名をIPv4アドレスにマッピングexample.com. IN A 192.0.2.1ウェブサイト、サーバのIPアドレスを指定
AAAAレコードドメイン名をIPv6アドレスにマッピングexample.com. IN AAAA 2001:db8::1IPv6対応のサーバのIPアドレスを指定
CNAMEレコードドメイン名を別のドメイン名にエイリアスwww.example.com. IN CNAME example.com.サブドメインを別のドメインに転送
MXレコードドメインのメールサーバを指定example.com. IN MX 10 mail.example.com.メールの送受信に使用するメールサーバを指定
TXTレコードテキスト情報を格納example.com. IN TXT "v=spf1 include:_spf.example.com ~all"SPF、DKIM、DMARCなどのメール認証、ドメイン所有者の証明
NSレコードドメインの権威DNSサーバを指定example.com. IN NS ns1.example.com.ドメインの権威DNSサーバを定義
SOAレコードゾーンの管理情報を定義example.com. IN SOA ns1.example.com. admin.example.com. 2024060101 3600 1800 604800 86400ゾーンのシリアル番号、更新間隔、リトライ間隔などを設定
PTRレコードIPアドレスをドメイン名に逆引き1.2.0.192.in-addr.arpa. IN PTR example.com.メールサーバの逆引き検証、ログ解析
SRVレコードサービスのホスト名とポートを指定_sip._tcp.example.com. IN SRV 10 5 5060 sipserver.example.com.SIP、XMPPなどのサービスのホスト名とポートを指定
CAAレコードドメインのSSL/TLS証明書発行を許可する認証局を指定example.com. IN CAA 0 issue "letsencrypt.org"SSL/TLS証明書の発行元を制限

DNSレコードの管理

DNSレコードの管理には、以下のツールやサービスを利用できます。

  • BIND(Berkeley Internet Name Domain):オープンソースのDNSサーバソフトウェア。多くの企業やISPで利用されています。
  • Microsoft DNS Server:Windows Serverに標準で搭載されているDNSサーバソフトウェア。
  • AWS Route 53Google Cloud DNSAzure DNS:クラウドプロバイダーが提供するDNSサービス。
  • Cloudflare DNSGoogle Public DNS:パブリックDNSサービス。

DNSレコードの管理において、以下の点に注意が必要です。

  • TTLの設定:TTLを適切に設定し、DNSレコードの変更が反映されるまでの時間を考慮する。
  • セキュリティ:DNSレコードの不正な変更を防ぐために、権限管理を徹底する。
  • バックアップ:DNSレコードのバックアップを定期的に取得し、障害発生時に迅速に復旧できるようにする。
  • 監視:DNSサーバの稼働状況や応答時間を監視し、障害発生時に迅速に対応する。

DNSの設定方法と実践ガイド

自宅や小規模オフィスでのDNS設定

自宅や小規模オフィスでDNSを設定する場合、以下の手順で行います。

ステップ1: ドメインの取得

ドメインを取得するには、以下のレジストラを利用します。

  • GMOドメイン
  • お名前.com
  • ムームードメイン
  • Google Domains

ドメインを取得したら、レジストラの管理画面からDNS設定を行います。

ステップ2: DNSレコードの設定

ドメインを取得したら、以下のDNSレコードを設定します。

レコードタイプホスト名TTL説明
A@192.0.2.13600ドメイン自体のIPアドレス
Awww192.0.2.13600wwwサブドメインのIPアドレス
MX@mail.example.com3600メールサーバのホスト名
Amail192.0.2.23600メールサーバのIPアドレス
TXT@v=spf1 include:_spf.example.com ~all3600SPFレコード

ステップ3: DNSサーバの構築

自宅や小規模オフィスでDNSサーバを構築する場合、以下の手順で行います。

  1. DNSサーバソフトウェアのインストール
    • Linuxの場合:sudo apt install bind9
    • Windowsの場合:Windows Serverの「DNSサーバー」ロールを追加
  2. ゾーンファイルの作成
    • BINDの場合:/etc/bind/zones/example.com.zoneにゾーンファイルを作成
    • Windows DNSの場合:DNSマネージャーで新しいゾーンを作成
  3. DNSサーバの設定
    • BINDの場合:/etc/bind/named.conf.optionsにフォワーダーやキャッシュ設定を追加
    • Windows DNSの場合:DNSマネージャーでフォワーダーを設定
  4. DNSサーバの起動と確認
    • BINDの場合:sudo systemctl restart bind9
    • Windows DNSの場合:DNSサーバーを再起動
    • 動作確認:dig example.com @localhostnslookup example.com localhostで確認

企業や大規模システムでのDNS設定

企業や大規模システムでDNSを設定する場合、以下の要素を考慮する必要があります。

冗長性の確保

企業システムでは、DNSサーバの冗長性を確保することが重要です。以下の方法で冗長性を確保できます。

  • プライマリ・セカンダリDNSサーバの構築
    • プライマリDNSサーバ:ドメインのDNSレコードを管理
    • セカンダリDNSサーバ:プライマリDNSサーバのバックアップとして機能。ゾーン転送(AXFR)で情報を同期
  • 複数のロケーションにDNSサーバを配置
    • オンプレミスとクラウドのハイブリッド構成
    • 複数のデータセンターにDNSサーバを配置し、グローバルな負荷分散を実現

セキュリティの強化

企業システムでは、DNSセキュリティを強化することが重要です。以下の対策を実施します。

  • DNSSECの導入
    • DNS応答の改ざんを防止し、DNSキャッシュポイズニング攻撃のリスクを低減
    • DNSSECを導入するには、以下の手順で行います。
      1. 鍵ペアの生成(KSKとZSK)
      2. DNSSEC署名付きのゾーンファイルを作成
      3. 権威DNSサーバにDNSSECレコードを追加
      4. DNSSEC検証を有効化
  • DNS over HTTPS(DoH)やDNS over TLS(DoT)の導入
    • DNSクエリを暗号化し、プライバシーを保護
    • DoHはHTTPSを使用してDNSクエリを暗号化。DoTはTLSを使用してDNSクエリを暗号化。
  • アクセス制御の実施
    • DNSサーバへのアクセスを制限し、不正なアクセスを防止
    • ファイアウォールやACL(アクセスコントロールリスト)を使用して、特定のIPアドレスからのアクセスのみを許可

パフォーマンスの最適化

企業システムでは、DNSパフォーマンスを最適化することで、ユーザー体騺:

  • CDNプロバイダーのDNSサービスを利用し、ユーザーに最も近いサーバからコンテンツを配信
  • DNSとCDNの連携により、ウェブサイトの応答速度を向上

DNSセキュリティの最新動向

DNSSECの進化

DNSSEC(DNS Security Extensions)は、DNS応答の改ざんを防止するための拡張機能です。DNSSECを導入することで、以下のセキュリティリスクを低減できます。

  • DNSキャッシュポイズニング攻撃:攻撃者がDNS応答を改ざんし、ユーザーを偽のウェブサイトに誘導する攻撃
  • サプライチェーン攻撃:DNS応答を改ざんすることで、ソフトウェアのアップデートやパッチ配信を妨害する攻撃
  • フィッシング攻撃:偽のドメイン名を使用して、ユーザーを騙す攻撃

DNSSECの導入には、以下の手順が必要です。

  1. 鍵ペアの生成
    • KSK(Key Signing Key):ゾーンの署名に使用する鍵
    • ZSK(Zone Signing Key):ゾーン内のレコードを署名する鍵
  2. DNSSEC署名付きのゾーンファイルを作成
    • BINDの場合:dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N INCREMENT -o example.com example.com.zone
    • Windows DNSの場合:DNSマネージャーでDNSSECを有効化し、署名を実行
  3. DNSSECレコードの追加
      【編集・制作ポリシー】
      本記事はRoute Bloom編集部が各ベンダー公式ドキュメント・エンジニア監修をもとに作成しています。インフラ・クラウド構築は環境により異なります。本番環境への適用前に必ずテストを実施してください。情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。
      ABOUT ME
      たから
      サラリーマンをしながら開業して経営やってます。 今年、本業で独立・別事業を起業予定です。 ◆経験:IT講師/インフラエンジニア/PM/マネジメント/採用/運用・保守・構築・設計 ◆取得資格:CCNA/CCNP/LPIC-1/AZ-900/FE/サーティファイC言語 ◆サイドビジネス:アパレル事業/複数のWEBメディアを運営