DNS におけるレジストラ、レジストリ、whois、DNS キャッシュの違い

こんがらがるのでまとめた。

レジストラとレジストリ

レジストラ はドメイン名を管理する組織。

ドメイン名は好き勝手に使われると収拾がつかないため、国際的に管理されている。親玉レジストラは ICANN。レジストラは国単位などで細分化されていて、たとえば .jp ドメインは 日本レジストリサービス というレジストラが担当する。

レジストリ はレジストラが管理するデータベース。ドメイン名と利用者情報の組が保存されている。

whois

whois はレジストリ情報を照会する(ドメイン名を与えてその利用者情報を引っ張ってくる)ためのプロトコル、あるいはサービス。

DNS キャッシュ

名前解決の際、いちいち DNS サーバに問い合わせてたら(問い合わせ先の)負荷がやばい。特に一番最初に問い合わされるルートサーバーは全世界からアクセスされるわけで、そんなの到底捌けるはずがない。

なので、一度照会した結果は手元で保存しておく(キャッシュ)。同じ問い合わせが来たら、手元に保存してる分を使えばいい。

たとえば www.google.co.jp が 172.217.25.195 と名前解決したとすると、DNS サーバはこの結果を手元に保存しておく。次、誰かが www.google.co.jp にアクセスしようとしたら、手元に保存してるキャッシュから「それは 172.217.25.195 だよ」とすぐにわかる。

以下にイメージ。

名前解決する時:

Client ---> DNS-Server1 ---> DNS-Server2 ---> ...
                                              # 世界中の DNS サーバーをあれこれ回って
                                              # 名前解決に必要な情報を集める.
                                              # 負荷高い.

キャッシュがある場合:

Client ---> DNS-Server1
            # ここで既にキャッシュが存在しており、対応できるので
            # DNS-Server2 以降への問い合わせは必要ない.

ただしキャッシュが存在してると、DNS サーバ側の情報が変わった時に対応できなくなるので、キャッシュは一定時間で勝手に消えるようになっている。