DNSの仕組みは勉強して知っていても、いざ自分でドメインを購入して使ってみるとわからない部分があったりしたので、自分が理解をしたことをまとめる。
思うに、DNSというシステムの仕組みを机上で解説した記事と、そのDNSの現実世界での運用方法であるレジストラについて解説した記事、そのそれぞれは存在するのだがその二者の間をつなぐような解説があまりなされていない気がしたので、そこについて書く。
※この記事は詳細について深く踏み入らないため、または私の理解が浅いために、表現が正確ではないことがあります。
前提
DNSの基本的な仕組みを理解していること。
ドメインの取得
我々はレジストラからドメインを購入する。ドメインを購入するとレジストラはそのドメインのゾーン情報が入る権威DNSサーバを用意した上で、上位のドメイン(.jpや.comなど)を管理している機関であるレジストリにそのドメイン名と用意したDNSサーバのホスト名を渡し、上位ドメインの権威DNSサーバのゾーン情報にそのNSレコードを追加するように頼む。用意するDNSサーバはドメインごとに用意されるのではなく、レジストラが販売したドメインをまとめて入れるDNSサーバになっているのが普通。
取得したドメインのゾーン情報の編集
取得したドメインのゾーン情報を編集するには、レジストラを通じて編集する。なぜならそのドメインのDNSサーバはレジストラが用意したものだからである。
取得したドメインのDNSサーバの変更
しかし、取得したドメインの権威DNSサーバは何もレジストラが用意したものしか使えないわけではない。他にDNSサーバを用意すればそれに変更することもできる。変更したい場合はそのDNSサーバのホストをレジストラに伝えれば、レジストラはレジストリに頼んでゾーン情報を変更してくれる。その場合、自分のドメインのゾーン情報は自分で用意したDNSサーバにあるので、そのDNSサーバのやり方で自分のドメインのゾーン情報を編集する。
分かりづらかったところ
DNSの解説記事を読むと、example.com を管理する権威DNSサーバのホスト名は ns.example.com のようにそのドメイン内のホストになっていることが多いが実際にはそうである必要はないし、むしろ外部のホストになっていることの方が多いと思われる。
また、権威DNSサーバは一台につき一つのドメインのゾーン情報しか持てないわけではなく、複数のドメインのゾーン情報を持てる。別の言い方をすると一つのDNSサーバは複数のドメインの権威DNSサーバになれるし、であるからしてドメインごとに別の権威DNSサーバを用意する必要はない。よってレジストラはあらかじめ用意した少数のDNSサーバを、販売したいくつものドメインの権威DNSサーバとして使っている。