「ドメイン移管やDNS切り替えで、実際の伝播状況をどう確認すればいい?」
DNSのトラブル対応では、
digコマンドで正引き・逆引き・権威サーバーの状態を素早く確認できるかが勝負を分けます。この記事では、
digコマンドについて、基本的な正引き・逆引きから、レコードタイプ指定(A/MX/TXT/NS/CNAME)、権威DNSサーバーへの直接問い合わせ、+shortや+traceといった実務でよく使うオプション、DNS伝播の確認、そしてnslookupとの違いまで解説します。・digはBIND由来のDNS問い合わせコマンドで、DNS調査における事実上の標準ツール
・
+shortで結果だけ、+traceでルートからの経路、@DNSサーバーで直接問い合わせができる・レコードタイプ(A/AAAA/MX/TXT/NS/CNAME/SOA)を切り替えて、あらゆるDNS情報を取得可能
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
digとは?BIND由来のDNS調査コマンド
dig(Domain Information Groper)は、BIND(DNSサーバー実装)に付属するDNS問い合わせツールです。正引き・逆引き・各種レコードの取得・権威サーバーへの直接問い合わせまで、DNS関連の調査はほぼすべてdig1本でこなせます。以前は
nslookupが使われていましたが、digのほうが出力が詳細でスクリプト連携もしやすく、RHEL7以降はdigが推奨コマンドになっています。・パッケージ:
bind-utils(RHEL系)/dnsutils(Debian系)・インストール:
sudo dnf install bind-utilsまたはsudo apt install dnsutils基本的な使い方
1. ドメイン名からIPアドレスを引く(正引き)
最も基本的な使い方です。何も指定しないとAレコード(IPv4アドレス)を引きます。# 正引き(Aレコード) dig www.example.com
2. 結果だけを簡潔に表示する(+short)
スクリプトで結果だけ欲しい場合は+shortが便利です。# IPアドレスだけを表示 dig +short www.example.com
3. IPアドレスからドメイン名を引く(逆引き)
-xを付けるとPTRレコードを引きます。# 逆引き dig -x 93.184.216.34
4. レコードタイプを指定する
MX(メール)、NS(権威サーバー)、TXT(SPFやDKIM)、CNAMEなど、必要なレコードタイプを指定します。# メールサーバーを調べる dig example.com MX # 権威ネームサーバーを調べる dig example.com NS # TXTレコード(SPF・DKIM・ドメイン認証など) dig example.com TXT # SOAレコード(ゾーンの管理情報) dig example.com SOA
応用・実務Tips
特定のDNSサーバーに直接問い合わせる(@)
@DNSサーバーを指定すると、そのDNSサーバーに直接問い合わせできます。DNS伝播の確認や権威サーバーの動作確認で必須のテクニックです。# Google Public DNSに問い合わせる dig @8.8.8.8 www.example.com # 権威ネームサーバーに直接問い合わせる dig @ns1.example.com www.example.com
ルートから順に権威を追う(+trace)
+traceはルートサーバーから順に辿って、最終的な権威サーバーの回答に到達するまでの経路を表示します。委任の問題を切り分けるのに強力です。# ルートから辿って権威に到達するまでを表示 dig +trace www.example.com
キャッシュの影響を排除する
公開DNS側のキャッシュではなく、常に権威に直接聞きたい場合は、NSレコードを先に調べてから@で権威を指定します。# 権威を調べてから直接問い合わせる dig example.com NS +short dig @ns1.example.com www.example.com
DNS伝播を確認する
ドメイン移管やDNS切り替え時は、複数のリゾルバで同じ問い合わせを行い、結果が揃うかを確認します。# 主要リゾルバに問い合わせて結果を比較 dig @8.8.8.8 www.example.com +short dig @1.1.1.1 www.example.com +short dig @208.67.222.222 www.example.com +short
クエリ時間を確認する
dig出力の末尾にあるQuery timeの値で、DNSの応答速度を確認できます。遅い場合はリゾルバや経路を疑います。出力の読み方
dig出力は4つのセクションに分かれています。・HEADER:ステータスやフラグ(
status: NOERRORが正常、NXDOMAINはドメインが存在しない)・QUESTION SECTION:問い合わせ内容
・ANSWER SECTION:回答(ここが一番重要)
・AUTHORITY SECTION:権威ネームサーバー
・ADDITIONAL SECTION:補足情報(権威NSのIPなど)
DNSSEC署名を確認する(+dnssec・DS・DNSKEY)
DNSSEC(DNS Security Extensions)は、DNS応答にデジタル署名を付加して改ざんを検出する仕組みです。金融機関や政府機関のドメインで有効になっているケースが増えており、「署名はあるか」「検証チェーンは繋がっているか」をdigで手軽に確認できます。1. RRSIG(署名レコード)を含む応答を取得する(+dnssec)
+dnssecオプションを付けると、通常の応答に加えてRRSIG(Resource Record Signature)が返ってきます。adフラグ(Authentic Data)がHEADERに立っていれば、リゾルバがDNSSEC検証済みであることを示します。# DNSSECの署名情報を含めて問い合わせる dig +dnssec www.example.com # 出力例(adフラグに注目) # ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345 # ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, ... # ↑ "ad" フラグがあればリゾルバがDNSSEC検証済み
2. DSレコードで委任署名を確認する
DSレコード(Delegation Signer)は親ゾーンが子ゾーンの公開鍵ハッシュを保持するレコードで、DNSSECの信頼チェーンを形成します。DSレコードが存在すれば、そのドメインでDNSSECが有効になっていることを確認できます。# DSレコードを取得する(親ゾーンのDNSSEC有効確認) dig example.com DS # 8.8.8.8(DNSSEC対応リゾルバ)経由で問い合わせる dig @8.8.8.8 example.com DS +short
3. DNSKEYで公開鍵を確認する
DNSKEYレコードにはゾーンの公開鍵が格納されています。DSレコードのハッシュ値とDNSKEYが一致することで信頼チェーンが検証されます。# DNSKEYレコードを取得する dig example.com DNSKEY # +shortで鍵のビット数のみを確認 dig +short example.com DNSKEY
4. DNSSEC未対応ドメインとの違い
DSレコードが返らない(status: NOERRORだがANSWER: 0)場合は、そのドメインでDNSSECが有効化されていないことを意味します。HEADERのadフラグが立っていない場合も同様です。# DNSSEC有効化の確認(adフラグ有無で判定) dig +dnssec example.com A | grep "flags:" # adフラグあり → DNSSEC検証済み # adフラグなし → DNSSECなし、または検証未実施
トラブルシュート・エラー対処
「connection timed out; no servers could be reached」が出る場合
指定したDNSサーバーに到達できていません。/etc/resolv.confの設定やファイアウォール(UDP/53、TCP/53)を確認してください。# /etc/resolv.confの内容 cat /etc/resolv.conf # DNSサーバーへの疎通確認 ping -c 2 8.8.8.8
「status: NXDOMAIN」が返る場合
問い合わせたドメインが存在しません。スペルミスか、まだ登録されていない可能性があります。権威サーバーに直接問い合わせて確認しましょう。「dig: command not found」が出る場合
bind-utils(または dnsutils)が入っていません。インストールしてください。# RHEL/CentOS/AlmaLinux/Rocky sudo dnf install -y bind-utils # Debian/Ubuntu sudo apt install -y dnsutils
キャッシュDNSと権威DNSで結果が異なる場合
DNS切り替え直後はキャッシュが古い値を保持している可能性があります。権威に直接問い合わせて最新値を確認し、TTLが切れるまで待つのが基本です。本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| 正引き(Aレコード) | dig www.example.com |
| 結果だけを表示 | dig +short www.example.com |
| 逆引き | dig -x 93.184.216.34 |
| MXレコードを調べる | dig example.com MX |
| NSレコードを調べる | dig example.com NS |
| TXTレコードを調べる | dig example.com TXT |
| 特定DNSサーバーに直接問い合わせ | dig @8.8.8.8 www.example.com |
| ルートから権威まで辿る | dig +trace www.example.com |
| DNSSEC署名を含めて問い合わせ | dig +dnssec www.example.com |
| DSレコード(DNSSEC有効確認) | dig example.com DS |
| DNSKEYレコードを確認 | dig example.com DNSKEY |
DNSトラブルを一人で切り分けられる、本物のLinuxエンジニアになりませんか?
DNSは「動いて当たり前」と思われがちですが、実は障害原因の3割がDNS起因と言われる領域です。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます