Gadget 29:DNS の切り分け
名前解決が壊れたときの切り分け手順(DNS 起因なのかネットワーク起因なのか)
DNS の切り分け
「ドメインで繋がらない」の原因が DNS なのか経路なのかを、正しく短時間で特定します。
目的
- 名前解決のトラブルを最短で切り分ける
- 「ネットワークが悪い」と決めつけない
前提条件
dig/nslookup/pingが使える- ネットワーク基礎(12-networking-basics)
手順(切り分けの順)
1. 名前は引けるか
dig +short <あなたのホスト名>
# 例: cf.example.com- 引ける → 経路・ポート・TLS の疑いへ(手順 3)
- 引けない → 手順 2
2. DNS のどこが壊れているか
dig @8.8.8.8 +short <hostname> # パブリックDNSで引ける?
cat /etc/resolv.conf # 使っているDNSサーバ
scutil --dns | head -20 # macOS の解決設定| 結果 | 判断 |
|---|---|
| 8.8.8.8 では引ける | ローカル DNS / リゾルバの問題 |
| どこでも引けない | ゾーン / レコード設定の誤り |
3. 経路・ポート・TLS を確認する
nc -vz <hostname> 443 # ポート到達性
curl -v https://<hostname> # TLS・プロキシ4. 特定ホストだけ壊れるとき
- キャッシュを疑う:
dscacheutil -flushcache(macOS)、systemd-resolve --flush(Linux) - 複数の端末で同じ症状か確認(端末固有 or 全体か)
よくある失敗
| 症状 | 原因 | 対処 |
|---|---|---|
| 「名前引けない」をネットワークと即断 | リゾルバ・ゾーン誤設定 | dig @8.8.8.8 で切り分け |
| ブラウザだけ繋がらない | プロキシ設定 / キャッシュ | curl --noproxy で再確認 |
| 特定端末だけ壊れる | 端末の DNS 設定 | flush+別端末で検証 |
| TTL 後も変わらない | プロバイダーキャッシュ | 待つ or 別サーバ参照 |
確認
次に読む
- ネットワーク基礎 → 12-networking-basics
- TLS / 証明書 → 13-certificates-and-tls
- 特殊環境 → 28-edge-cases