0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DNSサーバーとは何か?

Posted at

目次

  1. はじめに
  2. DNSサーバーの基本概要
  3. DNSの仕組みと役割
  4. DNSの種類
  5. DNSレコードの主な種類
  6. DNSのセキュリティ上の注意点
  7. DNSサーバーを選ぶときのポイント
  8. 参考リンク

はじめに

インターネットでWebサイトを閲覧するとき、「ドメイン名」と呼ばれるわかりやすい文字列(例:example.com)を使います。しかし、実際にはコンピュータ同士がやり取りするには「IPアドレス」が必要になります。 この「ドメイン名」を「IPアドレス」へ変換(名前解決)する役割を担うのが、DNSサーバーです。

本記事では、DNSサーバーの概要や仕組み、種類、セキュリティ、選ぶときのポイントなどを解説していきます。

DNSサーバーの基本概要

DNSとは?

  • Domain Name System(DNS) は、ドメイン名をIPアドレスに変換するための仕組み。
  • ユーザーが「www.example.com」などのドメイン名でアクセスしやすいように、裏では「93.184.216.34」のような数字の列(IPアドレス)に変換している。
  • インターネットの基盤を支える重要な技術であり、Webサイトやメール、その他のネットワークサービスを利用するときに必ず通る「入り口」的存在。

DNSサーバーの役割

1. 名前解決(ドメイン名→IPアドレス)の実行

  • ドメイン名の利便性
    インターネット上で実際に通信する際は、ホスト(サーバー)の位置を表すIPアドレスが必要になります。しかし、人間にとっては長い数字の列(例:192.0.2.1 など)を覚えるのは大変です。そこで「www.example.com」のような分かりやすい文字列を使い、それを機械が理解できるIPアドレスへ変換する仕組みを提供するのがDNSサーバーです。

  • 問い合わせの流れ

    1. ユーザーがWebブラウザなどでドメイン名を入力
    2. DNSリゾルバ(キャッシュDNSサーバー)やOSのキャッシュを参照
    3. 未キャッシュの場合はルートDNSサーバー、TLD DNSサーバーを経由し、最終的にはそのドメインを管理する権威DNSサーバーに問い合わせ
    4. 得られたIPアドレスがユーザーに返ってくる
  • DNSがなければどうなる?
    もしDNSがなければ、ユーザーはIPアドレスを直接入力してサイトへアクセスする必要があります。これは覚えにくいうえ、サーバーのIPアドレス変更に伴う混乱も大きくなるでしょう。DNSがあることで、私たちは直感的な文字列(ドメイン名)でサイトやサービスにアクセスできるのです。

2. キャッシュ機能による高速化

  • キャッシュとは?
    DNSサーバーは一度取得したドメインとIPアドレスの対応情報を一定時間保存(キャッシュ)します。キャッシュに保存しておくことで、同じドメイン名の再問い合わせが発生したとき、短時間で回答が返せるようになります。

  • TTL(Time To Live)の活用

    • キャッシュ情報には有効期限(TTL)が設定されます。
    • 期限が切れるまではキャッシュを利用して高速応答が可能ですが、TTLが切れると改めて外部のDNSサーバーに問い合わせて最新の情報を取得します。
    • 適切なTTLの設定により、アクセス性能と情報の新鮮さをバランス良く管理できます。
  • メリット

    1. 応答速度が速い
      • キャッシュがある場合は、わざわざ外部のDNSサーバーをたどらなくてもよい。
    2. ネットワーク負荷の軽減
      • 何度も同じ問い合わせを繰り返す必要がないため、全体としてのDNSサーバー負荷が下がる。
  • デメリット

    • キャッシュが残っているため、ドメインのIPアドレスを変更した場合に反映が遅れることがある。
    • 不要になった情報をキャッシュし続けると、誤った情報を返すリスク(ただしTTLによって緩和される)。

