TTL(Time To Live)とは、データがネットワーク上で有効に扱われる時間や回数の上限を示す値のことです。IPパケットの通信と、DNSの情報のキャッシュという2つの場面でよく登場する言葉で、どちらも「いつまでこのデータを使い続けてよいか」を管理する役割を持っています。
イメージとしては、TTLは食品に貼られた消費期限のようなものです。期限が切れたものは処分されるように、TTLが切れたデータも「もう使えない」と判断され、破棄されたり、新しく取得し直されたりします。
TTLとは
TTLは直訳すると「生存時間」となり、データや通信がいつまで有効かを示す数値です。IT分野では主に、ネットワーク上を流れるパケットの寿命を表す場合と、DNSの情報をどれだけの間キャッシュ(一時保存)しておいてよいかを表す場合の、2つの意味で使われます。
TTLの2つの意味
1つ目はIPパケットのTTLで、ネットワーク機器を経由するたびに数値が1ずつ減っていく仕組みです。もう1つはDNSレコードのTTLで、ドメイン名とIPアドレスの対応情報を、どれくらいの秒数キャッシュしてよいかを示します。同じ「TTL」という言葉でも、扱う対象がまったく異なる点に注意が必要です。
IPパケットにおけるTTL
インターネット上でデータをやり取りするパケットには、あらかじめTTLという数値が設定されています。ルーターなどの中継機器を1つ通過するたびに、この数値が1ずつ減らされ、0になった時点でそのパケットは破棄されます。これは、設定ミスなどでパケットが延々とネットワーク内をさまよい続ける事態を防ぐための仕組みです。
DNSレコードにおけるTTL
DNSの世界では、TTLは取得したドメイン情報を、次に確認するまで何秒間キャッシュしておいてよいかを示す数値として使われます。TTLが3600(1時間)に設定されていれば、一度調べた情報を1時間はそのまま使い続け、無駄な問い合わせを減らせる仕組みになっています。
TTLの値と反映速度の関係
DNSのTTLは、数値が小さいほど変更が素早く反映され、数値が大きいほど反映に時間がかかる代わりに問い合わせの回数を減らせるという、トレードオフの関係にあります。サーバーの引っ越しなど、設定変更が予定されている場合は、事前にTTLを短くしておくのが定石です。
TTLを短くする場面
サーバーの移転や、緊急でIPアドレスを切り替える必要がある場面では、あらかじめTTLを短く設定しておくことで、変更後すぐに新しい情報を利用者に届けやすくなります。切り替え作業の直前に慌てて短くしても、それまでにキャッシュされた古い情報はすぐには消えないため、余裕をもった準備が欠かせません。
TTLを長くする場面
逆に、設定がほとんど変わらない安定したドメインでは、TTLを長めに設定しておくことで、DNSサーバーへの問い合わせ回数を減らし、通信の効率を高められます。頻繁に変わらない情報にまで短いTTLを設定すると、無駄な通信が増えてしまいます。
TTL切れとエラーの関係
IPパケットのTTLが0になると、そのパケットは途中で破棄され、送信元には「TTL Exceeded(TTL超過)」といったエラーが返されます。この仕組みは、通信経路を調べる「traceroute」というツールにも応用されており、意図的にTTLを操作することで通過するルーターを1台ずつ特定できます。
| 項目 | IPパケットのTTL | DNSレコードのTTL |
|---|---|---|
| 単位 | ホップ数(経由する機器の数) | 秒数 |
| 減り方 | 機器を通過するたびに1減る | 時間の経過とともに減る |
| 役割 | 無限にさまようパケットを防ぐ | キャッシュの有効期限を管理する |
あわせて知っておきたい用語
- DNSキャッシュ:
一度調べたドメイン情報を一時的に保管しておく仕組み - DNSプロパゲーション:
DNSの変更内容が世界中に反映されるまでの過程 - Aレコード:
ドメイン名とIPv4アドレスを結びつけるDNSの情報 - ルーター:
ネットワーク同士を中継し、データの通り道を決める機器

コメント