MENU
\ お問い合わせはこちら! /

【完全保存版】digコマンドの全網羅ガイド|DNS調査・トラブルシューティングの必須ツールを徹底解説

DNS の調査や、サイトが表示されない時のトラブルシューティングでは dig コマンドが便利。

この記事では、初級〜上級エンジニアまで必ず使える 「dig の使い方を可能な限り網羅」 して解説します。

  • 基本構文
  • よく使うオプション
  • A / AAAA / MX / TXT などの全レコード取得
  • DNS 伝播確認
  • 権威サーバーの調査
  • DNSSEC の確認
  • 実務レベルの具体的なトラブル解決方法
  • 100% 再現可能な実務テンプレート集

この1ページで dig を完全に使いこなせるようになることを目指しました。

digコマンドの基本

dig コマンドとは?

dig(Domain Information Groper) は DNS 情報を問い合わせるコマンドラインツール。

主な用途は次のとおり。

  • ドメインの DNS レコード(A / CNAME / MX…)を確認
  • 権威DNS・キャッシュDNSの応答を確認
  • 名前解決トラブルの原因を特定
  • DNS 伝播状況のチェック
  • TXTレコードで SPF / DKIM を確認
  • DNSSEC の検証

Linux / macOS に標準でほぼ入っています。

ない場合は bind-utils 等をインストール

dig の最基本構文

最もよく使う最小構文はこれです。

Bash
dig ドメイン名

# 例
dig google.com

Aレコードを取得するのがデフォルト。

レコードタイプを指定して取得する

Aレコード(IPv4)

Bash
dig google.com A

AAAAレコード(IPv6)

Bash
dig google.com AAAA

MXレコード(メールサーバー)

Bash
dig google.com MX

TXTレコード(SPF/DKIMなど)

Bash
dig google.com TXT

NSレコード(DNSの委任状況)

Bash
dig google.com NS

ANY(全レコード)

ただし最近では制限されて空の応答になることが多い。

Bash
dig google.com ANY

特に重要なオプション一覧(実務で必須)

+short(結果だけ欲しいとき)

Bash
dig google.com +short

Aレコードだけ抜き出したいときに便利です。

+trace(DNSの委任の流れを全部追う)

DNSトラブル調査で最重要。

Bash
dig google.com +trace

→ ルートサーバー → TLD → 権威DNSまで “どこで壊れているか” がすぐ判明する。

@DNSサーバー(問い合わせ先を指定)

Google DNS に問い合わせ:

Bash
dig google.com @8.8.8.8

# Cloudflare
# dig google.com @1.1.1.1

権威DNSに直接問い合わせることも可能。

+nocmd +nostats +noquestion(余計なヘッダ削除)

スクリプト処理で便利。

Bash
dig +nocmd google.com +noquestion +nostats +short

+dnssec(DNSSECの有効性確認)

Bash
dig google.com +dnssec

+multi(複数行で見やすく出力)

Bash
dig google.com +multi

権威DNSに直接問い合わせる方法(DNSの最深部を覗く)

まず NS レコードで権威DNSを取得:

Bash
dig example.com NS +short

返ってきた NS の 1つに問い合わせる:

Bash
dig example.com A @ns1.example.com

これで「権威DNSがどの値を持っているか」がわかる。
※キャッシュDNSの影響ゼロ。

DNS 伝播チェックも dig だけで可能

複数DNSに問い合わせれば、伝播の差が見える。

Bash
dig example.com @8.8.8.8 +short
dig example.com @1.1.1.1 +short
dig example.com @9.9.9.9 +short

→ 値がバラついていたら、伝播中。

実務でよくあるトラブルと解決例(必読)

ケース①:サイトが急に表示されなくなった

確認手順:

Bash
dig example.com A
dig example.com A @8.8.8.8
dig example.com A @1.1.1.1
dig example.com +trace
チェックポイント
  • 権威DNSが間違っていないか
  • Aレコードが更新されているか
  • TTLが長すぎて古い値が残ってないか
  • NS設定が飛んでないか

ケース②:メールが届かない(Gmailに弾かれる)

Bash
dig example.com MX
dig example.com TXT
チェックポイント
  • SPF(TXTレコード)が正しいか
  • “include” のタイポがないか
  • MX が存在するか
  • MX の優先度が正しいか

ケース③:サブドメインが消えた

Bash
dig sub.example.com A +trace

委任・CNAME の誤設定が原因なことが多い。

ケース④:CDN を導入したら動かなくなった

Cloudflareなど導入後は A レコードが 変わる

Bash
dig example.com A
dig example.com CNAME

CDN 先のホストに向いているか確認。

dig の出力を読む方法

dig の出力は3つのブロックで構成されます。

HEADER(応答情報)

  • ステータス(NOERROR / NXDOMAIN など)
  • QUERY / ANSWER / AUTHORITY / ADDITIONAL の数

QUESTION SECTION

問い合わせ内容

ANSWER SECTION

実際のDNSレコードの例です。

Bash
;; ANSWER SECTION:
google.com.    300 IN A 142.251.42.78
意味
  • TTL=300秒
  • クラス IN
  • タイプ A
  • 値 = 142.251.42.78

dig コマンドの応用テクニック集

逆引き DNS(PTRレコード)

Bash
dig -x 8.8.8.8

TTL を確認する

Bash
dig example.com A

ANSWER セクションに TTL が表示される。

スクリプトで host コマンド代わりに使う

Bash
dig +short example.com

DKIM レコードの確認

Bash
dig default._domainkey.example.com TXT

実務でそのまま使える「テンプレート集」

DNSすべて確認テンプレ

Bash
dig example.com A
dig example.com AAAA
dig example.com MX
dig example.com TXT
dig example.com NS

伝播確認テンプレ

Bash
for ns in 8.8.8.8 1.1.1.1 9.9.9.9; do dig example.com @$ns +short; done

トラブル完全診断テンプレ

Bash
dig example.com +trace
dig example.com A @8.8.8.8
dig example.com NS
dig example.com TXT

まとめ:dig は DNS の「CTスキャン」

dig が使えるようになると、次のようなことができます。

  • DNSトラブルの原因を3分で特定
  • サーバー変更時の問題を即発見
  • メールエラーの根本原因を可視化
  • 伝播状況の“本当の状態”がわかる

インフラエンジニア・Webエンジニアの必須スキルとも言えそうです。

この記事が気に入ったら
フォローしてね!

シェア・記事の保存はこちら!

この記事を書いた人

基本、書くことで生計を立てています。
ITエンジニア歴は約5年ほど。
Pythonを書くことが多いですが、雑食です。
基本情報技術者試験合格。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)