🦁

Day 11: DNS

2024/11/15に公開

はじめに

インターネットを使っているとき、僕たちは意識せずに「DNS(Domain Name System)」のお世話になっています。このDNSがあるおかげで、サイトにアクセスするために複雑なIPアドレスを覚えなくても、わかりやすいURLだけで目的のページにたどり着けるようになります。ここでは、DNSがどんな仕組みで動いているのか、その基本と少し詳しい部分を解説します。


DNSとは?

DNS(Domain Name System)は、わかりやすいドメイン名(例:example.com)とIPアドレス(例:93.184.216.34)を結びつける「インターネットの電話帳」のような存在です。たとえば、ブラウザで「example.com」と入力すると、DNSが裏で「93.184.216.34」に変換してくれます。これにより、難しい数字のIPアドレスを覚えなくてもインターネットを使うことができています。


DNSの仕組み

DNSがどのように動いているのか、実際の流れを見ていきます。

1. DNSリクエストの流れ

まず、ブラウザにドメイン名(例:example.com)を入力すると、DNSが働き始めます。

  1. クライアントのリクエスト:ブラウザがまずローカルキャッシュに「example.com」のIPアドレスがあるかを確認します。キャッシュにない場合、ネットワーク上のDNSサーバーに問い合わせを送ります。
  2. リカーシブDNSサーバー:DNSリクエストは、まずリカーシブDNSサーバーに届きます。ここでキャッシュがあれば即座にIPアドレスが返され、なければリクエストが次のDNSサーバーに送られます。
  3. ルートDNSサーバー:リクエストは次にルートDNSサーバーに届き、ここで「.com」などトップレベルドメインの位置情報が渡されます。
  4. TLD(トップレベルドメイン)DNSサーバー:ルートサーバーが示すTLDサーバーにリクエストが送られ、次に特定のドメインの位置情報が返されます。
  5. 権威DNSサーバー:最終的に、そのドメインの詳細情報を持つ権威DNSサーバーが応答し、IPアドレスが返されます。

この流れを経て、ブラウザはIPアドレスを取得し、サイトにアクセスします。


DNSレコードの種類

DNSには複数のレコードタイプがあり、それぞれが特定の役割を持っています。ここでは、主なDNSレコードについて紹介します。

  • Aレコード(Address Record):ドメイン名をIPv4アドレスに変換します。最も一般的なDNSレコードです。
  • AAAAレコード(IPv6 Address Record):ドメイン名をIPv6アドレスに変換します。AレコードのIPv6バージョンです。
  • CNAMEレコード(Canonical Name Record):ドメイン名のエイリアスを作成し、別のドメインにリダイレクトします。
  • MXレコード(Mail Exchange Record):メールサーバーの位置情報を示し、メールの送受信に必要です。
  • TXTレコード(Text Record):任意のテキスト情報を保持するレコードで、ドメインの所有権の確認やSPF(送信ドメイン認証)設定に使われます。

これらのレコードがそれぞれの役割を担うことで、さまざまなネットワークサービスがスムーズに機能しています。


キャッシュとTTL

DNSでは「キャッシュ」が重要な役割を果たしています。キャッシュとは、一度取得した情報を一定期間保持する仕組みのことです。たとえば、あるサイトのIPアドレスを一度調べたら、次回はすぐにアクセスできるようにキャッシュに保存されます。

TTL(Time to Live)

TTLはキャッシュの有効期限を決める値で、この時間が経過すると、キャッシュに保存された情報は自動的に消去されます。TTLの設定により、最新の情報がキャッシュされる頻度を調整でき、ネットワークの負荷軽減と更新情報の反映速度のバランスを取ることができます。


DNSのセキュリティリスク

DNSはインターネットの基盤を支える重要な仕組みですが、セキュリティリスクもあります。ここでは、代表的なDNSに関連する攻撃手法を紹介します。

  • DNSキャッシュポイズニング:悪意のあるデータをDNSキャッシュに挿入し、ユーザーを偽のサイトに誘導する攻撃手法です。
  • DDoS攻撃(DNS増幅攻撃):DNSサーバーを大量のリクエストで圧迫し、サービスをダウンさせる攻撃です。
  • DNSトンネリング:DNSリクエストに悪意のあるデータを含めて通信を隠す手法です。

これらの攻撃を防ぐために、DNSセキュリティの強化が重要です。例えば、「DNSSEC」というセキュリティ拡張機能を使用すると、ドメイン情報の真正性を確認でき、偽のDNS応答を防ぐことができます。


まとめ

DNSはインターネットの「住所録」として、ユーザーがIPアドレスを意識せずにウェブを楽しめる仕組みを提供しています。DNSリクエストの流れ、キャッシュとTTLの役割、さらにはDNSのセキュリティリスクについて知ることで、DNSの全体像を理解できると思います。ネットワーク管理やセキュリティ対策を考える上で重要な点になります。

Discussion