DNSについての知識が浅はかすぎたのでDNSの種類、AレコードCNAMEレコードなどについてまとめておく
DNS権威サーバとDNSキャッシュサーバ
全体の構成図がこの方の図がわかりやすかったため引用(https://qiita.com/Catalyst3104/items/79dee09a9ffeb91964c0)
DNSキャッシュサーバーとは
クライアントは基本的に最初にこのキャッシュDNSサーバーを通る。名前の通り、IPアドレスとドメイン名のキャッシュを保持してくれている
何らかの理由がある場合、 DNSフォワーダ(DNSプロシキ) というただDNSキャッシュサーバにクエリを転送する役割のみのものも存在する(中継役)
DNS権威サーバーとは
権威サーバーとは、実際にIPアドレスとドメインの関係性(ゾーン情報)を保存している部分。
キャッシュサーバーにきたドメイン名がもし対応するIPがない場合、キャッシュサーバーは権威サーバーに問い合わせに行く。
権威サーバーにもさらに ルートサーバ とそれ以下の権威サーバに分類することができる。
DNSルートサーバ
ルートサーバは世界で13拠点しかないDNSサーバになる。DNSキャッシュサーバが一番最初に観に行く場所。
ここには「.com」や「.net」などのDNSサーバの情報が記されており、もし今自分が「example.com」にアクセスしたい場合、ここで「.comのサーバはどこですか?」と聞くことができる
そこから先は反復的にキャッシュサーバーが各ドメインを管理してるDNSサーバーに聞きに回る
最終的に完成したドメインのIPアドレスがDNSキャッシュサーバに返され、クライアントへと返される
レコードについて
DNSには様々なレコードの種類がある。今回は特にドメイン購入時などに設定が必要になるAレコード・CNAMEレコードについて調べてみた
Aレコード
簡単にいうとドメイン名をIPv4アドレスに紐付けるレコードのこと。
example.com IN A 192.xxx.xxx.x
などのように記載される
CNAMEレコード
ドメイン名を別のドメイン名に紐づけるために使用される
www.example.com IN CNAME example.com
のように記載される
なぜCNAMEレコードが存在するのか
一見Aレコードのみあればそこに対応するIPアドレスを書けばいいので全て解決すると思われたが、なぜCNAMEレコードが存在するかというと以下の場合にとても効果を発揮する
example.com. IN A 192.0.2.1
www.example.com. IN A 192.0.2.1
blog.example.com. IN A 192.0.2.1
ftp.example.com. IN A 192.0.2.1
こんなレコードがあった時、もしこの状態でサーバーのIPアドレスが別のものに変更されたら、4つ全てのAレコードを手動で更新しなければならなくなる。
これがCNAMEを使うとこうなる
example.com. IN A 192.0.2.1 ←原本はこれだけ
www.example.com. IN CNAME example.com.
blog.example.com. IN CNAME example.com.
ftp.example.com. IN CNAME example.com.
このように、もしサーバーのIPアドレスが変わったとしても原本であるexample.comのAレコード一つのみを変更するだけで済む。
これにより設定ミスが減り、運用が楽になるというメリットがある
まとめ
DNSサーバには権威とキャッシュの二つが存在した。
まず我々はキャッシュに問い合わせをし、そこからキャッシュされてなければ権威サーバに都度問い合わせていくという流れであると知った
またCNAMEレコードが意味を発揮する瞬間というのも学べた
何か間違いあれば指摘お願いいたします!