独自ドメインのDNSサーバーの設定
概要
先日,独自ドメインをFreenomで取得した。取得しただけでは,独自ドメインを運用できず,DNSサーバーの設定が必要になる。
この独自ドメインを使うためのDNSサーバーの設定を今まできちんと理解していなかった。そこで,独自ドメインを使うためのDNSサーバーの設定について仕組みを整理する。
DNSの仕組み
レンタルサーバーを運営しているカゴヤ社が解説している「【図解】DNSサーバーとは?設定・変更と確認方法 | カゴヤのサーバー研究室」が分かりやすかった。
こちらを参考にまずはDNSの仕組みを整理する。
DNS (Domain Name System) はIPアドレスとドメイン名を対応付けるシステムのことだ。そして,DNSを行うサーバーをDNSサーバーと呼ぶ。
DNSサーバーはドメインのレベル (.で区切りのセクション) ごとに,管轄サーバーが異なっている。そこで,ルートDNSサーバーから順番に問い合わせを行い,最終的に要請されたドメインを割り当てているDNSサーバーを突き止め,IPアドレスを返す。
WebブラウザーからURLを入力してからの挙動を追いかけると役割が理解しやすい。
1. ユーザーがWebブラウザーでURL (example.com) にアクセス
2. ルートDNSサーバーにIPアドレスの問い合わせが発生
3. ルートDNSサーバーから.comのDNSサーバーにexample.comのIPアドレスの問い合わせ
4. .comのDNSサーバーからexample.comのDNSサーバーにIPアドレスを問い合わせ
5. example.comのDNSサーバーがWebブラウザーにIPアドレスを回答
ルートDNSサーバーから最終的にドメインが管理しているDNSサーバーに問い合わせが入ってIPアドレスが解決される。
このような流れで処理される。
DNSサーバーの設定
基本的な流れ
実際にサーバーで設定する場合を考える。最大で3種類のサーバーが登場する。
1. ドメイン業者のDNSサーバー
2. レンタルサーバー (Webサーバー・DNSサーバー)
3. 外部のDNSサーバー
3番目の外部DNSサーバーは登場しないことが多いが,ケースとしてありえるので登場させている。
DNSサーバーの設定は2点を行う。
- 使用するDNSサーバーの決定 (「ドメイン業者のDNS」の「ネームサーバー」欄)
- ドメインとIPアドレスの割り当て (使用するDNSサーバーのAレコード)
ドメインを管轄しているのは「ドメイン業者のDNSサーバー」である。そのため,「ドメイン業者のDNSサーバー」には必ず何らかの設定を行う。
まず,「ドメイン業者のDNSサーバー」の「ネームサーバー」で (ドメインとIPアドレスの割り当てに) 使用するDNSサーバーを指定する (「ネームサーバー」はDNSサーバーと同じ意味)。デフォルトだと,自分のDNSサーバー指定されていることが多い。
そして,使用するDNSサーバーでドメイン名とWebサーバーのIPアドレスの割り当てる。これは,DNSのAレコード (AはAddressの意味) と呼ばれる設定で行う。
設定の流れ自体は以上となる。
単純なケース
実際にドメインを取得して,レンタルサーバーで独自ドメインを使うという一般的で単純なケースを考える。
この場合,使用するDNSサーバー=「ドメイン業者のDNSサーバー」である。そのため,「ドメイン業者のDNSサーバー」の「ネームサーバー」には自分自身のDNSサーバー名を指定する (多くの場合デフォルト)。
そして,「ドメイン業者のDNSサーバー」のAレコードでドメイン名と「レンタルサーバー」のWebサーバーのIPアドレスを指定することになる。
複雑なケース
使用するDNSサーバーに「ドメイン業者のDNSサーバー」以外を指定するぼ,設定が若干複雑になる。
例えば,何らかの理由で「ドメイン業者のDNSサーバー」ではなく,「レンタルサーバー」のDNSサーバーや「外部のDNSサーバー」で,Aレコードの設定 (ドメイン名とIPアドレスの割り当て) を行う場合を考える。
この場合,「ドメイン業者のDNSサーバー」の「ネームサーバー」に「レンタルサーバー」のDNSサーバーか「外部のDNSサーバー」のサーバー名を指定する。そして,指定したDNSサーバーでAレコードでドメイン名と「レンタルサーバー」のWebサーバーのIPアドレスを指定することになる。
通常ではこのような複雑なケースには遭遇しないだろう。ドメインの取得・維持管理費の都合で,複数のドメイン業者を利用している際に,DNSの設定を一箇所にまとめるために,このような組み合わせをとる可能性がある。
具体例
実際に [senooken.jp] の独自ドメインの設定例を説明する。
senooken.jpは以下の構成の単純なケースで設定している。
- ドメイン業者: スタードメイン
- レンタルサーバー: CORESERVER
CORESERVERのIPアドレスは「契約情報 | CORESERVER Control Panel」から確認でき,以下のように [202.172.26.10] である。
続いて,スタードメインを記す。
まずネームサーバーは以下のようにスタードメイン自身を指す [nsX.star-domain.jp] (X=1-3) となっている。
続いて,DNSのレコードの設定は以下のとおりだ。
テキストでは以下の通りとなる。
senooken.jp A 0 202.172.26.10
*.senooken.jp A 0 202.172.26.10
ここで,スタードメインのドメイン [senooken.jp] とCORESERVERのIPアドレス [202.172.26.10] を対応付けている。
なお,ドメイン名を [*.senooken.jp] のようにワイルドカードを使って指定することで,サブドメイン (book.senooken.jpなど) まとめて指定できる。サブドメインの追加のたびに,DNSレコードを編集しなくていいので便利だ。
業者によって画面構成は異なるかもしれないが,やることは同じなので,流れさえわかっていれば業者が変わっても対応できるだろう。
CNAMEレコードを使った設定
基本的には,DNSのAレコードを使った独自ドメインとIPアドレスの対応付けで設定する。
ただし,AWSのようなクラウドサービスでは固定IPアドレスが存在せず,クラウドサービス側で用意されたドメインだけが存在するケースがある。例えば,AWS Elastic Beanstalkでの独自ドメインの設定が該当する。
この場合は,IPアドレスがわからないため,代わりにCNAMEレコードを使ってドメイン同士を対応付ける。
やり方はAレコードとほぼ同じで,タイプをAではなくCNAMEにして,IPアドレスを入力していた部分にドメインを記入するだけだ。
結論
独自ドメインの設定のためのDNSの設定について整理した。
2018年に初めて独自ドメインでこのサイトの運営を始めたことはよくわかっていないまま,Webサイトの情報を頼りに設定を施した。
改めて仕組みを理解したことで,自信をもって設定できるようになった。AWSなどでも自信をもって設定していきたい。