合同会社小村ソフト
第 6 章

観測と運用 — dig / ログ / 典型的な誤診

まず実際の応答を見て、negative caching / split-horizon / browser cache などの誤診を先に外す。

前章のおさらい: 第 5 章では DNSSEC の守備範囲と last hop 問題、そして多層防御の組み立てを整理しました。本章ではその防御を「動作中の resolver で何を観測すれば崩れに気づけるか」に展開します。dig の基本操作(DNS101 で扱った範囲)はあくまで土台で、ログから poisoning 兆候を拾うパターンまで踏み込みます。

管理画面より先に、実際の応答を見る

名前解決トラブルでは、レコード管理画面のスクリーンショットより先に、「affected resolver がいま何を返しているか」「authoritative path ではどう見えるか」を比べるのが近道です。

$ dig @192.0.2.53 www.example.com A
$ dig +trace www.example.com A
$ dig +dnssec www.example.com A

ここでの 192.0.2.53 は例示用の TEST-NET アドレスです。実際の確認では、自分が管理する resolver や正当な観測対象だけを使います。

小問 6-1 — 最初の切り分け

管理画面の印象より先に、実際の応答を比較します。

Q1. 利用者から「ある名前だけ変な IP へ飛ぶ」と報告されたとき、最初の安全な確認として妥当なものはどれですか。

Q2. dig +trace が向いている目的として最も近いものはどれですか。

Q3. 次のうち、browser 個別のキャッシュより shared recursive cache の問題を疑いやすい状況はどれですか。

よくある見え方の切り分け

見え方まず疑うもの最初の確認
同じ resolver を使う複数利用者が同じ誤答shared recursive cache影響 resolver と authoritative path の比較
internal だけ別 IPsplit-horizon / 内部向け設計設計意図と internal zone の有無
作ったばかりの名前がまだ NXDOMAINnegative caching否定応答の TTL
RRSIG / AD が絡む異常DNSSEC validation / last hopdig +dnssec と trust chain

negative caching と誤診

「さっき作った名前がまだない」「internal と external で違う」などは、poisoning と紛らわしい典型例です。negative caching と split-horizon を先に除外すると、不要な誤検知を減らせます。

ヒント: negative caching の TTL は SOA の minimum field と RFC 2308 で説明される挙動で決まります。存在しない結果にも寿命があることを忘れないでください。

小問 6-2 — negative caching と誤診

poisoning と紛らわしい典型例を先に外します。

Q4. 13:00:00 に NXDOMAIN が 300 秒で negative cache されました。13:01:00 にその名前のレコードを作成したのに、13:02:00 でもまだ NXDOMAIN です。最も近い説明はどれですか。

Q5. 次のうち cache poisoning より split-horizon / 内部向け設計を疑う手がかりとして最も近いものはどれですか。

ログから異常を拾うパターン

dig での個別確認に加えて、resolver / クエリログを定常的に見ておくと、「いま何かが起きている」「過去に何かが起きた」を早く拾えます。中級コースの観測としては、次の 3 つのパターンを覚えておくと現場で役立ちます。

1. 同一 zone への random label 集中
同じ親 zone に対して、見覚えのないサブドメインへの query が短時間に集中し、しかも NXDOMAIN 率が高い。fresh miss を意図的に作って attempts を稼ぐ挙動と整合する。querier IP の偏り、時間帯の集中も合わせて見る。
2. RRSIG 検証 failure の連続
同一 zone に対する署名検証 failure が短時間に連続しているとき、(a) zone 側の鍵ロール/署名期限切れ、(b) 経路上での応答改ざんや誤受理、(c) 検証側の時刻ずれ、の 3 軸で切り分ける。clock と zone の運用状況を確認した上で残った疑いを poisoning や中間者として追う。
3. NAT / port 観測の悪化
NetFlow / pcap などで外向き UDP の source port 分布を取り、想定の高エフェメラル帯から狭い連番帯へ縮退していないかを定期的に確認する。NAT 構成変更や middlebox の挙動変化を早く拾える。

小問 6-3 — ログから異常を拾うパターン

中級として一歩踏み込み、resolver / クエリログから poisoning 兆候を拾う観点を確認します。

Q6. ある zone に対して、見覚えのない大量のサブドメインへの query が短時間に集中し、しかもそれぞれ NXDOMAIN を返しています。cache poisoning 観点で最も妥当な仮説はどれですか。

Q7. validating resolver のログで「同一 zone に対する RRSIG 検証 failure」が短時間に連続しています。最初に切り分けるべき仮説の組み合わせとして最も適切なのはどれですか。

この章で持ち帰ること

  • まず affected resolver と authoritative path を比べる
  • +trace は delegation path の観察に向く
  • negative caching、split-horizon、browser cache などの誤診要因を先に外す
  • ログでは「random label 集中」「RRSIG 検証 failure 連続」「port 分布の縮退」を継続観測する