2026年8月2日
2026年8月2日
DNS名前解決が遅い時のトラブルシューティング
ステップ1: 基本的なネットワーク診断
DNS名前解決が遅い場合の基本操作
まず、DNS名前解決が遅い場合にどのような状況で発生するのかを理解しましょう。主な場面としては以下のものがあります。
- ウェブサイトの読み込みが遅い: サイトへのアクセス時に時間がかかる。
- メール送受信に遅延がある: 送受信に時間がかかり、メールサーバーとの接続に問題がある可能性がある。
- SSH接続が不安定: SSH接続も遅くなったり失敗することがあります。
手順1: ネットワーク接続の確認
# pingコマンドでネットワーク接続をチェック
ping -c 4 example.com
# tracert (Windowsではtraceroute)でパケットがどのルートを通っているかを追跡
tracert example.com
手順2: 名前解決の確認
# digコマンドを使用してDNS解析結果を取得
dig +trace example.com
# nslookupも用いて確認する
nslookup example.com
ステップ2: DNSサーバー設定の確認
DNSサーバーからの応答時間の確認
# timeコマンドとdigコマンドを組み合わせてDNS応答時間を計測
time dig +short example.com
手順3: 既定のDNSサーバー設定の確認
# /etc/resolv.confファイルを確認
cat /etc/resolv.conf
# オンボーディング時に使用されるプライベートDNSサーバが正しく設定されているか確認
ステップ3: アプリケーションレベルでの問題のチェック
SSH接続に問題がある場合
# SSH接続を試してみる
ssh user@example.com
# その際のログを確認する
journalctl -u sshd.service
メール送受信に問題がある場合
# mailqコマンドでメールキューを確認
mailq
# postfixのログを確認
tail -f /var/log/maillog
ステップ4: DNSキャッシュのクリアと更新
DNSキャッシュが古いか冗長なDNSサーバを参照している場合
# systemd-resolved (systemdのDNSクライアント) のキャッシュをクリア
sudo systemd-resolve --flush-caches
# /etc/resolv.confファイルを再設定する
sudo systemctl restart systemd-resolved.service
注意事項
- DNSサーバーの更新周期を確認して、必要に応じて更新を行う。
- アクセス制限やファイアウォール設定がDNSへのアクセスを阻害していないか確認する。
- オンボーディングプロセスで使用されるプライベートDNSサーバが正しく設定されていることを確認する。
まとめ
1. ネットワーク接続の確認: pingやtracertを使用して基本的なネットワーク接続を確認します。
2. DNS解析結果の確認: digとnslookupを使用してDNS解析結果を取得し、問題がある場合は追跡します。
3. DNSサーバー設定の確認: DNS応答時間を計測し、必要に応じて既定のDNSサーバー設定を確認します。
4. アプリケーションレベルでの問題のチェック: SSH接続やメール送受信に問題がある場合はそのログを確認します。
5. DNSキャッシュのクリアと更新: 古いまたは冗長なDNSキャッシュが原因の場合、それをクリアし更新を行います。
関連記事: