2026年6月12日

2026年6月12日

dig を使った DNS レコードの問い合わせ手順|レコード種別ごとのコマンドと確認ポイント

dig で DNS レコードを問い合わせるときは、「何を確かめたいか」を決め、「どのサーバーに聞くか」を選び、「どのレコード種別を指定するか」を決める、の3段階で考えると迷いません。この記事では、その手順を順に説明したうえで、A・CNAME・MX・TXT・NS・SOA・CAA・PTR・SRV など、WordPress サイトの運用でよく扱うレコードごとの問い合わせ方と、結果のどこを見ればよいかをまとめます。

手順1:確かめたいことを一文にする

dig は聞かれたことに答えるだけのツールなので、問いが曖昧だと結果も読めません。作業の前に、確認したい内容を短い文にしておくと、指定すべきレコード種別と問い合わせ先が決まります。

  • 「サーバー移転後、www が新しいサーバーの IP を返しているか」→ A / AAAA、権威サーバーとキャッシュサーバーの両方
  • 「独自ドメインのメールが届かない。受信先の設定は正しいか」→ MX と、MX が指すホストの A
  • 「送信ドメイン認証の設定が公開されているか」→ TXT(SPF、DKIM、DMARC)
  • 「証明書の発行が CAA で止められていないか」→ CAA

手順2:問い合わせ先を選ぶ

@ を付けずに実行すると、OS に設定されたキャッシュサーバー(Linux なら /etc/resolv.conf の nameserver)に問い合わせます。これは「利用者から今どう見えているか」の確認です。キャッシュが残っていれば古い値が返ります。

設定した値そのものを確認したいときは、ドメインの権威サーバーに直接問い合わせます。まず NS レコードで権威サーバー名を調べ、そのサーバーを @ で指定します。

# 権威サーバーを調べる
dig +short example.com NS

# 権威サーバーに直接問い合わせる(再帰を求めない)
dig @ns1.example.net example.com A +norecurse

権威サーバーからの回答なら、ヘッダーの flags に aa(authoritative answer)が付きます。付いていない場合は、指定したサーバーがそのゾーンの権威ではない可能性があります。公開 DNS(@1.1.1.1 や @8.8.8.8 など)を指定して比べるのも、キャッシュの影響を見る手段として有効です。

手順3:見やすい出力にする

既定の出力は情報が多いので、手順を進めながら確認するときは回答部分だけに絞ると読みやすくなります。

# 回答セクションだけ表示(TTL も見える)
dig +noall +answer example.com A

# 値だけ表示
dig +short example.com A

+short は値しか出ないため、TTL が見えず、応答コードもわかりません。何も表示されなかったときに「レコードが無い」のか「名前自体が存在しない」のか区別できないので、結果が空のときは +short を外して status を確認してください。

status の意味は次のとおりです。NOERROR で回答が空なら、その名前は存在するが指定した種別のレコードが無い状態です。NXDOMAIN は名前そのものが存在しない状態、SERVFAIL は問い合わせ先が回答を作れなかった状態(DNSSEC の検証失敗や権威サーバーの不調など)、REFUSED は問い合わせ先が応答を拒否した状態です。

レコード種別ごとの問い合わせ

A / AAAA:サイトの IP アドレス

dig +noall +answer example.com A
dig +noall +answer www.example.com AAAA

ルートドメイン(example.com)と www の両方を確認します。片方だけ移転先に変えて、もう片方を忘れる例が多いためです。AAAA は IPv6 のアドレスです。古い AAAA が残っていると、IPv6 で接続する利用者だけ旧サーバーに届くことがあります。

CNAME:別名

dig +noall +answer www.example.com CNAME
dig +noall +answer www.example.com A

A を問い合わせると、CNAME をたどった結果が連なって表示されます。CDN やサイトビルダーのサービスでは、www を CNAME でサービス側のホスト名に向けるのが一般的です。なお、DNS の仕様上、ルートドメインには CNAME を置けません。DNS 事業者によっては独自の仕組み(CNAME フラットニングなど)で代替しているので、管理画面の説明を確認してください。

MX:メールの受信先

dig +noall +answer example.com MX
dig +short mail.example.com A

MX は「優先度 ホスト名」の形で返ります。数字が小さいほど優先されます。MX が指すホスト名に A(または AAAA)が無いとメールは届かないので、続けて確認します。MX に IP アドレスや CNAME の名前を直接書くのは仕様上望ましくありません。

TXT:SPF・DKIM・DMARC

dig +short example.com TXT
dig +short _dmarc.example.com TXT
dig +short selector1._domainkey.example.com TXT

