指定したドメインのDNS情報をルートサーバーから順に辿り、どのDNSサーバーが最終的な回答(Authoritative Answer)を返しているかを追跡するツールです。
最寄りの(或いは任意の)DNSリゾルバ(=キャッシュサーバ)から問い合わせを始めて、ターゲットの属するドメインの権威DNSサーバーを特定します。(DNSリゾルバと権威DNSサーバーの違いはこのあたりを参照。)
DNSの委任関係や、キャッシュサーバーではなく「正解を持つサーバー」の状態を確認する際に非常に役立ちます。(DNSポイズニングなどのキャッシュサーバーを騙す攻撃を受けた可能性がある時など)
‘dig +trace‘ に似ていますが、よりシンプルに“流れを追う”ことに特化しています。
基本構文
デフォルトでは権威DNSサーバーに ‘A’ レコード(IPアドレスの情報)を問い合わせます。
dnstracer example.com

上記では3つの権威DNSサーバー( ns-a1.conoha.io, ns-a2.conoha.io, ns-a3.conoha.io )から、ターゲットのIPアドレスを取得しています。
その上流のDNSサーバー(b.gtld-servers.netなど)から枝分かれして表示されています。
上流サーバーは非常に多数あるので一部省略しています。(多数ある理由は冗長化されているためです。)
ターゲットを管轄する権威DNSサーバーは、上記3つであることが分かります。これを探り当てるのがこのツールの主な機能です。
オプション
| 主なオプション | 意味 |
|---|---|
| -r <数字> | 問い合わせ回数の指定(デフォルトは3回) |
| -s <サーバ名> | 問い合わせを開始するサーバの指定(デフォルトはローカル) |
| -t <数字> | 問い合わせの待ち時間 |
| -v | 詳細出力 |
| -o | 最後に概要(Overview)を表示 |
| -4 | IPv4のみ問い合わせ(IPv6は問い合わせない |
‘-v’ オプション
詳細を表示するオプション
dnstracer -v example.com



主な項目の解説は下記の通り。
‘-v’ オプション詳細表示の解説
DNS HEADER
状態を表します。
Identifier
問い合わせID(対応付け用)
Flags
| フラグ | 意味 | 備考 |
|---|---|---|
| Q | 問合せ | Query |
| R | 応答 | Responce |
| RA | 再帰応答 | リゾルバ |
| AA | 権威応答 | 権威DNS |
| TC | 応答の途中切れ | 異常 |
| RD | 再帰問合せ | 全部の解決を要求 |
- AAあり → 権威DNS(重要:最終到達点)
- RAあり → リゾルバ
Return code
異常の場合、その種類が分かります。
| 値 | 意味 |
|---|---|
| 0 | 正常 |
| 2 | SERVFAIL |
| 3 | NXDOMAIN |
| 5 | REFUSED |
Question Section
問い合わせ項目
Type:A → IPアドレスを問い合わせた。
Answer Section
最終回答を表示
Authority Section
次に問い合わせるべきDNSを表示
Additional Section
行き先NSのIPを表示します( = glueレコード:ドメイン名とIPの両方を表示することにより名前解決のループを防ぐ)
以上を繰り返し問い合わせています。
‘-o’ オプション
dnstracer -o example.com
一番最後に下のようチャートが付きます。
権威サーバー ターゲットドメイン → IP回答 の順に表示されています。

権威サーバーが3つ ✖️ (IPv4 と IPv6)の2つで、計6つの回答が表示されています。
‘-s’ オプション
問い合わせを開始するサーバー(リゾルバ)を指定する場合。
dnstracer -s 開始リゾルバ example.com

短期間での同一IPからの同一オープンリゾルバへの、同一ドメインの繰り返しの問い合わせは、リゾルバ側に弾かれてアク禁になったりします。
オープンリゾルバは多数あります。優秀なオープンリゾルバの見つけ方はこちら。
出力の解釈について
以下の項目を検証していきます。
- どのDNSが応答しているか
- 委任が正しく行われているか
- 途中で異常なNSが混じっていないか
DNS設定ミスの調査
- NS設定が正しく伝播しているか確認
- どの段階で誤った応答が出るか特定
DNSSEC確認
- 途中でRRSIGが見えるか
- 権威DNSが正しいかを確認
まとめ
‘dnstracer’ は、ターゲットのドメインを管理する権威DNSサーバーを特定することに特化したツールです。
‘dnstracer’ はDNSの「経路」を可視化することにより
- 「どこに問い合わせているか」
- 「どこで答えが決まっているか」
を明確にします。
参考1) コマンド ‘dig +trace’ との違い
| 項目 | dnstracer | dig +trace |
|---|---|---|
| 可読性 | 高い(シンプル) | やや冗長 |
| 詳細度 | 中 | 高 |
| 自動追跡 | ◎ | ◎ |
| 教育用途 | ◎ | ○ |
参考2) ヘルプ
kali ー 01-Reconnaissance ー Network Information:DNS ー dnstracer



コメント