DNS(Domain Name System)は、インターネット通信の根幹を担う仕組みであり、名前解決ができないと Web サイト閲覧や各種サービスの利用ができなくなります。本記事では、DNS 名前解決ができない場合の原因と対処法を、実務で使えるチェックリスト形式で解説します。
目次
■ DNS名前解決ができない典型的な症状
- Web サイトにアクセスできない(IPアドレスに直打ちするとアクセスできる)
ping www.example.comが失敗するnslookupやdigがタイムアウトする- 社内システムだけ名前解決できない
- 外部 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トラブルシューティング手順
- クライアントの DNS 設定確認
- DNSサーバへの疎通確認(ping)
- 53番ポート確認(nc, telnet)
- nslookup で基本動作確認
- dig で詳細確認(NOERROR / SERVFAIL / REFUSED)
- 内部DNS と 外部DNS 両方で動作比較
- DNSキャッシュクリア
- DNSサービス状態確認(named / systemd-resolved)
- フォワーダ設定確認
- ゾーン設定確認
この順番で切り分ければ、90%以上の DNS 障害は特定できます。
■ まとめ:DNS名前解決ができない原因は大きく7つに分類される
- ① クライアント設定ミス
- ② DNSサーバ障害
- ③ 通信経路(FW/ルータ)問題
- ④ フォワーダ障害
- ⑤ ゾーン設定ミス
- ⑥ DNSキャッシュ問題
- ⑦ VPN・プロキシ経路の問題
本記事のチェックリストを使えば、現場で即トラブルシュートに活用できます。ぜひブックマークして実務に役立ててください。
あわせて読みたい


DNS解決ができないときの調査手順(dig/nslookup)
はじめに サーバやPCからインターネットに接続しようとしたとき、ping google.com が失敗する、ブラウザでサイトが開けない、といったトラブルに遭遇することがあります…
あわせて読みたい


DNS の仕組みとキャッシュ・再帰・権威サーバ関係
DNS(Domain Name System)は、インターネット通信の基盤となる「名前解決システム」です。人が覚えやすいドメイン名(例:example.com)を、コンピュータが通信に使うI…
あわせて読みたい


DNS障害を防ぐ冗長構成とキャッシュ設計【実務で使える手法】
DNS はインターネット通信の「住所録」の役割を持ち、企業ネットワークでも Web サービス、メール、API、社内システムなど、あらゆる通信の基盤となる重要コンポーネン…
あわせて読みたい


DNSキャッシュが原因で名前解決が遅い際の対処方法
Webサイトの表示が遅い、特定サービスだけ名前解決に時間がかかるといったトラブルの原因として「DNSキャッシュ」が影響しているケースがあります。本記事では、DNSキャ…
