変更要約: 初版
3.1DNS
権威サーバとキャッシュサーバの役割分担、ゾーンと委譲によるドメイン空間の分割、A/AAAA/MX/CNAME/NS/PTRなどのリソースレコード、再帰問い合わせと反復問い合わせの違い、正引き・逆引きの流れを学び、DNS障害の切り分け方を習得します。
DNS(Domain Name System)は「ドメイン名からIPアドレスを引く」という単純な役割の裏に、権限の階層構造と性能のためのキャッシュ機構という2つの設計思想を持っています。ネットワークスペシャリストには、名前解決が失敗したときに「どのサーバのどの設定が原因か」を切り分ける診断力が求められます。この節ではDNSの構成要素を、障害対応の視点も交えて深掘りします。
3.1.1権威サーバとキャッシュサーバ
- 権威サーバ(authoritative server)=特定のゾーンについて正式な回答を持つサーバ。ゾーンファイルを直接管理し、そのドメインに関する問い合わせに「自分が知っている正解」として応答する。
- キャッシュサーバ(キャッシュDNSサーバ・フルサービスリゾルバ)=クライアントの代わりに権威サーバ群へ問い合わせ、得た結果をTTL(Time To Live)の間キャッシュして再利用するサーバ。企業や ISP が運用し、権威サーバの負荷軽減と応答高速化を担う。
3.1.2ゾーンと委譲
- ゾーン=権威サーバが管理するドメイン空間の一区画。1つのドメイン(例 example.co.jp)を複数の組織で分担管理したい場合、親ゾーンのNSレコードで子ゾーンの権威サーバを指し示す委譲を行う。
- 委譲された子ゾーンの権威サーバがダウンすると、その配下のサブドメインだけが名前解決不能になり、親ゾーンや兄弟ゾーンには影響しない。障害範囲がゾーン境界で切り分けられるのは委譲構造の性質。
3.1.3リソースレコード
| レコード | 用途 |
|---|---|
| A | ホスト名からIPv4アドレスを引く(正引き) |
| AAAA | ホスト名からIPv6アドレスを引く(正引き) |
| MX | ドメイン宛メールを受け付けるメールサーバと優先度を示す |
| CNAME | 別名(エイリアス)から正式ホスト名への別名参照 |
| NS | ゾーンを管理する権威サーバを示す(委譲に使用) |
| PTR | IPアドレスからホスト名を引く(逆引き) |
| TXT | 任意テキスト情報を格納(SPFやドメイン所有権確認等に利用) |
「MXは優先度付きでメールサーバを指す」「CNAMEは別名から正式名への参照でありMXやNSと共存させると設定エラーになる」「PTRは逆引き専用(in-addr.arpa/ip6.arpaゾーン)」が最頻出です。CNAMEが指すホストと同じ名前にNSやMXなど他のレコードを同居させてはならない(RFC違反)点も要注意。
3.1.4再帰問い合わせと反復問い合わせ
- 再帰問い合わせ=クライアントがキャッシュサーバに「最終的な答えを返してくれ」と依頼する方式。キャッシュサーバは答えが出るまで自分で問い合わせを続け、クライアントには最終結果だけを返す。
- 反復問い合わせ(非再帰)=キャッシュサーバがルートサーバ→TLDサーバ→権威サーバの順にたどる際に使う方式。各サーバは「自分が知らなければ次に聞くべきサーバの情報」を返すだけで、最終回答を保証しない。
- 正引き=ホスト名からIPアドレスを求める解決(Aレコード等)。逆引き=IPアドレスからホスト名を求める解決(PTRレコード、in-addr.arpaゾーン)。メールサーバの逆引き未設定はスパム判定要因になりやすい。
ある社内システム担当者が、社員から「社内ポータル(portal.example.co.jp)に朝から接続できない」という報告を複数受けたとします。まず疑うべきはどの階層で名前解決が止まっているかです。手順として、
①クライアント端末からnslookup portal.example.co.jpを実行し、問い合わせ先のキャッシュサーバ(社内DNS)から応答が返るか確認、
②応答がタイムアウトする場合は社内キャッシュサーバ自体の稼働・上位への到達性を疑う、
③キャッシュサーバは応答するが「NXDOMAIN」(存在しないドメイン)を返す場合は、portalサブゾーンを委譲している権威サーバ(例えば portal.example.co.jp のNSレコードが指す別サーバ)がダウンしているか、Aレコードの設定ミスを疑う、という順に切り分けます。もし他のwww.example.co.jp等は正常に名前解決できているのにportalだけ失敗するなら、障害はドメイン全体ではなくportalサブゾーンの委譲先権威サーバに限定されると推測でき、調査対象を大きく絞り込めます。逆に、社内の全ドメインの名前解決が一斉に失敗しているなら、社内キャッシュサーバ自体か、そこから上位(ISPの上流DNSやルートサーバ)への経路の障害を疑うべきです。このように、「どの範囲が影響を受けているか」からゾーン階層のどこに原因があるかを逆算するのがDNS障害切り分けの基本です。
ひっかけ: 「キャッシュサーバは常に反復問い合わせでクライアントに応答する」は誤りです——クライアント⇔キャッシュサーバ間は再帰問い合わせ、キャッシュサーバ⇔上位サーバ群の間は反復問い合わせが一般的な役割分担です。また「CNAMEを設定したホストに他のレコード(MX等)を追加しても問題ない」も誤り=CNAMEのあるノードに他レコードを共存させることは仕様上認められません。
3.1.5この節のまとめ
- 権威サーバはゾーンの正式回答を持ち、キャッシュサーバはTTLの間結果を再利用して権威サーバの負荷を減らす
- 委譲によりゾーンを分割管理でき、障害範囲はゾーン境界に沿って切り分けられる
- クライアント↔キャッシュサーバは再帰問い合わせ、キャッシュサーバ↔上位サーバ群は反復問い合わせが基本の役割分担
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. 社内DNSキャッシュサーバに`nslookup app.example.co.jp`を実行するとNXDOMAINが返るが、同じドメイン内の`www.example.co.jp`は正常に解決できる。この状況から最も妥当な推測はどれか。
Q2. あるドメインで`mail`という名前に対してCNAMEレコードを設定した上で、同じ`mail`という名前にMXレコードも追加登録しようとしたところエラーとなった。この事象の技術的な理由として最も適切なものはどれか。
Q3. キャッシュサーバがルートサーバ・TLDサーバ・権威サーバへ順にたどりながら名前解決を進める際の問い合わせ方式と、クライアントがキャッシュサーバへ依頼する際の問い合わせ方式の組み合わせとして正しいものはどれか。

