DNS基礎
所要時間
約40分
学べること
- DNS(Domain Name System)の基本概念と動作原理
- DNSの階層構造とゾーン管理
- レコードタイプと用途
- 名前解決の仕組みとキャッシュ
- アプリケーション開発で必要なDNS知識
- 実践的なDNSクエリとトラブルシューティング
前提知識
- TCP/IPの基本的な理解
- ネットワークの基礎知識(IPアドレス、ポート)
- Linuxコマンドラインの基本操作
1. DNSとは
1.1 基本概念
**DNS(Domain Name System)**は、人間が読みやすいドメイン名(例:example.com)をコンピュータが理解できるIPアドレス(例:93.184.216.34)に変換する分散型データベースシステムです。
┌─────────────────────────────────────────────────────────────┐
│ DNS の役割 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 人間 │
│ "www.example.com にアクセスしたい" │
│ │
│ ↓ │
│ │
│ 【DNS】名前解決 │
│ www.example.com → 93.184.216.34 │
│ │
│ ↓ │
│ │
│ コンピュータ │
│ "93.184.216.34 に接続する" │
│ │
└─────────────────────────────────────────────────────────────┘
なぜDNSが必要なのか:
- 人間の記憶: IPアドレス(93.184.216.34)より、ドメイン名(example.com)の方が覚えやすい
- 柔軟性: サーバーのIPアドレスが変わっても、DNSレコードを更新するだけで対応可能
- 負荷分散: 1つのドメイン名に複数のIPアドレスを割り当てることができる
1.2 DNSの歴史
┌─────────────────────────────────────────────────────────────┐
│ DNS 前後のネットワーク │
├─────────────────────────────────────────────────────────────┤
│ │
│ 【DNS以前(1970年代初期)】 │
│ /etc/hosts ファイルを手動で管理 │
│ ┌────────────────────────────────────┐ │
│ │ /etc/hosts │ │
│ │ 192.168.1.1 server1.example.com │ │
│ │ 192.168.1.2 server2.example.com │ │
│ │ ... │ │
│ └────────────────────────────────────┘ │
│ 問題: インターネットの成長に追従できない │
│ │
│ 【DNS以降(1983年〜)】 │
│ 分散型データベースで自動的に名前解決 │
│ - スケーラブル │
│ - 階層的 │
│ - 分散管理 │
│ │
└─────────────────────────────────────────────────────────────┘