DNS

digコマンド入門|DNS情報を詳細に調査する

ネットワーク dig DNS調査

digコマンド入門
DNS情報を詳細に調査する

dig(Domain Information Groper)はDNSサーバーに対してクエリを送信し、詳細な結果を表示するコマンドラインツールです。nslookupよりも詳細なDNS診断が可能です。

こんな人向けの記事です

  • DNSレコードの詳細情報を取得したい人
  • DNS設定の問題を高度に診断したい人
  • nslookupからdigへの移行を考えている人

Step 1digとは・インストール

digはBIND(Berkeley Internet Name Domain)の一部として開発されたDNS調査ツールです。nslookupよりも詳細な情報と柔軟な機能を提供し、現在はDNS診断の標準ツールとして推奨されています。

ターミナル
# Debian/Ubuntu系
sudo apt-get install dnsutils

# RHEL/CentOS/Fedora系
sudo yum install bind-utils

# macOS(プリインストール済み。最新版はHomebrewで)
brew install bind

# Arch Linux
sudo pacman -S bind-tools

ポイント: macOSにはdigがプリインストールされています。Windowsでは標準搭載されていませんが、WSL経由またはISC BINDパッケージのインストールで利用可能です。

Step 2基本的な使い方と出力の読み方

ターミナル
dig example.com

出力の主要セクション:

ターミナル
;; QUESTION SECTION:
;example.com.                   IN      A

;; ANSWER SECTION:
example.com.            86400   IN      A       93.184.216.34

;; AUTHORITY SECTION:
example.com.            86400   IN      NS      ns1.example.com.

;; Query time: 25 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; MSG SIZE  rcvd: 56
セクション内容
QUESTION送信したクエリの内容
ANSWERクエリに対する回答(IPアドレス等)
AUTHORITY権威ネームサーバーの情報
ADDITIONAL追加情報(ネームサーバーのIPアドレス等)
Query timeクエリにかかった時間
SERVERクエリを処理したDNSサーバー

Step 3レコードタイプ別の照会

ターミナル
# Aレコード(IPv4アドレス)
dig example.com A

# AAAAレコード(IPv6アドレス)
dig example.com AAAA

# MXレコード(メールサーバー)
dig example.com MX

# NSレコード(ネームサーバー)
dig example.com NS

# TXTレコード(SPF, DKIM等)
dig example.com TXT

# SOAレコード(ゾーン情報)
dig example.com SOA

# CNAMEレコード(エイリアス)
dig www.example.com CNAME

# CAAレコード(証明書発行機関認証)
dig example.com CAA

# 全レコード
dig example.com ANY

Step 4便利なオプション

オプション説明
+short簡潔な結果のみ表示dig +short example.com
+noall +answerANSWERセクションのみ表示dig +noall +answer example.com
+traceルートDNSから再帰的にたどるdig +trace example.com
@サーバー特定のDNSサーバーを指定dig @8.8.8.8 example.com
-x逆引き(IPからドメイン名)dig -x 93.184.216.34
+tcpTCPを使用してクエリdig +tcp example.com
+dnssecDNSSEC情報を含めるdig +dnssec example.com

Step 5実践的な使用例

IPアドレスだけを簡潔に取得:

ターミナル
dig +short example.com

特定のDNSサーバーで照会:

ターミナル
# Google DNS
dig @8.8.8.8 example.com

# Cloudflare DNS
dig @1.1.1.1 example.com

DNSプロパゲーションの確認:

ターミナル
dig @8.8.8.8 +short example.com
dig @1.1.1.1 +short example.com
dig @9.9.9.9 +short example.com

ルートサーバーから経路を完全にトレース:

ターミナル
dig +trace example.com

Step 6高度なDNS診断

DNSSECの検証:

ターミナル
# DNSSEC署名情報を含めて照会
dig +dnssec example.com

# DNSKEYレコードの確認
dig example.com DNSKEY

# DSレコードの確認
dig example.com DS

TTL(キャッシュ有効期限)の確認:

ターミナル
# TTL値を確認(ANSWER SECTIONの数字がTTL秒数)
dig +noall +answer example.com

権威サーバーに直接照会(キャッシュを回避):

ターミナル
# まず権威サーバーを確認
dig +short NS example.com

# 権威サーバーに直接照会
dig @ns1.example.com example.com

ポイント: digの +trace オプションはDNSの解決過程を完全に可視化でき、DNSの問題特定に非常に有効です。nslookupでは実現できない機能の一つです。