ルータのDNSキャッシュをクリアする
2011年03月16日
レジストラでDNS設定を変更したのに、古いサーバに到達してしまいエラーが出るといったことがあります。
例えば
- hoobar.comのアドレスを219.xxx.xxx.xxxから202.yyy.yyy.yyyに変更。
- DNSサーバは仮にns.hoobar.comとする。
- ルータを経由してインターネットに接続されているクライアントマシンからhoobar.comに接続すると219.xxx.xxx.xxxに接続されてしまう。
- ルックアップコマンド(dig)でDNSサーバを指定すると、正しく202.yyy.yyy.yyyを表示。
- dig @ns.bar.com hoobar.com → 202.yyy.yyy.yyy
- トレースルートでは古いサーバを表示する。
- traceroute hoobar.com → 219.xxx.xxx.xxx
- クライアントマシンのDNSキャッシュをクリアしても事態は変わらない。
- dscacheutil -flushcache
こんな時はルータのDNSキャッシュを確認してみましょう。
- dig @192.168.0.x hoobar.com → 219.xxx.xxx.xxx
犯人はコイツです!
DNSキャッシュをクリアするコマンドが用意されているルータもあると思いますが、15分ほど電源を切ればキャッシュはクリアされます。
この記事は2011/03/16に公開され、814 views読まれました。
初めまして。コメント失礼します。
アルゴリズンといいます。
丁度、先日2013年9月4日にレンタルサーバのDNS設定を誤って削除してしまい、3時間後くらいに設定を戻しました。
その際に、googleのパブリックDNS(8.8.8.8など)をクライアントに設定し、自らの環境は即時性が得られ、参照できるようになりました。
本投稿を読み、ルーターのDNSキャッシュ更新でも対応はできたんだなと思いました。
しかしこの問題、私以外の他者のアクセスに関してはおそらく一定の期間は、名前解決できずエラーが表示されていたのでしょう。
他者の環境のキャッシュがうまく更新される方法がないかといろいろ調べているのですが、どうもいい方法がなさそうで困ってます。
現在のところ、500PV/日あったものが30PV/日まで低下したこともこの誤った設定が起因しているのかなとも思っていますが、改めてDNSの設定の怖さを痛感しています。
似たようなご経験があればご意見でも頂けたらなと思います。