\ ブラックフライデー開催中! /

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

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

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

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

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

Contents
  1. 1. dig コマンドとは?
  2. 2. dig の最基本構文
  3. 3. レコードタイプを指定して取得する
  4. 4. 特に重要なオプション一覧(実務で必須)
  5. 5. 権威DNSに直接問い合わせる方法(DNSの最深部を覗く)
  6. 6. DNS 伝播チェックも dig だけで可能
  7. 7. 実務でよくあるトラブルと解決例(必読)
  8. 8. dig の出力を読む方法
  9. 9. dig コマンドの応用テクニック集
  10. 10. 実務でそのまま使える「テンプレート集」
  11. 11. まとめ:dig は DNS の「CTスキャン」

1. dig コマンドとは?

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

主な用途は次のとおり。

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

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

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

2. dig の最基本構文

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

Bash
dig ドメイン名

# 例
dig google.com

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

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

● 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

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

+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

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

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

Bash
dig example.com NS +short

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

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

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

6. 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

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

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

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

確認手順:

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 先のホストに向いているか確認。

    8. 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

    9. 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

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

    ● 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

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

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

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

    もはやインフラエンジニア・Webエンジニアの必須スキルです。

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

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

    この記事を書いた人

    CFXLOGのアバター CFXLOG プログラマ

    メイン言語はPython。本ブログでは、実務や普段の学習で学んだことをアウトプットしています。
    基本情報技術者試験合格者。

    コメント

    コメントする

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