3. ドメイン情報の管理(権威DNSサーバーの場合)

  • 権威DNSサーバーとは?
    あるドメイン(例:example.com)の正しいDNSレコードを保持し、「そのドメイン名はどのIPアドレスか」を最終的に答える責任を持つサーバーを「権威DNSサーバー(Authoritative DNS Server)」と呼びます。

  • ゾーン情報(ゾーンファイル)の保持

    • 権威DNSサーバーは自分の管理下にあるドメインのゾーンファイルを保持しており、そこには以下のような情報が含まれます。
      • Aレコード(IPv4アドレスの指定)
      • AAAAレコード(IPv6アドレスの指定)
      • MXレコード(メールサーバー情報)
      • CNAMEレコード(エイリアス設定)
      • TXTレコード(任意のテキスト情報、SPFなど)
      • NSレコード(Name Server情報)
    • こうしたレコードを正確に管理・更新することで、ドメインに関するさまざまなアクセスが適切に処理されます。
  • プライマリDNSとセカンダリDNS

    • 一般的に、権威DNSサーバーは冗長構成をとり、メインのプライマリDNS(Primary DNS)と複数のセカンダリDNS(Secondary DNS)を運用します。
    • ゾーン転送機能を使い、プライマリDNSの最新情報をセカンダリDNSへ複製することで、障害やトラフィック集中への耐性を高めています。
  • 管理上の注意点

    • ゾーン転送の制限: 意図しない相手にゾーンファイルを渡さないように、アクセスを制限する。
    • TTL設定の調整: 変更が必要な時期にはTTLを短めに設定しておくと、切り替えがスムーズになる。
    • セキュリティアップデート: DNSソフトウェアのアップデートを怠ると、DNSキャッシュポイズニングなどの攻撃リスクが高まる。

DNSの仕組みと役割

DNS問い合わせの流れ

スクリーンショット 2024-12-30 19.28.24.png
参考リンク

下記の解説は、GeeksforGeeksが提示している図をもとに、DNS問い合わせの流れを番号順に細かく説明したものです。
ユーザーが「https://geeksforgeeks.org」にアクセスする際、クライアント・DNSリゾルバ・ルートサーバー・TLDサーバー・権威DNSサーバー・実サーバーがどのようにやり取りをしているかを理解しやすくなります。

1. クライアントからのアクセス要求

  • ユーザーの操作:
    PCやスマートフォンなどの端末のブラウザから「https://geeksforgeeks.org」にアクセスしようとする。
  • 最初の確認:
    端末(OS)やブラウザはまず、ローカルキャッシュ(OSのDNSキャッシュやブラウザキャッシュ)を確認して、すでにgeeksforgeeks.orgのIPアドレスを知っているかどうかをチェックする。
  • ポイント:
    キャッシュがある場合は後続の問い合わせが不要となるが、今回はキャッシュがヒットしない想定で次のステップに進む。

2. ローカルキャッシュ(OSキャッシュ、ルーターキャッシュ)の確認

  • ローカルキャッシュの仕組み:
    端末(OS)がDNS解決結果を一時的に保存している場合がある。さらに自宅やオフィスのルーターがDNS情報をキャッシュしていることもある。
    ここでヒットすれば即座にIPアドレスを返して通信を完了できる。
  • キャッシュミス時:
    ローカルキャッシュにgeeksforgeeks.orgの情報がない場合、次のステップへ進む。

3. ホストファイルの確認

  • ホストファイルとは:
    OSの設定ファイルの一種(WindowsならC:\Windows\System32\drivers\etc\hosts、Linux/macOSなら/etc/hostsなど)で、特定のドメイン名とIPアドレスの対応を強制的に記述できる仕組み。
  • ホストファイルにない場合:
    大半の一般ユーザーではホストファイルに独自設定をしていないため、この段階で何も見つからないケースが多い。
    見つからなかった場合はリゾルバ(DNSサーバー)へ問い合わせが移る。

