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 +answer | ANSWERセクションのみ表示 | 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 |
| +tcp | TCPを使用してクエリ | dig +tcp example.com |
| +dnssec | DNSSEC情報を含める | 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では実現できない機能の一つです。