DNS浸透の曖昧さを回避する

この記事は約2分で読めます。
スポンサーリンク

DNSの切り替え時、例えばサーバーが変わってIPを変更するときにはAレコードの書き換えが発生します。
Aレコードは直ちに変更がされることでしょう。
ただし、変えたからと言ってすぐに世界に反映されるわけではありません。

世界中にネットワークは張り巡らされています。
もし、世界中からあなたのサーバーの場所はどこですか?と毎回問い合わせが来たらどうなるでしょうか?
答えはサーバーがパンクしてしまうです。

それを回避するためにDNSのレコードは一時的にキャッシュされます。
いろんな拠点でキャッシュされるのです。

つまり、問い合わせ先のキャッシュが消えない限りは古いサーバーを見続けるということになります。
よくあるのはDNSを切り替え中、別のプロバイダーで見ると、反映されていたりします。
でもいつも使うプロバイダーではまだ変わってない。

これがなぜ起こるかというとプロバイダーでDNSがキャッシュされているからです。

ではこのキャッシュはどうやったら消すことができるでしょうか?
通常は故意的に消すことは不可能です。管理者は私ではないのですから。

しかし、ある程度の制御は可能です。
TTLを変更することで制御ができます。

TTLとは、いつまでキャッシュし続けるかという時間です。
この時間が過ぎると、またドメインがどこを指定しているかという情報の問い合わせをされます。

通常なら1日の指定がされています。
なので、大体、一日くらいで反映されますと言われたりします。
念のため最長一週間を目途に変わりますということもあります。

このTTLをなるべく5分など少ない値にしてあげることにより、
最長5分ほどで変わりますよと言えるわけです。

例えば1日のTTLが指定されていた場合、
レコードの変更する1日前にTTLを変更しておけば、そのTTLになるということです。

あまりに短すぎると、問い合わせが多くなり、サーバーがパンクするので許容できる範囲での指定をしましょう。
そして、変更が終わって、指定した時間を超えて十分な時間をとれたと思ったら元に戻しましょう。

しかしながら、例外はあるわけで、ブラウザやパソコンでキャッシュされてたりすることもあるので、
その辺は再起動するなどして対応が必要ですね。

ただネームサーバーの切り替えはまた別なので、
ネームサーバーとDNS同時に切り替える場合は、先にDNSを切り替えてからのほうがいいと思います。

コメント

タイトルとURLをコピーしました