DNSの仕組みを用語の一問一答で解説|レジストリ/レジストラ/ネームサーバー/ホストゾーン
はじめに
理解している部分と曖昧な部分が混在していた、DNSの仕組みについて備忘録を残します。
特定の用語を解説するためには、他の用語を使用することが簡単なため用語の解説が前後しているケースは散見します。
ドメイン
hoge.com
・fuga.jp
のようなドメイン(そのまま笑)を指します。
ドメインはDNSの仕組みを通じて、一意なIPアドレスと紐付いています。
DNS(Domain Name System)
DNSはDomain Name Systemの略称です。ネームサーバーを介して、ドメイン名をIPアドレスに変換する仕組みのことを指します。
レジストリ・レジストラ
レジストリ
ドメインを管理している機関です。トップレベルドメイン(TLD)の管理者です。トップドメインとは、.com
・.net
・.jp
などです。.com
・.net
は Verisign、.jp
は JPRS という機関が管理しているようで、様々な機関が管理しているようです。
レジストリが管理しているリソース
- ドメイン名: example.com
- ネームサーバー: ns-123.awsdns-45.com, ns-234.awsdns-56.net
- レジストラ情報(どのレジストラ経由で登録されたか)
- 登録者情報(Whois情報、登録日、有効期限など)
などを管理しているようです。
ポイントは、ドメイン名とそれを管理しているネームサーバーを紐づけた情報を管理してます。
こうすることで、DNSの仕組みが担保されるようです。
※参照:
レジストラ
有名なところではお名前.com
などです。ドメインを購入するユーザーはレジストラからドメインを購入(期限付き)します。
ドメインを購入するとは
- ドメインの期限付きの所有権を得る
- DNSのネームサーバーの編集権限を得る
所有権は言わずもがなですが、DNSのネームサーバーの編集権限(ネームサーバーとドメインを紐づける権限)を得ることによって、購入したドメインを管理する権限を持つことになります。
ネームサーバー
先ほども出てきましたが、ネームサーバーについて補足です。
ネームサーバーの管理者
トップレベルドメイン(TLD)のネームサーバー管理者は、Verisign・JPRSなどの機関です。
example.com
などを管理しているネームサーバーは様々です。
1: レジストラ
お名前.comで購入した場合、お名前.comが管理しているネームサーバーで購入済みドメインは管理されます。
2: クラウドプロバイダー(AWSなど)
AWS・Google Cloudなどもネームサーバーの管理機能を持ちます。
AWSではRoute53を通してAWSが管理するネームサーバーと連携します。この際に、ユーザーはネームサーバー自体を管理しているわけではありません。Route53で管理してるレコードをAWSが管理しているネームサーバーと連携します。
3: 自社運用
自社でネームサーバーを構築する場合(例: BINDやPowerDNSを使用)は、サーバーそのものを自分たちで管理することも可能のようです。
ホストゾーン(AWS用語)
DNSレコードを管理するサービス、コンテナです。基本的にはドメインとホストゾーンは1対1で管理し、ドメインに関連するDNSレコード全般をそのホストゾーンで管理します。
※ ホストゾーン自体はドメインを購入しなくても作ることが出来ます。 google.comのホストゾーンは作成可能です。ただし、ネームサーバーの編集権限は持っていないので、ドメインを乗っ取ることは出来ません。
ホストゾーンでは、様々なタイプのレコードを管理します。
レコードタイプ | 役割 | 例 |
---|---|---|
Aレコード | ドメイン名をIPv4アドレスに紐づける。 | example.com → 192.0.2.1 |
AAAAレコード | ドメイン名をIPv6アドレスに紐づける。 | example.com → 2001:db8::1 |
CNAMEレコード | ドメイン名を別のドメイン名に紐づける(エイリアス)。 | www.example.com → example.com |
MXレコード | メールサーバーの設定。ドメイン宛てのメールをどのサーバーで受信するかを指定する。 | example.com → mail.example.com |
TXTレコード | ドメインに関連する任意のテキスト情報を格納。SPFやDKIM認証、ドメイン所有権確認で使用される。 | example.com → "v=spf1 include:..." |
NSレコード | ドメインを管理するネームサーバーを指定。 | example.com → ns1.example.com |
SOAレコード | ゾーンの管理情報(管理者メール、シリアル番号、キャッシュの更新頻度など)を指定。通常1つだけ存在。 | 特定の設定情報を保持 |
PTRレコード | IPアドレスをドメイン名に逆引きする(リバースDNS)。 | 192.0.2.1 → example.com |
SRVレコード | 特定のサービス(例: SIP, LDAP)を提供するサーバーの情報を指定。 | _sip._tcp.example.com → sip1.com |
CAAレコード | ドメインに対して証明書を発行できる認証局(CA)を制限。 | example.com → issue "letsencrypt.org" |
※ ホストゾーンとはRoute53の用語のようです。ただ、他のサービスでも名称は違えど同概念のサービスがあるようです。
パブリックホストゾーン
インターネットに公開されるDNSレコードを管理します。
例: ドメイン名 example.com が 192.0.2.1 を指すAレコード。
プライベートホストゾーン
VPC(Virtual Private Cloud)内でのみ使用されるDNSレコードを管理します。
例: 内部システムやサービス向けのドメイン解決。
購入したドメインを別のサービスで管理する
レジストラ(お名前.comなど)から購入したドメインを、Route53で管理したいケースです。
今までの解説の繰り返しにはなってしまいますが、購入したドメインのネームサーバー設定をRoute 53のネームサーバーに変更することです。
レジストラ(お名前.comなど)の管理画面から、ドメインに紐づくネームサーバーをAWS管理でされているネームサーバーに切り替えます。具体的には、ホストゾーンのNSレコードと連携されているネームサーバーへ切り替える作業をします。
ネームサーバーを切り替えた後に、Aレコードとサービスを連携すれば、購入したドメインとAWSサービスとの連携が可能です。
Discussion