DNSリゾルバ・キャッシュ? とにかくネームサーバーが切り替わりません。

現在、契約しているレンタルサーバー「Xbit」より、先日、「システムのバージョンアップをするので希望者は新サーバーに移行できますよ~」という案内が来ました。

待ってました!
これでようやくWordpressの最新バージョンが使えるぜ!
(PHPのバージョン制約で、Wordpress3.1.4までしか使えなかったのです)

さっそく申し込みをして、数日前に「ネームサーバーの切り替えが完了しました」という内容のメールを受け取りました。

そろそろサーバー上のWordpressのバージョンアップをしようかなあと思っていた矢先のこと、何気なくCSSの一部修正していたら…。あれ?変更したはずのスタイルが効いていない…。てっきりCSSの記述に問題があるのかと思い、いろいろ変更してみても、表示内容が一切変わりません。んん?
FTPのアップロード先を間違えているのかなと思い、確認してもちゃんと更新されています。しばらく悩んだあとに、ブラウザのアドレスバーにCSSファイルのURLを直接叩いてみたところ…、

あら?古いまま?
更新されていない…。
どういうこと?
FTPで確認したときはちゃんと変わっていたのに?

あきらかにブラウザで参照しているファイルとFTPで確認したファイルが別々です。ブラウザのキャッシュか?と思いキャッシュ削除してもダメ。そこでようやく思い至ったのが、サーバー移行したばかりだという事実。

FTPでは新サーバーに接続できて、ブラウザでは旧サーバーを見に行ってるんじゃないかと。そこで、FTPで旧サーバーに接続してファイルを更新したところ…、ビンゴです。ブラウザ上でもしっかりと表示が変わりました。

「ネームサーバー切り替え直後だからしょーがないかあ…。」と思ったものの、FTP接続などではちゃんと名前解決されている事実にまるで気づかず。

そんな折、リモートデスクトップで遊んでいたCentOS6から何気に問題のサイトにアクセスしたら、ちゃんと新サーバーにアクセスしているじゃないですか。DNSが浸透したのかと思い、喜び勇んでメインPCでアクセスしたら、やっぱり変わっていない…。えー?そこで、MacBookでも確認。おお、ちゃんと新サーバーにアクセスしている。

ということは…。メインPCだけ、旧サーバーを見ている!! そんなことってあるの?

調べてみると、「DNSリゾルバ・キャッシュ」というのがWindowsにはあるらしい。おお、怪しい。とっても怪しい。
DNSリゾルバ・キャッシュとは、

DNSリゾルバ・キャッシュってゆーのは、DNS サーバへ問い合わせた結果 (名前解決の情報) をシステム内部にキャッシュしておいて、DNS
サーバへの問い合わせを抑制する機能の事。
参考:DNSリゾルバ・キャッシュを消去する @WT -Windows Tips-|Replog!株式会社レップワンスタッフによるブログです

というものらしいです。そんな機能があったとは知らなかった。
しかし、内容的にもこれが悪さしているならば辻褄が合います。

ん?

キャッシュに保持される時間は、DNSサーバから返されたレコードに指定されている TTL (Time To Live)の時間に依存。ただし有効期間の最大値はデフォルトのままなら 1日 (86,400秒) に制限されてるので、1日以上経過すれば、元のDNSレコードの TTL にかかわらず、キャッシュから破棄 される。否定応答の場合は、最大300秒保持される。
参考:DNSリゾルバ・キャッシュを消去する @WT -Windows Tips-|Replog!株式会社レップワンスタッフによるブログです

あれ?もうすでに数日経っているような…。PCの再起動も何回かしているような…。
いやいや、とにかくこのキャッシュを消してしまえばいいのだ。

ということで、コマンドプロンプトにて以下を実行。これでDNSリゾルバ・キャッシュを削除できます。

C:\>ipconfig /flushdns

ちなみに、内容を確認するときは、

C:\>ipconfig /displaydns

です。

これで万事解決!!と思いきや、全然変わらず。な、なぜ!?

結論から言いますと、hostsの書き換えがすべてでした。嗚呼…。
なぜかhostsに旧サーバーIPへの記述がありました。これ、記述した記憶が全くないんですけど。hostsに書き込む理由がないし。どういうことなのか…。

とにかく、hostsで設定されていたら、そりゃいつまでたっても新サーバーには向きませんよね…。

今回は、DNSリゾルバ・キャッシュというものを知りました、という話。

Wordpress, 備忘録 | , |