おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

DNSのTTL(Time To Live)を理解する!

はじめに

nslookup(dig)テスト【DNSサーバ接続確認】等でDNSレコードについて検索すると以下の赤枠のような数値を見かけます。

繰り返し検索すると徐々に数値は減っていきます。 この値をTTL(Time To Live)と言うのですが、これはどういう意味を表しているのでしょうか?

TTLとは

以下の記事でWebサイトへアクセスする際は権威DNSサーバ(ルートDNSサーバ等)へ直接アクセスせずにキャッシュDNSサーバへアクセスするという話をしました。

oooomincrypto.hatenadiary.jp

TTLとはそのキャッシュDNSサーバがその権威DNSサーバのレコード情報をキャッシュしてよい時間を表しています。 ※そのTTLが0になった後にアクセスされると、再度キャッシュDNSサーバが権威DNSサーバへアクセスしにいきます。

TTLの値を調べる方法

TTLの値を知るにはキャッシュDNSサーバではなく、権威DNSサーバへアクセスして調べる必要があります。 nslookup(dig)テスト【DNSサーバ接続確認】google.comの権威DNSサーバを指定してdig実行することで、キャッシュDNSサーバではなく直接権威DNSサーバにアクセスすることができるので試してみましょう。 以下の赤枠部分に権威DNSサーバを入力してdig実行してみます。

[実行結果]

以下のように「300」というTTL値が返ってきていることが分かります。 これは繰り返し検索しても値は減りません。つまりgoogle.comのDNSサーバのTTL「300」ということが分かります。

リプレイス案件の際はTTLの値に注意すること

TTLの存在をなぜ知っておかないといけないかというと、リプレイス案件等の際に重要な要素になってくるからです。

例えばWebサイトをリプレイスした際にキャッシュDNSサーバに保管されているTTLが残っていると、リプレイスしたつもりが顧客がアクセスしてもまだ前のサイトに繋がってしまうという事態が起きてしまいます(ここでTTLの知識がないと「権威DNSサーバの情報は新規のサイト用に変えたのに!なぜ?」となってしまいます)。

TTLの値が短く設定している場合はそのような問題は起きないかもですが、TTLの値を数日とかに設定しているような企業さんも少なからずいるため、リプレイス等の際は事前にこの値を出来るだけ小さな値に変えておくことを忘れないようにしましょう。

※一応TTLを短くしたがらない企業さんもいますが、それにはちゃんと理由もあります。以下の記事では理由の一例を挙げています。

oooomincrypto.hatenadiary.jp

おわりに

以上、TTLについての勉強でした!