DNSトラブル完全ガイド|dig/nslookupで名前解決できない原因を徹底解析

  • URLをコピーしました!

ネットワーク接続ができているのに「名前解決だけが失敗する」場面では、DNS(Domain Name System)が原因であることが多く見られます。
本記事では、LinuxやmacOS、Windowsで利用されるdignslookupを使ったDNSトラブルシューティングをゼロから解説します。

🔎 実務での切り分け手順を知りたい方へ
ログ確認・リソース確認・ネットワーク確認など、よくあるLinux障害対応の基本フローを整理したまとめ記事はこちら。
Linuxトラブルシューティング完全ガイド|症状別チェックリストと原因・対処の総まとめ

目次

目次

DNSとは? 仕組みと問題発生時の感覚

DNS(Domain Name System)は、ドメイン名をIPアドレスに変換する仕組みです。ブラウザでサイトを開こうとした際に名前解決ができないと、ネットワークは生きていてもサイトにアクセスできません。

名前解決のトラブルを調査する際、IPでの疎通確認 → DNS の問い合わせ結果を調べるという順番で分析するのが基本です。

dig と nslookup の違いと使い分け

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

DNSトラブルを切り分ける基本手順

  1. ネットワーク到達性の確認 pingコマンドでIP疎通を確認:ping 8.8.8.8
  2. DNS解決だけを確認 dig/ nslookup を使って名前解決を試行します。
  3. /etc/resolv.confの確認 DNSサーバーが正しく設定されているかチェックします。
  4. 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 などで結果を比較しながら原因を絞ります。

目次