DNSを理解する
ブラウザへ名前を入力してからWeb通信を始めるまでには、名前に対応する接続先を調べる段階があります。DNSの担当範囲と問い合わせの流れ、キャッシュを順に学び、変更がすぐ全員へ反映されない理由を説明できるようにします。
この単元で学ぶこと
- DNSの名前解決の流れを説明する
- 主なレコードの役割を区別する
- キャッシュと更新反映の関係を判断する
- DNSと他の通信機能を区別する
本文解説
名前とアドレスをつなぐ DNSはドメイン名に関連する情報を問い合わせる分散した仕組みです。Web利用では名前からIPアドレスを得る用途が身近ですが、メール配送先等も扱います。DNSがページのHTML本文を配るわけではありません。名前解決の後に、そのアドレスへ必要な通信を開始します。
端末と再帰リゾルバー 端末は通常、設定された再帰リゾルバーへ問い合わせます。リゾルバーは有効なキャッシュがあればそれを使い、必要なら他のDNSサーバーへ問い合わせます。端末が毎回ルートから全段階を直接たどると考える必要はありません。通信環境やアプリにより実際の問い合わせ先も確認します。
階層と委任 DNSの名前空間は階層を持ちます。ルート、上位ドメイン、担当ゾーンへと管理が委任され、必要なサーバー情報をたどれます。担当ゾーンのデータについて答えるのが権威DNSサーバーです。ルートが全てのWebサイトの最終アドレスを一台で保存する構造ではありません。
レコードの種類 AはIPv4、AAAAはIPv6アドレスを示します。MXはメールの配送先ホスト名と優先値、CNAMEは別の名前への別名を表します。MXへIPそのものを直接書く説明や、CNAMEをHTTPリダイレクトと同じ操作にする説明は不適切です。レコードの目的を確認して選びます。
キャッシュとTTL 取得した情報を一定時間再利用すると、問い合わせ回数と待ち時間を減らせます。TTLは通常の有効なキャッシュとしてその情報を再利用できる期間を表します。TTL300秒で取得後120秒なら通常の残りは180秒です。DNSのTTLと、IPパケットが持つ別のTTLの役割を混同しません。障害時に期限切れデータを条件付きで返すserve-stale等の拡張もあるため、TTLだけで全実装の保持期間や障害時の動作を断定しません。
変更が反映されるまで 権威側を変更しても、利用者のリゾルバーに旧レコードが残る場合があります。取得時刻とTTLが違うので利用者ごとに見える結果も違い得ます。移行時にTTLを短くする場合も、以前に長いTTLで保存された情報まで直ちに短縮されるわけではありません。事前準備と確認が必要です。
一対一とは限らない 同じ名前に複数のAレコードを設定する構成や、複数の名前が同じアドレスを指す構成があります。名前とアドレスは必ず一対一ではありません。また複数のアドレスが返るだけで、Webサーバーがすべて正常か、負荷が常に均等かまでは保証されません。
障害を段階で分ける 名前解決に失敗した場合、名前の不存在を示す応答と、通信が時間切れになった場合を区別します。後者だけでは不存在を断定できません。名前が解決しても、その後の経路、接続先の稼働、暗号化通信、アクセス制御やWebアプリの問題で失敗します。DNS、DHCP、NAT、暗号化を別の役割として確認します。
図解
重要ポイント
- 再帰リゾルバーと権威DNSサーバーを区別する。
- A・AAAA・MX・CNAMEを目的で選ぶ。
- TTLと取得時刻により更新の見え方が異なる。
- 名前解決成功はWebサービス正常の保証ではない。
間違えやすい点
- 全名前と全IPが一対一と決め付けない。
- TTL短縮で全旧キャッシュが即時削除されると思わない。
- 時間切れを名前不存在やHTTP 404と同一視しない。
用語解説
- 名前解決
- 名前を使って関連するアドレス等の情報を調べること。
- 再帰リゾルバー
- 端末等の依頼を受け、キャッシュや他サーバーへの問い合わせを使い結果を返す役割。
- 権威DNSサーバー
- 担当するゾーンのDNSデータについて回答するサーバー。
- TTL
- DNSの文脈では、通常の有効なキャッシュとして取得情報を再利用できる期間を表す値。
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
確認問題の出題・採点や学習履歴の保存にはログインが必要です。