DNS名前解決ができない時のチェックリスト【原因・対処・確認手順】

  • URLをコピーしました!

DNS(Domain Name System)は、インターネット通信の根幹を担う仕組みであり、名前解決ができないと Web サイト閲覧や各種サービスの利用ができなくなります。本記事では、DNS 名前解決ができない場合の原因と対処法を、実務で使えるチェックリスト形式で解説します。

目次

■ DNS名前解決ができない典型的な症状

  • Web サイトにアクセスできない(IPアドレスに直打ちするとアクセスできる)
  • ping www.example.com が失敗する
  • nslookupdig がタイムアウトする
  • 社内システムだけ名前解決できない
  • 外部 DNS に問い合わせができない

■ まず確認すべき DNS基本チェックリスト

1. DNSサーバの設定値を確認

クライアント側で正しい DNS サーバが設定されているか確認します。

# Linux
cat /etc/resolv.conf

# Windows
ipconfig /all

誤った DNS が設定されている、または空欄の場合は名前解決できません。

2. DNSサーバとの疎通確認

ping <DNSサーバIP>

疎通不可の場合 → ネットワーク障害、FW 設定、VPN 経路不備の可能性があります。

3. DNSサーバの53番ポートの応答を確認

nc -zv <DNSサーバIP> 53

53/TCP・UDP が閉じていると名前解決できません。

■ nslookup/dig を使った詳細な切り分け

1. DNSサーバの応答有無を確認

nslookup www.google.com

→ タイムアウトする場合は DNS サーバが応答していません。

2. 特定のDNSサーバを指定して問い合わせ

nslookup www.google.com 8.8.8.8

これで解決する場合、内部 DNS サーバの障害が疑われます。

3. dig でクエリの詳細を確認

dig www.google.com @8.8.8.8
  • NOERROR & ANSWER セクションあり → 正常
  • SERVFAIL → DNSサーバ内部エラー
  • REFUSED → フィルタリングまたはACL
  • NXDOMAIN → ドメインが存在しない

■ DNS名前解決できない時の原因と対処法

1. クライアント側のDNS設定ミス

原因:誤った DNS サーバが設定されている/DHCPでDNS配布が壊れている

対処

  • 正しい DNS を手動設定する
  • DHCPサーバのオプション(option 6)を確認

2. DNSサーバ自体の障害

  • DNSサービスが停止している
  • CPU高負荷で応答できない
  • named / bind の設定エラー

対処例(Linux)

systemctl status named
systemctl restart named
journalctl -u named

3. DNSキャッシュの不整合

原因:古いキャッシュにより誤った結果を返す

対処

# Windows
ipconfig /flushdns

# Linux (systemd-resolved)
systemd-resolve --flush-caches

4. ファイアウォールやルータで53番が遮断

社内 NW で多いのがコレです。

対処

  • FWでは DNS(TCP/UDP 53)を許可する
  • ルータのDNS ALG(Application Layer Gateway)が不具合を起こしていないか確認

5. DNSフォワーダの障害

内部DNS → 外部DNS への forward が失敗しているパターン。

確認

dig www.google.com @内部DNS
dig www.google.com @8.8.8.8

内部DNSのみ失敗 → フォワーダ設定を確認

6. ゾーン情報の設定ミス(内部DNS)

社内固有のホスト名解決ができない場合はゾーンの typo・Aレコード欠落が多いです。

対処:正しい A / CNAME / PTR を追加

■ 具体的なトラブル原因別の解決フロー

ケース1:外部サイトが名前解決できない

  • 内部 DNS が応答しているか?
  • フォワーダ設定は正しいか?
  • 53番が FW で遮断されていないか?

ケース2:社内ホストだけ名前解決できない

  • ゾーンファイルの設定ミス
  • Aレコード漏れ
  • PTR(逆引き)漏れ
  • TTLが長すぎる

ケース3:VPN接続時だけ名前解決できない

  • VPN側 DHCP で正しい DNS が配布されていない
  • split-tunnel で DNS がローカルへ逃げている
  • VPN経路で53番がブロックされている

■ 実務で使えるDNSトラブルシューティング手順

  1. クライアントの DNS 設定確認
  2. DNSサーバへの疎通確認(ping)
  3. 53番ポート確認(nc, telnet)
  4. nslookup で基本動作確認
  5. dig で詳細確認(NOERROR / SERVFAIL / REFUSED)
  6. 内部DNS と 外部DNS 両方で動作比較
  7. DNSキャッシュクリア
  8. DNSサービス状態確認(named / systemd-resolved)
  9. フォワーダ設定確認
  10. ゾーン設定確認

この順番で切り分ければ、90%以上の DNS 障害は特定できます。

■ まとめ:DNS名前解決ができない原因は大きく7つに分類される

  • ① クライアント設定ミス
  • ② DNSサーバ障害
  • ③ 通信経路(FW/ルータ)問題
  • ④ フォワーダ障害
  • ⑤ ゾーン設定ミス
  • ⑥ DNSキャッシュ問題
  • ⑦ VPN・プロキシ経路の問題

本記事のチェックリストを使えば、現場で即トラブルシュートに活用できます。ぜひブックマークして実務に役立ててください。

目次