この特集のトップページへ
Chapter 4:DNS(Domain Name System) 〜委任と内部ルート〜

4.5.3 TTLの設定

 TTL(Time To Live)とは,キャッシュされたリソースレコードの生存期間のことである。「3.3.2 キャッシュ」でも述べたとおり,DNSサーバーは自分が解決した結果をキャッシュしている。そのキャッシュの有効期限を表す値が,TTLである。TTLを設定する場合,SOAレコードでゾーン全体に対する値を設定することもできるし,各レコードごとに個別の値を設定することもできる(後者の設定が優先される)。

 TTLの値は,一般的にデフォルト値から変更しなくても問題が生じることはない。ただし,長期にわたってDNSサーバーを停止させることがわかっている場合には,Webサーバーや電子メールサーバーのAレコードとMXレコードのTTLに大きな値を設定しておくこともできる。たとえば,電子メールサーバーのAレコードとMXレコードのTTLを,それぞれ1週間に設定したとしよう。そのレコードをキャッシュしたDNSサーバーは,その情報を1週間のあいだ保持するようになる。そのため,たとえその間,自分のDNSサーバーがダウンしていたとしても,レコードをキャッシュしているDNSサーバーを参照するドメインからは,電子メールを問題なく送信できる。もちろんこの場合も,レコードをキャッシュしていなかったDNSサーバーを参照するドメインから電子メールを送信できなくなることに変わりはない。とはいえ,上流の電子メールサーバーから常に電子メールが送信されてくるような環境では,有効な手段といえるだろう。

 このように述べると,「全レコードのTTLに大きな値を設定しておけば,耐障害性が増すのではないか」と考える読者がいるかもしれない。しかし,TTLに大きな値を設定すればするほど,DNSの設定を変更しても,それがクライアントの動作に反映されるまでに時間がかかるようになる。一度キャッシュされた内容は,指定された生存期間が経過しないと破棄されない。自分の管理しているゾーンのレコードの内容を変更したとしても,ほかのDNSサーバーはキャッシュされた内容を利用してしまうため,新しい情報を問い合わせようとはしない。電子メールサーバーやWebサーバーのように,変更されることが少ないサーバーのTTLには大きな値を設定してもあまり問題が発生することはないと思われるが,TTLに大きな値を設定しすぎると,ネットワーク内に設定の変更が反映されるまでに時間がかかることに,十分注意してほしい。

PREV 12/14 NEXT