Webサイトにアクセスできない、メールが届かない、ドメインを移管したのに新しいサーバーに繋がらない…。 ネットワークやサーバーの運用をしていると、このような「DNSDNS [ディーエヌエス]Domain Name System。インターネット上のドメイン名とIPアドレスを紐付けて管理・変換するシステム(ドメインネームシステム)に関連するトラブル」に遭遇することがよくあります。
そんな時に原因究明の強力な武器となるのが、DNSサーバーに対して直接問い合わせを行い、詳細な応答結果を取得できる「dig(Domain Information Groper)コマンド」 です。
本記事では、ネットワークトラブルシューティングに欠かせない dig コマンドの基本的な使い方から、出力結果の読み解き方、現場で役立つ実践的な活用例までをわかりやすく解説します。
記事のポイント
digは、DNSサーバーに問い合わせを行い、DNSレコードや応答内容を詳しく確認できる代表的なコマンド。- 古くからある
nslookupよりも詳細な情報が得られ、スクリプトへの組み込みもしやすい。- 問い合わせ先のDNSサーバーを直接指定できるため、ドメイン移管時などの確認に便利。
+shortで結果のみをシンプルに表示したり、+traceでDNSの反復的な問い合わせ(非再帰問い合わせ)経路を追跡したりできる。
digとは?何ができるコマンドなのか
dig コマンドは、DNSサーバーに様々な問い合わせ(クエリ)を送信し、その応答結果を表示するためのツールです。
インターネット上の住所である「IPIP [アイピー]Internet Protocol。インターネット通信の基本プロトコルアドレス」と、人間が覚えやすい「ドメイン名(例: example.com)」を変換する仕組みがDNSです。dig を使うことで、「このドメインのIPアドレスは何ですか?」「このドメインのメールサーバーはどこですか?」といった質問をDNSサーバーに直接投げかけることができます。
nslookupとの違い
同じような目的のコマンドとして nslookup が有名ですが、DNSの詳細なトラブルシューティングでは dig がよく利用されます。
その理由は以下の通りです。
- DNS応答を詳しく確認できる: どちらもデフォルトではシステムに設定されたDNSリゾルバに問い合わせますが、
digはDNS応答のHEADER、ANSWER、AUTHORITY、ADDITIONALなどを確認できるため、詳細なトラブル調査に向いています。 - 出力のパースしやすさ: オプション(
+shortなど)を活用することで出力をシンプルにでき、シェルスクリプトなどで結果を再利用しやすい設計になっています。
digの基本構文と主要なオプション
digの基本構文
dig [@DNSサーバー] [ドメイン名] [レコードタイプ] [オプション]@DNSサーバー(任意): 問い合わせ先のDNSサーバー(IPアドレス)を指定します。省略した場合は、システムに設定されているデフォルトのDNSサーバー(/etc/resolv.confに記載されているサーバー)が使われます。ドメイン名: 調査したいドメイン名(例:google.com)。レコードタイプ(任意): 取得したいDNSレコードの種類を指定します。省略した場合はAレコード(IPv4IPv4 [アイピーブイフォー]インターネットプロトコル第4版。32ビットでIPアドレスを表現するアドレス)が照会されます。よく使うレコードタイプには以下があります。A: IPv4アドレスAAAA: IPv6IPv6 [アイピーブイシックス]インターネットプロトコル第6版。128ビットでIPアドレスを表現し枯渇問題を解決するアドレスMX: メールサーバーTXT: テキスト情報(SPFレコードの設定確認などで使用)NS: ネームサーバーCNAME: 別名(エイリアス)ANY: すべてのレコード(※現在は多くの主要なDNSサーバーで制限・非推奨となっており、完全な応答が返らないのが一般的です)
頻出のオプション
| オプション | 内容 | 使用例 |
|---|---|---|
+short | 余分な情報を省き、問い合わせ結果をシンプルに出力します。 | dig google.com +short |
+trace | ルートDNSサーバーから目的のDNSサーバーまで、順を追って問い合わせる過程(反復問い合わせ / 非再帰問い合わせ)をすべて表示します。 | dig google.com +trace |
+noall +answer | デフォルトの冗長な出力から、ANSWER SECTION(実際の回答部分)だけを抽出して表示します。 | dig google.com +noall +answer |
-x [IPアドレス] | 逆引き(IPアドレスからドメイン名を調べる)を行います。 | dig -x 8.8.8.8 |
digの出力情報の見方
オプションなしで dig を実行すると、少し見慣れない形式で出力が表示されます。主要なセクションの意味を理解しておきましょう。
$ dig example.com
; <<>> DiG 9.16.1-Ubuntu <<>> example.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 1232;; QUESTION SECTION:;example.com. IN A
;; ANSWER SECTION:example.com. 86400 IN A 93.184.216.34
;; Query time: 10 msec;; SERVER: 192.168.1.1#53(192.168.1.1);; WHEN: Fri Aug 14 12:00:00 JST 2026;; MSG SIZE rcvd: 561. HEADER (ヘッダ)
status: NOERROR の部分が最も重要です。ここを見ることで、問い合わせが成功したかどうかがわかります。
NOERROR: DNS問い合わせ自体はエラーなく処理された。NXDOMAIN: 問い合わせた名前がDNS上に存在しないことを示します。SERVFAIL: DNSサーバーが問い合わせを正常に処理できなかった。原因はDNSサーバーの設定ミスや上位DNSサーバーへの問い合わせ失敗など、さまざま。
2. QUESTION SECTION (質問セクション)
自分がDNSサーバーに何を問い合わせたかが表示されます。
上記の例では「example.com の IN (Internet) の A レコードを教えて」と質問しています。
3. ANSWER SECTION (回答セクション)
最も確認すべき、問い合わせに対する実際の回答です。
example.com. 86400 IN A 93.184.216.34
左から順に「ドメイン名」「TTL(DNSキャッシュに保持できる時間を秒数で表したもの)」「クラス(IN)」「レコードタイプ(A)」「結果(IPアドレス)」を表しています。
4. AUTHORITY SECTION / ADDITIONAL SECTION (権威・追加セクション)
AUTHORITY SECTION: 問い合わせに関連する権威情報(NSやSOAなど)が表示されます。 ADDITIONAL SECTION: ANSWERやAUTHORITYなどに関連する追加情報が表示されます。単純な名前解決の確認であれば無視して構いません。
現場で使える!digの活用例
1. 基本的な正引きと逆引き
正引き(ドメイン名からIPアドレス)
結果だけが欲しい場合は +short を使います。
dig google.com +short逆引き(IPアドレスからドメイン名) アクセスログに残っている不審なIPアドレスの正体を調べるときなどに使います。
dig -x 8.8.8.8 +short2. 特定のレコード(MX, TXTなど)を確認する
メールが届かないトラブルの際は MX レコードを、SPF(迷惑メール対策)の設定を確認する際は TXT レコードを調べます。
# メールサーバーの確認dig gmail.com MX +short
# TXTレコード(SPFなど)の確認dig google.com TXT +short3. 特定のDNSサーバーに直接問い合わせる(ドメイン移管時に便利)
ドメインの引っ越し(ネームサーバーの変更)を行った直後は、各DNSキャッシュサーバーがTTLに従って以前の情報を保持するため、問い合わせるDNSサーバーによって一時的に異なる結果が返ることがあります。
特定のDNSサーバーを指定して dig を実行すれば、「新しいサーバーには正しくレコードが設定されているか」「GoogleのパブリックDNS(8.8.8.8)ではもう新しいIPアドレスが返ってくるか」などをピンポイントで確認できます。
# Google Public DNS (8.8.8.8) に対して問い合わせるdig @8.8.8.8 example.com
# 新しく設定した権威DNSサーバー(ns1.new-server.com)に対して直接問い合わせるdig @ns1.new-server.com example.com4. DNSの経路を追跡する(+trace)
DNSの名前解決は、ルートサーバー(インターネットの頂点)から .com のサーバー、そして目的のドメインを管理するサーバーへと、バケツリレーのように反復的に問い合わせ(非再帰問い合わせ)を行って完了します。
どこで設定がおかしくなっているのかわからない場合、+trace オプションを使うとその過程をすべて可視化できます。
dig example.com +trace出力結果を上から追っていくことで、「親のDNSサーバーは正しいネームサーバーを教えているか」「子のネームサーバーは正しくAレコードを返しているか」など、障害の切り分けが可能になります。
まとめ:digを使いこなすために
digはDNSのトラブルシューティングに不可欠な強力なコマンド。- 結果だけを知りたいときは
+short、整理された情報が見たいときは+noall +answerを活用する。 @を使って問い合わせ先のDNSサーバーを指定することで、特定のDNSリゾルバから見た名前解決結果を確認できる。- 複雑なDNSトラブルの際は
+traceを使って名前解決のプロセス全体を追跡する。
ネットワークトラブルに遭遇した際は、まず dig を使って「DNSの名前解決は正常に行われているか?」を疑う癖をつけると、原因究明がスムーズになります。ぜひ使い方をマスターしてください。
以上で本記事の解説を終わります。
よいITライフを!
人気記事
- 1
- 2
- 3
- 4
- 5
Rocky Linux対応。実際にWebサーバーを公開するまでのプロセスを体験できる、最も確実で実践的なガイドブックです。