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 サーバ側の情報が変わった時に対応できなくなるので、キャッシュは一定時間で勝手に消えるようになっている。