whoisで登録されていたあるドメインのDNSサーバ情報を更新した際に、TTLの時間が経過しているにもかかわらず、古いDNSサーバを参照されていました。その時の対処方法を記録しておきます。
なお前提として、こちら(前編)とこちら(後編)で構築したbindの環境とします。
キャッシュをクリアする方法(結論)
まず結論から、bindでキャッシュをクリアする方法は、
# systemctl restart named-chroot
です。つまりサービスを再起動すれば、キャッシュもクリアされます。
今回の問題であった現象もこのコマンドで解消されました。
発生していた現象の詳細と判断した理由
whoisであるドメインのDNSサーバを変更した際に、webサーバのIPアドレスが変わりました。whoisの情報をある日の夕方に更新して、数時間後にwebサーバが新しい方のIPアドレスで名前解決されることを確認しました。しかし、あるDNSサーバだけはまだ旧DNSを参照していました。
もうしばらく放置しておけば変わるだろうと思い、次の日まで(12時間以上)放置して、動作確認しましたが、やはり旧のDNSサーバを参照しているようでした。
これらは、digコマンドでも動作確認しており、traceのオプションを付けて、ルートドメインからの参照経路を調べると、この時は新しいDNSサーバを参照していました。
これより、ちゃんとルートドメインから名前解決すれば、新しいDNSを参照するのに、現状は古いDNSを参照しにいっている、ということはキャッシュが効いているのだと思い、クリアしようと考えた次第です。
DNSサーバは複数台で構成していることもあり、1台ずつ再起動すれば運用には影響がありません。私の環境では、3台のDNSサーバのうち2台で古いキャッシュが有効になっていました。これらを順に再起動して、問題が解決したことを確認しております。
今回はここまでです。最後までお読みいただきありがとうございました。