この記事の要点
• DNSはドメイン名をIPアドレスに変換する「インターネットの電話帳」
• 名前解決は再帰リゾルバ→ルートDNS→TLD DNS→権威DNSの順で行われる
• TTLの設定でキャッシュ期間を制御し、パフォーマンスと更新速度のバランスを取る
DNSとは
DNS(Domain Name System)は、人間が覚えやすいドメイン名(例:example.com)を、コンピュータが理解できるIPアドレス(例:93.184.216.34)に変換するシステムです。インターネットの「電話帳」とも呼ばれます。
なぜ必要か: IPアドレスは覚えにくい数字の羅列です。DNSのおかげで、私たちは覚えやすいドメイン名でウェブサイトにアクセスできます。
名前解決の流れ
ブラウザで「example.com」にアクセスするとき、以下の手順でIPアドレスが解決されます:
1. ローカルキャッシュの確認
まず、ブラウザとOSのDNSキャッシュを確認します。過去にアクセスしたドメインなら、ここで解決完了です。
# Windowsでキャッシュを確認
ipconfig /displaydns
# macOS/Linuxでキャッシュをクリア
sudo dscacheutil -flushcache
2. リゾルバへの問い合わせ
キャッシュになければ、DNSリゾルバ(通常はISPやGoogle DNS 8.8.8.8など)に問い合わせます。
3. 再帰的クエリ
リゾルバは以下の順序でDNSサーバーに問い合わせます:
- ルートDNSサーバー: トップレベルドメイン(.com)の情報を取得
- TLDサーバー: .comドメインを管理するサーバーに問い合わせ
- 権威DNSサーバー: example.comの実際のIPアドレスを取得
DNSレコードの種類
- Aレコード: ドメイン名をIPv4アドレスにマッピング
- AAAAレコード: ドメイン名をIPv6アドレスにマッピング
- CNAMEレコード: ドメイン名を別のドメイン名にエイリアス
- MXレコード: メールサーバーを指定
- TXTレコード: テキスト情報(SPF、DKIMなど)
ポイント: TTLはDNSレコードのキャッシュ期間を秒単位で指定します。短すぎるとDNSサーバーへの負荷が増え、長すぎると変更の反映が遅れます。
TTL(Time To Live)
TTLは、DNSレコードがキャッシュされる時間(秒)を指定します:
- TTLが長い(例:86400秒=24時間)→ キャッシュ効率が良い
- TTLが短い(例:300秒=5分)→ 変更が早く反映される
実務のヒント: サーバー移行時は事前にTTLを短くしておき、移行後に元に戻すのが一般的です。
まとめ
DNSは、キャッシュと階層構造を活用して、効率的にドメイン名をIPアドレスに変換します。ウェブサイト運営者にとって、DNSレコードの管理とTTLの設定は重要なスキルです。
参考リソース
- RFC 1034 - Domain Names: Concepts and Facilities
- RFC 1035 - Domain Names: Implementation and Specification
- Cloudflare Learning - What is DNS?
- MDN - An overview of HTTP (DNS resolution)
- IANA - Root Zone Database