【ディグ】

dig とは?

最終更新:
💡 問い合わせ先と応答を見て、DNSを調べる

DNSサーバーへ問い合わせ、レコードや応答を調べるコマンド。A・MX・TXTの指定、問い合わせ先、TTL、+traceとWindowsでの代替方法を解説します。

📌 このページのポイント
dig:DNSへ聞いて応答を読む自分の端末digDNSサーバー設定 / @server問い合わせ応答dig example.com Astatus・レコード・TTLQuery time・問い合わせ先一つの応答で全利用者の状態は分からない+trace はDNSの委任をたどる
矢印は一つの問い合わせと応答です。下段は応答で読む項目で、別のDNSサーバーではありません。TTLや応答時間は得られた応答の情報として確認します。
ひよこ ひよこ
digは、何を調べるコマンド?
ペンギン先生 ペンギン先生
DNSサーバーへ問い合わせ、返ってきた応答を表示するよ。名前に対応するIPアドレスだけでなく、メールの配送先やTXTレコードなども調べられる。nslookupを置き換えれば全部同じに使える、という意味での上位互換ではないんだ。
ひよこ ひよこ
最初は、どう打てばいい?
ペンギン先生 ペンギン先生
たとえば `dig example.com A` はIPv4アドレスのレコードを問い合わせる。`dig example.com MX` はメールの配送先、`dig example.com TXT` はTXTレコードを調べるよ。実際の応答は、その時点の設定と問い合わせ先によるんだ。
ひよこ ひよこ
DNSサーバーも、指定できる?
ペンギン先生 ペンギン先生
`dig @192.0.2.53 example.com A` の形で指定できる。192.0.2.53は説明用のアドレスだから、実際には利用するDNSサーバーを指定するよ。指定しない場合は、通常resolv.confなどの設定を使う。どこへ聞いた結果かを確認しよう。
ひよこ ひよこ
TTLがゼロになるまで、反映されない?
ペンギン先生 ペンギン先生
TTLは、レコードをキャッシュで保持できる時間の情報だよ。キャッシュからの応答なら残り時間に関係する。一つの応答を見ただけで、世界中のキャッシュがいつ更新されるかは分からない。Query timeも、その問い合わせの応答時間で、Webページの速さではないんだ。
ひよこ ひよこ
+traceは、通信の通り道を見るの?
ペンギン先生 ペンギン先生
`dig example.com A +trace` は、ルートからDNSの委任をたどって問い合わせる。パケットが通るルーターの経路を見るコマンドとは違うよ。DNSサーバーへ直接問い合わせられない環境では途中で失敗することもある。
もっと詳しく知りたい人へ

Windowsにはdigがないけれど、どう調べる?

PowerShellの `Resolve-DnsName -Name example.com -Type A` やnslookupで調べられます。digを使う場合は、利用するOS環境と配布元の対応を確認します。過去のBINDのWindows版が今も提供されると決めつけません。

答えが空なら、DNS障害?

必ずしもそうではありません。その種類のレコードがない場合もあります。応答のstatus、ANSWERの有無、問い合わせ先を合わせて確認します。+shortは簡潔ですが、応答全体の情報を省くため、調査時は通常の出力も見ます。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「dig」って出てきたら「DNSサーバーへ問い合わせて、応答を詳しく調べるコマンド」と思えばだいたいOK!
📖 おまけ:英語の意味
「dig」 = DNS lookup utility(DNS問い合わせツール)
💬 BINDのマニュアルでは、DNSサーバーに問い合わせるツールとして説明されています。

参考資料

← 用語集にもどる