DNS
IPアドレスが人間には覚えづらいので、ドメインに変換したい。
ドメイン
www.example.net みたいなやつ。ドット区切りで名前空間を構成している。
DNS
ドメイン名からIPアドレスを引き当てるための仕組み。引き当てる事そのものを解決(resolve)と呼ぶ。
DNSサーバ
DNSサービスを提供しているサーバー。キャッシュDNSサーバと権威DNSサーバがある
専用のプロトコルで通信している(HTTP系ではない)っぽい
権威DNSサーバ(ネームサーバ)
あるゾーンの情報を保持して、実際にリクエストされたドメインからIPアドレスを返すサーバ。リソースレコードを保持する。
そのゾーン全ての情報を管理しているのではなく、適宜委任が行われている
ゾーン
DNSの管理単位。委任によって作られる。
リソースレコード(DNSレコード)
ドメイン名に紐づけられた情報。IPアドレスや権威サーバなど
この情報の集合体(テーブル)をゾーンファイルと呼ぶのだそう
よく見かけるDNSレコードタイプ
委任
管理対象の一部分(ゾーン)を、別の管理者に委ねる仕組み。
DNSでは、この仕組みを使って、木構造の権限委譲が行われている。
委任するドメイン名のNSリソースレコードを親ゾーン(のゾーンファイル)に追加することで、(委任された)子ゾーンが構成される
www.example.jpを例に取ると、.jpのDNSには、example.comについてはこっちの権威サーバに問い合わせてね。という情報(NSレコード)が記載されている。
逆説的に、NSレコードとしてサブドメインとネームサーバを記載する事によって、そのサブドメインの所有権を先方に認めるという立て付けとなっている。
ドメインの委譲。と言うとレジストラに対してドメインの所有権を変更する手続きになる
レジストリ
トップレベルドメイン(TLD)毎に存在する、ドメインのデータベース(ドメインと、その持ち主が誰なのか)を持っている事業者
厳密には、レジストラでドメインを買う時に選択する.comとか.netとかの数だけ存在する
whoisサーバや、権威DNSサーバの運営もやっている。
.jpの場合、日本レジストリサービスという所が運営している。
whois見る限り、.netはverisignっぽい
レジストラ
レジストリへのドメイン登録作業を代行する事業者
AWS(Route53)、お名前.comとかがこの位置にいる
表層的に見える範囲では、TLDのDNSレコードに、依頼したドメインのNSレコードを追記(委任)してもらっている(推定)
ドメイン登録時に、ネームサーバを書く欄がある
javelin-studio.netを例に取ると、ドメインを買った事で.netの権威DNSサーバに、javelin-studio.netが指すIPアドレスにについて、どのDNSに問い合わせれば良いかが記載される
code:sh
# ドメイン購入前の例
% dig javelin-studio-dummy.net @a.gtld-servers.net # .netのDNSサーバに問い合わせ
; <<>> DiG 9.10.6 <<>> javelin-studio-dummy.net @a.gtld-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 58908 # NXDOMAINとは該当なし。という意味
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available
# ドメイン購入後
% dig javelin-studio.net @a.gtld-servers.net
; <<>> DiG 9.10.6 <<>> javelin-studio.net @a.gtld-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55992
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 2 # 回答は0だが、参照先として4件応答している
;; WARNING: recursion requested but not available