TECHLOGICS

HYLOGICS分室。作業メモやガジェットのレビューなど、主に技術系のエントリを取り扱います。

DNSのキャッシュの仕組みについておさらい

DNSのキャッシュの仕組みについて、ちょっとおさらいしてみましょう。分かりやすいように細かいところは色々と省略しています。

例えばガルパンのサイトにアクセスする場合を考えます。

ユーザはURLを知っていますがサーバのIPアドレスを知りません。そのため、DNSに問い合わせを行いIPアドレスを教えてもらう必要があります(図1)。

f:id:kirine:20160225082502p:plain 図1

レコード(今回はAレコード)は権威サーバが所有していますが、毎回応答しているとすごい負荷がかかってしまいます。このため、応答結果をキャッシュとして保持することでアクセス負荷を軽減する仕組みがあります(図2)。

f:id:kirine:20160225082512p:plain 図2

キャッシュを保持しているサーバは権威サーバへ問い合わせを送らずに自身のキャッシュから応答できるようになります。しかし、キャッシュをずっと抱えていると権威サーバでレコードを更新した際に古いキャッシュとの間で差異が出てしまいます。これを避けるため、キャッシュは一定時間(TTL)が経過すると破棄されるようになっています(図3)。

f:id:kirine:20160225082519p:plain 図3

キャッシュが破棄された後は再度新たなリクエストに基づいて権威サーバへ問い合わせを行うようになるわけですね。