ネットワーク接続ができているのに「名前解決だけが失敗する」場面では、DNS(Domain Name System)が原因であることが多く見られます。
本記事では、LinuxやmacOS、Windowsで利用されるdigやnslookupを使ったDNSトラブルシューティングをゼロから解説します。
🔎 実務での切り分け手順を知りたい方へ
ログ確認・リソース確認・ネットワーク確認など、よくあるLinux障害対応の基本フローを整理したまとめ記事はこちら。
▶ Linuxトラブルシューティング完全ガイド|症状別チェックリストと原因・対処の総まとめ
目次
- DNSとは?仕組みと問題発生時の感覚
- dig と nslookup の違いと使い分け
- DNSトラブルを切り分ける基本手順
- dig の主要コマンド例
- nslookup の主要コマンド例
- よくあるDNS障害と対処法
- FAQ
DNSとは? 仕組みと問題発生時の感覚
DNS(Domain Name System)は、ドメイン名をIPアドレスに変換する仕組みです。ブラウザでサイトを開こうとした際に名前解決ができないと、ネットワークは生きていてもサイトにアクセスできません。
名前解決のトラブルを調査する際、IPでの疎通確認 → DNS の問い合わせ結果を調べるという順番で分析するのが基本です。

dig と nslookup の違いと使い分け
dig は DNS を直接問い合わせて詳細なレスポンスを得られるコマンドで、主にLinux・macOSで使われるネットワーク管理者向けのツールです。
nslookup はよりシンプルなインターフェースで、DNSの基本確認に使われます。どちらもDNSの調査に活用できますが、詳細解析やスクリプト用途では dig が優れています。

DNSトラブルを切り分ける基本手順
- ネットワーク到達性の確認 pingコマンドでIP疎通を確認:
ping 8.8.8.8 - DNS解決だけを確認 dig/ nslookup を使って名前解決を試行します。
- /etc/resolv.confの確認 DNSサーバーが正しく設定されているかチェックします。
- DNSサーバーのレスポンス内容を精査 エラーコードや回答セクションを確認し、原因を絞ります。


dig の主要コマンド例
1) 基本的な名前解決
dig example.com
これで ANSWER SECTION に対応するIPが返れば、DNS解決は成功です。
2) レコードタイプを指定
dig example.com MX
dig example.com TXT
MXやTXTなど特定レコードのみを調査できます。
3) 指定DNSサーバーでの問い合わせ
dig @8.8.8.8 example.com
Google Public DNSを使って名前解決状況を見る際に便利です。
nslookup の主要コマンド例
1) 単純な名前解決
nslookup example.com
標準DNSサーバーを使って名前解決を確認します。
2) DNSサーバーを指定して問い合わせ
nslookup example.com 8.8.8.8
他DNSサーバーの応答を確認できます。
3) 対話モードでの詳細調査
nslookup
> server 8.8.8.8
> set querytype=MX
> example.com
対話的にレコード種別やターゲットDNSサーバーを指定できます。
よくあるDNS障害と対処法
1) 名前解決ができない
ネットワーク自体は到達しているが DNS 応答がない場合:
- /etc/resolv.conf に正しい DNS サーバーが設定されているか確認
- 使用している DNS サーバーが動作しているか確認
- DNSキャッシュや DNSSEC 関連のエラーを確認
2) レコードが古いまま返される
TTL (Time To Live) が切れるまで古い値が返ることがあります。dig で TTL 付きレスポンスを確認し、必要ならキャッシュクリアを検討します。
3) 特定DNSサーバーだけ解決できない
nslookup/dig で別のDNSサーバー (@8.8.8.8など) を指定して結果を比較し、DNSプロバイダ変数の問題を切り分けます。
FAQ
Q1. dig と nslookup どちらを使うべき?
詳細解析やスクリプトで利用する場合は dig が優れています。シンプルな確認・対話操作が中心の場合は nslookup が使いやすいです。
Q2. DNS キャッシュを無視して調査したい
dig では @DNSサーバー指定や +trace オプションを利用して、DNSキャッシュ影響を最小化した調査ができます。
Q3. DNSSEC 関連でエラーが出る場合は?
DNSSEC 検証に失敗している可能性があります。Google Public DNS などで結果を比較しながら原因を絞ります。