SPF はドメイン名そのものの TXT、DMARC は _dmarc を付けた名前、DKIM は「セレクター名._domainkey」を付けた名前に置かれます。DKIM のセレクター名はメール配信サービスごとに違うので、サービスの設定画面や、受信したメールのヘッダーにある DKIM-Signature の s= の値で確認してください。

長い TXT は 255 バイトごとに区切られ、"..." "..." のように複数の文字列で表示されます。受け取る側は連結して扱うので、区切りがあること自体は異常ではありません。一方、SPF を表す v=spf1 で始まる TXT が2本以上あると SPF は失敗するので、本数も見てください。

NS と SOA:ゾーンの管理情報

dig +noall +answer example.com NS
dig +noall +answer example.com SOA

NS はドメインを管理する権威サーバーの一覧です。レジストラで設定したネームサーバーと一致しているかを確認します。SOA の2番目の数値はシリアル番号で、ゾーンが更新されると増えます。複数の権威サーバーに個別に SOA を問い合わせ、シリアルがそろっていれば、すべてのサーバーに同じ内容が配られていると判断できます。

CAA:証明書を発行できる認証局

dig +noall +answer example.com CAA

CAA が設定されていると、記載された認証局以外は証明書を発行しません。サブドメインに CAA が無い場合は親ドメインの CAA が参照されます。Let's Encrypt などで証明書の発行に失敗したときは、ここに使いたい認証局が含まれているかを確かめます。CAA が1件も無ければ制限なしの扱いです。

PTR:逆引き

dig +short -x 192.0.2.10

-x を付けると、IP アドレスから逆引き用の名前を組み立てて PTR を問い合わせてくれます。メールサーバーの送信元 IP の逆引きは、受信側の迷惑メール判定に使われることがあります。PTR はドメインの DNS ではなく、IP アドレスを割り当てたサーバー事業者側で設定するものです。

SRV と HTTPS

dig +noall +answer _sip._tcp.example.com SRV
dig +noall +answer example.com HTTPS

SRV は「_サービス名._プロトコル」の名前に置かれ、優先度・重み・ポート・ホスト名を返します。HTTPS レコード(SVCB の一種)は新しめの種別で、古い dig では種別名を認識せず TYPE65 と表示されることがあります。

複数の名前をまとめて問い合わせる

移転作業の前後で何十件もの名前を確認する場合は、問い合わせ内容を1行ずつ書いたファイルを -f で読み込ませると楽です。

# 問い合わせ内容を1行ずつ書いたファイルを作る
cat > names.txt <<'EOF'
example.com A +noall +answer
www.example.com A +noall +answer
example.com MX +noall +answer
EOF

dig -f names.txt > before.txt

各行には、コマンドラインで dig に渡すのと同じ形で名前・種別・オプションを書きます。作業前に結果を保存しておき、作業後に同じファイルで実行して diff before.txt after.txt のように差分を取ると、変え忘れや意図しない変更を見つけやすくなります。キャッシュサーバーに聞くと TTL の数字が毎回減っていくため、差分が見づらい場合は各行に +nottlid を加えて TTL を表示しないようにするか、権威サーバーを @ で指定して問い合わせてください。

つまずきやすい点

ANY を指定すればすべてのレコードが一度に取れる、と考えがちですが、現在は RFC 8482 に沿って ANY への回答を最小限にする DNS 事業者が多く、期待どおりの一覧は返りません。種別を指定して1つずつ問い合わせてください。

また、DNS 事業者の管理画面で値を変えた直後でも、キャッシュサーバーには TTL が切れるまで古い値が残ります。権威サーバーでは新しい値、キャッシュサーバーでは古い値という状態は正常な途中経過です。dig 自体のインストール方法や版による違いは時期によって変わるため、使う環境の dig -v で版を確認しておくと、資料との違いに気づきやすくなります。執筆時点(2026年10月現在)では、BIND 9.18 以降に付属する dig が主なディストリビューションで使われています。

まとめ

  • 確かめたいことを一文にし、問い合わせ先(キャッシュか権威か)とレコード種別を決めてから実行します。
  • 権威サーバーへの直接問い合わせでは aa フラグを確認し、+short で空のときは status を見ます。
  • A/AAAA はルートと www の両方、MX は指す先の A、TXT は SPF の本数、SOA はシリアルの一致を確認します。
  • CAA は証明書発行の失敗、PTR はメールの到達性に関わり、PTR は IP の管理者側で設定します。
  • 多数の名前は -f でまとめて問い合わせ、作業前後の結果を比べます。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