DNSの基礎用語まとめ
ドメイン名を入力するとサイトが開く一方、DNSの設定画面には「リゾルバ」「権威DNS」「DNSSEC」といった名前が並びます。どのサーバーが答えを持ち、どこでキャッシュされるのかが分かると、普段の名前解決も、変更後に古いIPアドレスが返る理由も追いやすくなります。
名前解決のざっくり流れ 🌐
ブラウザやOSはローカルのキャッシュなどを確認し、必要なら再帰リゾルバに問い合わせます。リゾルバはキャッシュを使い、情報がなければルート→TLD→対象ゾーンの権威サーバーと委任をたどります。毎回ルートから調べるわけではありません。別のリゾルバへ転送する構成もあります。
再帰と反復
- 再帰問い合わせ:クライアント→リゾルバ。「全部解決して返して」とお願いする形。
- 反復問い合わせ:リゾルバ→上位DNS。「わかる範囲を教えて」と聞き、返ってきた次のサーバーへ進む。
- 結果はキャッシュされ、次回以降は早く解決できる(TTLで期限管理)。
キャッシュDNS(リゾルバ)
利用者に代わって再帰問い合わせをこなす仲介役。ISPや企業、パブリックDNS(1.1.1.1や8.8.8.8など)が提供します。
役割
- クライアントから再帰問い合わせを受け、必要ならルート/TLD/権威へ辿る。
- TTLは通常のキャッシュ利用期間を示す値で、期間中に必ず同じ答えを返す保証ではない。キャッシュの破棄や更新もあり、更新先に到達できない場合には期限切れデータを使うserve-staleもある。
- 検証型リゾルバはDNSSECを検証する。ADフラグは検証結果を示すが、信頼するリゾルバと安全な通信経路を使うことが前提。
変更後も古い答えが返るとき
権威DNSの値を変更しても、リゾルバがすでに持っている答えはすぐには消えません。TTLを下げる設定も、以前の長いTTLで保存されたキャッシュを短縮する命令ではありません。変更時刻と残りTTLの関係は、DNSのTTLとキャッシュの具体例で確認できます。新しい名前が見つからない場合は、同じ記事の「存在しない」という答えのキャッシュも手がかりになります。
DNSSEC(署名付きDNS) 🔒
DNSのレコード集合に署名を付け、出所と完全性を検証する仕組みです。DNSの問い合わせ内容を暗号化するものではなく、リンク先サイトの安全性も保証しません。
ざっくり仕組み
- 署名されたゾーンはRRSIGと公開鍵DNSKEYを公開する。DSは子の鍵と対応する情報で、親ゾーン側に置く。
- 通常は設定済みのルートのトラストアンカーを起点に、親のDSと子のDNSKEYを照合して信頼の連鎖を検証する。未署名の委任もあり、すべてのドメインに署名があるわけではない。
- 署名検証に失敗するbogusと、未署名と判定されるinsecureは別。通常の検証ではbogusはSERVFAILになり、未署名データは検証済み扱いにはならない。
実務メモ
- DNSSECを有効化したら鍵のローテーションとDS登録を忘れずに。
- 一部の古いリゾルバや機器がDNSSECに対応していない場合があるので事前確認を。
仕様と関連情報
RFC 1034 §4.3.1 / RFC 4033 / RFC 4035 §4.9.3 / RFC 8767 §4。問い合わせの委任先をたどる流れはルートサーバーの仕組み、変更後の見方はDNSのTTLとキャッシュへ。