再帰的DNSとは?
Recursive DNS は、再帰的なリゾルバーがクライアントの代わりにルックアッププロセス全体を処理する DNS のリゾルダーメソッドで、root サーバーから権限のあるネームサーバーに DNS 階層を横断し、最終的な回答を返します。DNSの再帰方法 作品紹介
Client Query: "What is the IP for www.example.com?"
Step 1: Client → Recursive Resolver
"Please resolve www.example.com"
Step 2: Resolver → Root Server (.)
"Who handles .com?"
← Response: "Try a.gtld-servers.net"
Step 3: Resolver → TLD Server (.com)
"Who handles example.com?"
← Response: "Try ns1.example.com at 192.0.2.1"
Step 4: Resolver → Authoritative Server (example.com)
"What is the A record for www.example.com?"
← Response: "192.0.2.10"
Step 5: Resolver → Client
"www.example.com is at 192.0.2.10"
(Resolver caches result for future queries)
再帰的対反復的なDNS
| 特徴: | 再帰的 | 反復 |
|---|---|---|
| クエリ作業 | Resolver は全ての仕事をします | クライアントは紹介 |
| クライアントの複雑さ | シンプル | コンプレックス |
| 共通の使用 | エンドユーザのリゾルバ | サーバー・ツー・サーバー |
| 応答タイプ | 最終回答 | 回答または紹介 |
DNSの決断の流れ
DNS Hierarchy:
Root Servers (.)
│
┌────────┼────────┐
│ │ │
.com .org .net ← TLD Servers
│
example.com ← Authoritative Servers
│
┌───┴───┐
www mail ← Host Records
公的再帰的レゾルバー
| プロバイダー | プライマー | セカンダリー | 特徴: |
|---|---|---|---|
| サイトマップ | 8.8.8.8 | 8.8.4.4 | グローバル・オールキャスト |
| クラウドフレア | 1.1.1.1 | 1.0.0.1 | プライバシー重視 |
| クワッド9 | 9.9.9.9 | 149.112.112.112 | セキュリティフィルタリング |
| オープンDNS | 208.67.222.222 | 208.67.220.220 | コンテンツフィルタリング |
キャッシング行動
| キャッシュの場所 | 制御されるTTL | 典型的な期間 |
|---|---|---|
| 再帰的な解決剤 | ゾーン管理者 | 営業時間 |
| ブラウザ | HTTPヘッダー+ DNS TTL | 時間までの分 |
| OSの解決装置 | DNS TTLの | 時間までの分 |
セキュリティの考慮事項
- キャッシュ中毒: 攻撃者は、誤ったレコードを解決キャッシュに注入する
- DNS増幅: 攻撃者は、DDoS 用のオープンリゾルバーを使用する
- プライバシー:Resolversは、ユーザーからのすべての問い合わせを参照
- Mitigation:DNSSECの検証、レートの制限、暗号化されたDNS(DoH/DoT)
クエリフラグ
Recursion Desired (RD): Client requests recursive resolution
Recursion Available (RA): Server supports recursion
Query: dig example.com @8.8.8.8
;; flags: qr rd ra ← RD set by client, RA confirmed by server
ベストプラクティス
1. 信頼できる解決剤を使用して下さい: 優れた稼働時間とパフォーマンスで、リゾルバーを選択
2. DNSSECの有効化: スプーフィング攻撃から保護
3. Consider Privacy: 暗号化されたDNS(DoH/DoT)を使用して、機密クエリ
4. モニターレイテンシー: レイバーの位置は、ルックアップ速度に影響を与えます
5. フォールバックの設定: 複数のリゾルバーアドレスを使用する
Recursive DNS は、DNS 階層横断の複雑性を自動的に処理することで、エンドユーザの解像度を簡素化します。