Tips
DNSレコードの調べ方と「どこを見るか」の判断
2025-12-20
この記事が解決する状況
| あなたの状況 | 読むべきセクション |
|---|---|
| サイトが表示されない、原因がDNSか確認したい | 目的別の調べ方 → 設定変更確認 |
| メールが届かない | 目的別の調べ方 → メール調査 |
| DNS設定を変更したが反映されない | キャッシュDNSと権威DNSの違い |
| サーバー移行で浸透待ち、本当に完了したか確認したい | 目的別の調べ方 → 浸透確認 |
| nslookupとdigどっちを使えばいいかわからない | digコマンド |
「nslookupで確認したのに、実際の挙動と違う」という経験があるなら、必ず読むべき。
調べる前に決めること
目的によって問い合わせ先が違う
| 目的 | 問い合わせ先 | 理由 |
|---|---|---|
| 設定が正しいか確認 | 権威DNSサーバー | 最新の設定値を返す |
| ユーザーに見えている値を確認 | キャッシュDNS(Google等) | 実際の浸透状況がわかる |
| 浸透完了を判断 | 複数のキャッシュDNS | 1箇所だけでは不十分 |
「どこに問い合わせるか」を決めずにnslookupを打つと、結果の解釈を間違える。
キャッシュDNSと権威DNSの違い
ユーザー → キャッシュDNS(8.8.8.8等) → 権威DNS
↓
キャッシュを返す(TTL期間中は古い値の可能性)
| 種類 | 役割 | 例 |
|---|---|---|
| 権威DNS | ドメインの正式な設定を持つ | お名前.com、Cloudflare、AWS Route53 |
| キャッシュDNS | 問い合わせ結果を一時保存 | 8.8.8.8、1.1.1.1、プロバイダDNS |
権威DNSを変更しても、キャッシュDNSがTTL期間中は古い値を返す。これが「DNS浸透」。
よくある誤解
誤: 「設定変更したらすぐ反映される」
正: 「権威DNSには即反映。ユーザーに届くのはTTL経過後」
nslookup の基本
Windows
nslookup -type=a example.com
nslookup -type=mx example.com
nslookup -type=txt example.com
Mac / Linux
nslookup -type=a example.com
# または
dig example.com A +short
digの方が出力がシンプルで扱いやすい。
レコードタイプ早見表
| コマンド | 調べる内容 | 用途 |
|---|---|---|
-type=a | IPv4アドレス | サーバー移行の浸透確認 |
-type=aaaa | IPv6アドレス | IPv6対応確認 |
-type=mx | メールサーバー | メールが届かない原因調査 |
-type=txt | SPF、DKIM等 | メール認証設定の確認 |
-type=ns | ネームサーバー | 権威DNSの特定 |
-type=cname | エイリアス | CDN設定の確認 |
目的別の調べ方
設定変更が反映されたか確認
権威DNSに直接問い合わせる。
# まずNSレコードで権威DNSを特定
nslookup -type=ns example.com
# 権威DNSに直接問い合わせ
nslookup -type=a example.com ns1.example.com
キャッシュを経由しないので、最新の設定値が返る。
これで新しい値が返らないなら、設定自体が間違っている。
ユーザーに見えている値を確認(浸透確認)
複数のキャッシュDNSで確認。
nslookup -type=a example.com 8.8.8.8
nslookup -type=a example.com 1.1.1.1
| サーバー | IP |
|---|---|
| Google Public DNS | 8.8.8.8 |
| Cloudflare DNS | 1.1.1.1 |
両方で新しい値が返れば、浸透はほぼ完了。
片方だけ新しい値なら、まだ浸透中。待つしかない。
メールが届かない原因を調査
MXレコードとTXTレコード(SPF)を確認。
nslookup -type=mx example.com
nslookup -type=txt example.com
SPFが設定されていない、または間違っていると迷惑メール扱いされる。
サイトが表示されない原因を調査
# Aレコードを確認
nslookup -type=a example.com 8.8.8.8
# 結果が期待と違うなら
# 1. 権威DNSに直接問い合わせて設定確認
# 2. 設定が正しいなら浸透待ち
dig コマンド(Mac推奨)
nslookupより出力がシンプル。Windowsでは使えないが、MacとLinuxでは標準装備。
# 基本
dig example.com A +short
# 特定のDNSサーバーに問い合わせ
dig example.com A @8.8.8.8 +short
# TTLも確認
dig example.com A
# 名前解決の経路を表示
dig example.com +trace
nslookup vs dig
| 項目 | nslookup | dig |
|---|---|---|
| 出力 | 冗長 | シンプル |
| TTL表示 | 見づらい | 一目でわかる |
| 経路追跡 | 不可 | +traceで可能 |
| Windows | 標準搭載 | 別途インストール |
| Mac/Linux | 標準搭載 | 標準搭載 |
Macユーザーなら dig 一択。 Windowsでも WSL を使えば dig が使える。
事故事例:浸透確認の落とし穴
事例1: 自分のPCだけ古い値
状況: nslookupで新IPが返るのに、ブラウザは旧サイトを表示
原因: ブラウザのDNSキャッシュ、またはOSのDNSキャッシュ
対処: ブラウザ再起動、またはOSのDNSキャッシュクリア
# Mac
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
# Windows
ipconfig /flushdns
事例2: 「浸透完了」と報告したら他の人で見れない
状況: 自分のPCでは新サーバー、クライアントのPCでは旧サーバー
原因: 1つのDNSサーバーでしか確認しなかった
対処: 複数のキャッシュDNS(8.8.8.8、1.1.1.1、プロバイダDNS)で確認
事例3: 権威DNSで確認したのに古い値
状況: 権威DNSに問い合わせているのに、古いIPが返る
原因: 問い合わせ先が権威DNSではなかった(CNAMEで別サーバーに転送されていた)
対処: NSレコードで権威DNSを正確に特定してから問い合わせ
よくあるトラブル
| 症状 | 原因 | 対処 |
|---|---|---|
| 設定したのに古い値が返る | キャッシュDNSに問い合わせている | 権威DNSに直接問い合わせ |
| 権威DNSでも古い値 | 設定ミス or 反映待ち | 管理画面で設定を再確認 |
| サーバーによって値が違う | 浸透中 | TTLの時間を待つ |
| 自分だけ古い値 | ローカルキャッシュ | OS/ブラウザのキャッシュクリア |
まとめ
- 目的によって問い合わせ先を変える
- 設定確認 → 権威DNS、浸透確認 → 複数のキャッシュDNS
- Macでは
dig +shortが便利 - 浸透完了の判断は複数サーバーで確認
- 自分のPCだけ挙動が違うならローカルキャッシュを疑う
関連記事
- DNS切り替え前に新サーバーを確認する方法 — hostsファイルで事前確認
- お問い合わせフォームが届かない原因の特定方法 — メールトラブルの切り分け