4. DNSリゾルバがルートサーバーに問い合わせ

  • DNSリゾルバ(キャッシュDNSサーバー):
    クライアントの設定によって指定されたDNSリゾルバ(ISPやGoogle Public DNS、Cloudflare DNSなど)が外部問い合わせを行う。
    まだキャッシュされていないため、まずはルートDNSサーバーに「.orgドメインを管理するTLDサーバーはどこか?」と問い合わせる。
  • ルートDNSサーバーの役割:
    ルートサーバーは「最上位の案内役」であり、.orgなどのTLDを管理するDNSサーバーを紹介するだけ。
    ここでは実際のIPアドレスは返さず、TLDサーバーのアドレスを返答する。

5. ルートサーバーからの応答

  • TLDサーバーへの道案内:
    ルートサーバーは「.orgを管理しているのは、このTLDサーバーだよ」という情報をDNSリゾルバに渡す。
  • 次のステップへの橋渡し:
    実際にgeeksforgeeks.orgの情報を持っているわけではなく、あくまで「次にどこを尋ねるべきか」を教える。

6. 「権威DNSサーバーを教えてほしい」というリクエスト

  • TLDサーバーへ問い合わせ:
    リゾルバはルートサーバーから得たTLDサーバー(.orgを管理するサーバー)に問い合わせを行う。
    geeksforgeeks.orgの権威DNSサーバー(=最終的に正解を知っているサーバー)はどこか?」と質問するイメージ。
  • TLDサーバーの役割:
    .org配下の各ドメインを管理する権威DNSサーバーがどこにあるのかを知っており、リゾルバにそれを提示する。

7. TLDサーバーから権威DNSサーバーの情報取得

  • 権威DNSサーバーを紹介:
    TLDサーバーは「geeksforgeeks.orgのゾーンを管理しているのは、この権威DNSサーバーだよ」という情報を返す。
  • 実際のIPアドレスはまだ得られない:
    ここまでは「階層的に次に問い合わせるDNSサーバー」を教えてもらうステップであり、まだgeeksforgeeks.org自体のIPアドレスはわからない。

8. DNSリゾルバが権威DNSサーバーに問い合わせ

  • 最終的な正解を持つサーバーへの問い合わせ:
    リゾルバがTLDサーバーから教えられた「geeksforgeeks.orgの権威DNSサーバー」に対し、「www.geeksforgeeks.orgのIPアドレスを教えてほしい」という問い合わせを送る。
  • ゾーンファイルの参照:
    権威DNSサーバーは、該当ドメインのゾーン情報(Aレコード、AAAAレコードなど)を正確に保持しているため、ここで初めて最終的なIPアドレスが取得できる。

9. 権威DNSサーバーからの応答

  • Aレコード(IPv4)などの情報:
    権威DNSサーバーは「www.geeksforgeeks.orgx.x.x.x(IPアドレス)」という対応関係をリゾルバに返す。
  • リゾルバのキャッシュ更新:
    リゾルバは、この回答を自分のキャッシュに一定時間(TTL)保存しておくことで、後続の問い合わせを高速化する。

10. DNSリゾルバがクライアントへ応答

  • クライアントへの最終回答:
    リゾルバは、権威DNSサーバーから得たIPアドレスをクライアント(ブラウザ)に返答する。
  • クライアントから見ると:
    「一度DNSリゾルバに問い合わせると、あとはまとめて最終的なIPアドレスが返ってくる」形になるため、これを再帰問い合わせと呼ぶ(クライアントの視点)。

11. クライアントが実サーバーにリクエスト送信

  • IPアドレスを使った通信:
    クライアント(ブラウザ)がgeeksforgeeks.orgに紐づく実際のIPアドレス(たとえば 93.184.216.34 など)に対して、HTTP/HTTPSリクエストを送る。
  • Webサーバーとのやり取り開始:
    DNS解決が完了したことで、具体的なWebページ取得やAPIコールなどが行われ、ユーザーは目的のサイトを閲覧できるようになる。

12. 実サーバーからの応答(Webページ取得)

  • Webページのデータ送信:
    実サーバーはクライアントからのリクエストを受け取り、WebページのHTMLやCSS、JavaScript、画像などのデータを返却する。
  • ユーザーのブラウザで表示:
    受け取ったデータをもとにブラウザは画面を描画し、ユーザーは「https://geeksforgeeks.org」のページを閲覧できるようになる。

DNSの種類

DNSサーバーは、その役割によっていくつかに分類されます。

  1. ルートDNSサーバー

    • インターネット全体のドメイン空間の根本を担うサーバー。
    • 全世界に13系統存在し、運用者も分散している。
  2. TLD(トップレベルドメイン)DNSサーバー

    • .com, .org, .net などのgTLDや、.jp, .us など国別ccTLDを管理するDNSサーバー。
    • ルートDNSサーバーからの問い合わせに対して、各ドメインを管理している権威DNSサーバーを教える役割。
  3. 権威DNSサーバー(Authoritative DNS Server)

    • 特定のドメイン(例:example.com)の正しいDNS情報(ゾーン情報)を持つサーバー。
    • レコードの最終的な答えを返す。
  4. リゾルバ(キャッシュDNSサーバー)

    • クライアントから問い合わせを受け、必要に応じて外部のDNSサーバーへ問い合わせを行う。
    • 得た情報をキャッシュして高速化する。

DNSレコードの主な種類

DNSで管理される情報を「DNSレコード」と呼びます。代表的なものは以下の通りです。

  • Aレコード(Address record)
    ドメイン名をIPv4アドレスに紐付ける。

  • AAAAレコード
    ドメイン名をIPv6アドレスに紐付ける。

  • CNAMEレコード(Canonical Name record)
    別名(エイリアス)を正規のドメイン名に紐付ける。

  • MXレコード(Mail Exchange record)
    ドメイン名のメールサーバーのホスト名を指定する。

  • TXTレコード
    任意のテキスト情報を格納。SPF設定やドメイン所有証明などに利用される。

  • NSレコード(Name Server record)
    そのドメインを管理するDNSサーバーを指定する。

これらのレコードを適切に設定することで、Webサイトのアクセスやメールの送受信などが円滑に機能します。

DNSのセキュリティ上の注意点

DNSはインターネットの根幹を支える重要な仕組みであるがゆえに、攻撃の標的にもなりやすいです。以下のようなセキュリティ上の注意点があります。

  1. DNSキャッシュポイズニング

    • 攻撃者が偽のDNS応答をキャッシュDNSサーバーに送り込み、正規のドメイン名を不正なIPアドレスに誘導する攻撃。
    • 対策として、DNSSEC(DNS Security Extensions)の導入や、ソフトウェアを常に最新に保つことが重要。
  2. DDoS攻撃(DNS Amplification Attack)

    • DNSの仕組みを悪用して、大量のトラフィックを特定のサーバーへ送り付ける攻撃。
    • オープンリゾルバ化しないように設定し、レートリミットを導入する。
  3. ゾーン転送の制限

    • 権威DNSサーバーのゾーン転送がオープンな状態だと、外部にDNSレコードの詳細情報を渡してしまう危険がある。
    • アクセス制御を行い、転送先DNSサーバーを限定する。
  4. DNS over HTTPS (DoH), DNS over TLS (DoT)

    • 通信を暗号化することでプライバシー保護や改ざん防止を図る技術。
    • 一部のDNSプロバイダやWebブラウザが対応しており、今後も注目されている。

DNSサーバーを選ぶときのポイント

  1. 可用性と冗長構成

    • DNS障害を防ぐために、冗長化されたインフラを提供しているDNSプロバイダを選ぶ。
    • 複数のリージョンにサーバーを設置しているかも重要。
  2. 速度とパフォーマンス

    • レイテンシを下げ、クライアントに近いエッジサーバーを用意しているか確認。
    • CloudflareやAWS Route53など、大規模CDNやクラウドが提供するDNSは、世界中に分散されたサーバーネットワークを持つ。
  3. セキュリティ機能

    • DNSSEC対応、DDoS緩和策などを提供しているプロバイダが望ましい。
    • ゾーン転送や権限管理もチェックする。
  4. 管理のしやすさ・運用コスト

    • DNSレコードの編集画面やAPIなど、運用管理のしやすさも考慮。
    • 無料プランと有料プランの違い、サポート体制などを比較。

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?