DNSとは 簡単に解説!インターネットの電話帳が動く仕組みと役割

IT入門辞典

インターネット上でサイトにアクセスするとき、URL(ドメイン名)を入力するだけで簡単に通信が成立します。その背後には「DNS(Domain Name System)」という仕組みが密かに働いています。本記事では、DNSの基本概念から実際にどのように機能し、日常のウェブ利用にどれほど不可欠なのかを、専門用語をできるだけ抑えて解説します。

DNSの概要

  • DNSとは?
    DNSはインターネットの電話帳の役割を担う分散型データベースです。人間が読めるドメイン名(例:example.com)と、コンピュータが通信で使うIPアドレス(例:93.184.216.34)を相互に変換します。

  • 分散型であることのメリット
    全ての情報が一箇所に集約されていないため、単一障害点(シングルポイント・オブ・フェイラー)がなく、スケーラブルで耐障害性が高い設計となっています。

  • 基本の流れ

    1. WebブラウザがURLを受け取る
    2. OSのネットワークスタックがDNSリゾルバにクエリを投げる
    3. インターネット上のDNSサーバ群が順に問い合わせを転送し、最終的にIPアドレスを返す
    4. ブラウザがそのIPへHTTPリクエストを送信

DNSの仕組み – クエリの流れを追う

[ユーザー] -> [ブラウザ] -> [ローカルDNSリゾルバ] -> [上位DNSサーバへの問い合わせ]
  1. ローカルDNSリゾルバ

    • ほとんどの場合、ISP(インターネットサービスプロバイダー)が提供するリゾルバへ問い合わせが送られる。
    • もし以前に同じドメインを問い合わせて結果をキャッシュしていた場合は、キャッシュから即座に回答を返す。
  2. リカーシブ(再帰)クエリ

    • リゾルバから上位DNSサーバへ送られるクエリは「リカーシブ」。
    • 上位サーバは自分が知っている情報を返せない場合、さらに上位に問い合わせを転送する。
  3. 権威DNSサーバ(authoritative DNS)

    • あるドメインに対する最終的な権威情報を保持するサーバ。
    • example.com のドメインレジストラやWebホスティングサービスが管理しています。
  4. 応答

    • すべての中継を経て、最終的に「93.184.216.34」のようにIPアドレスが返ってきます。
    • 取得した情報はローカルリゾルバにキャッシュされ、次回同じクエリが来たときに高速応答を可能にします。

DNSレコードの種類 – 何が登録されているか?

レコード種別役割
AIPv4アドレスを返すexample.com93.184.216.34
AAAAIPv6アドレスを返すexample.com2606:2800:220:1:248:1893:25c8:1946
CNAME別名(エイリアス)を設定blog.example.comexample.com
MXメール交換(メールサーバ)example.comMX 10 mail.example.com
TXTテキスト情報(例えばSPF, DKIM)spf._domainkey.example.comv=spf1 ...
NSネームサーバを指定example.comNS ns1.example.net
SRVサービスの場所を示すminecraft._tcp.example.comSRV 0 5 25565 play.example.com

代表的なレコードを実際に確認する方法

# Aレコード確認
dig example.com A

# MXレコード確認
dig example.com MX

# NSレコード確認
dig example.com NS

権威DNSとリゾルバ – それぞれの役割と協力

役割主な機能配置場所
権威DNSサーバドメインに関する正確な情報(A, MX, TXT など)を保持ドメイン登録局やホスティングサーバ
DNSリゾルバクライアントからのリクエストを取得し、権威DNSへ問い合わせISP、企業内DNSサーバ、ローカルキャッシュ

キャッシュの重要性

  • TTL(Time to Live): レコードごとに設定された有効期限。TTLが過ぎるとリゾルバは再び問い合わせを行う。
  • キャッシュ戦略: 高頻度に参照されるDNS情報は短いTTLを設定し、頻度低い情報は長いTTLに設定することで負荷を分散。

DNSのセキュリティ – 攻撃と対策

  1. DNSスプーフィング(偽装)

    • 攻撃者が偽のDNS応答を送ることでユーザーを偽サイトへ誘導。
    • 対策: DNSSEC(DNS Security Extensions) で署名と検証を行う。
  2. DDoS(DNS Flood)

    • 大量リクエストで権威DNSサーバを圧倒。
    • 対策: クラウドベースのキャッシュとレートリミット、Anycast配信。
  3. キャッシュポイズニング

    • DNSキャッシュに偽情報を書き込むことでユーザーを誘導。
    • 対策: RFC 8020 に基づくクエリの乱数化とセキュリティ設定。

DNSSECの導入手順(簡易版)

# 秘密鍵と公開鍵を生成
dnssec-keygen -a RSASHA256 -b 2048 -n ZONE example.com

# 署名ファイルを作成
dnssec-signzone -F +secroots -o example.com db.example.com

# NSレコードとTXTレコードを更新
dig @dns.example.com example.com ANY

実際の利用例 – 企業での活用ケース

  • マルチサイト運営
    blog.example.com, shop.example.com などサブドメインをCNAMEで統合し、中央の権威サーバで管理。
  • メール機能
    MXレコードを独立したメールサービス(Google Workspace, Microsoft 365)に設定し、ビジュアル分離。
  • CDN(コンテンツデリバリネットワーク)
    cdn.example.com でオリジンサーバを切り替え、グローバルに最適化されたキャッシュサーバへ流量分散。
  • IoTデバイス
    MQTTブローカーやセンサネットワークで一貫したドメイン名を使用し、デバイスの発見と管理を容易化。

インターネットの電話帳が動く仕組みをまとめると

  1. 人が読める名前 → DNSでIPアドレスへ変換
    • 手間なくドメイン名だけでアクセス可能。
  2. 分散型設計とキャッシュにより高速応答
    • キャッシュはローカルリゾルバからTTLに従って管理。
  3. 権威DNSとリゾルバの協力
    • 権威サーバが正確な情報提供、リゾルバが問い合わせとキャッシュ管理を担当。
  4. セキュリティ施策で信頼性確保
    • DNSSEC、Anycast、レートリミットで攻撃に耐える仕組みを構築。

まとめ

DNSは「名前=IP」を結びつけ、ウェブ上の通信を円滑にするインフラストラクチャです。分散型の設計とキャッシングにより高速度かつ高可用性を実現し、さらにDNSSEC等でセキュリティ強化が図られています。実際にサイトを運営している方も、メール設定を行う方も、DNS設定を正しく理解し管理することは、安定したサービス提供とユーザー保護の基礎となります。ぜひ、本記事を参考に自らのDNS環境を点検・最適化してみてください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント