概要
DNSもしくはドメインネームシステムは、ドメイン名とIPアドレスのマッピング情報を格納する様々なサーバー上にある分散データベースです。 DNSはドメイン名をIPアドレスに変換し、またその逆も行います。
DNSの幾つかの概念
ドメインネームスペース
以下の通り、ドメインスペース全体を含めるツリー構造です。
ドメイン
ドメインネームスペースの一つのブランチです。次のように「purdue.edu」ドメインの例です。
ドメイン名
ツリーのノードにはラベルがあります。ツリーの任意ノードのドメイン名はそのノードからルートノードまでのパスのラベル順序です。各ノードのラベルは「.」で区切られます。
リソースレコード
ドメイン名の情報がリソースレコードに格納されます。各リソースレコードは特定の対象情報を格納します。DNSサーバーはこれらのレコードを使用してDNSクエリに応答します。下記ようにいくつの一般的なリソースレコードです
トップレベルドメイン
DNSシステムのルートドメインの下にある最上位のドメインです。トップレベルドメインは二つの主なカテゴリに分けられます。
gTLDについて、次のような幾つの例です。
ccTLDについて、次のような幾つの例です。
下記がDNS階層のイメージです。
DelegationとAuthority
DNSシステムの主な目的の一つは管理の分散です。これはdelegation(権限委譲)を使用することによって実現しています。
ドメイン管理機関は「Authority」と呼ばれます。ルートドメインとgTLDの管理機関はICANNです。ccTLDのドメイン名は国によって管理されています。
ドメイン管理組織はそれをサブドメインに分割することができます。 各サブドメインは他の組織への管理を承認できます。 たとえば、「standford.edu」ドメインをStandard Universityへの管理に承認します。
ネームサーバーとゾーン
ネームサーバーはドメインに関するリソースレコードとそのサブドメインのネームサーバー情報を格納するサーバーです。 ネームサーバは普通にゾーンと呼ばれるドメインネームスペースの一部についての全て情報だけを含んでいます。
Note: ルートネームサーバーはルートドメインのネームサーバーです。
次のようにeduドメインを「berkeley.edu」ゾーン、「purdue.edu」ゾーンおよび「nwu.edu」ゾーンに分割しました。そして「edu」もゾーンです。
DNS Resolver
DNSシステムのクライアント側がDNS Resolverです。DNS ResolverはDNSクエリを初期し、送信します。
DNSクエリ
DNSクエリは三つの種類があります。
以下は「rutgers.edu」のようなドメイン名解決を実行する際の手順です。
DNSを使用する、幾つかのヒント
hostsファイルを使用し、DNSロカールを構成する
私は、顧客が二つのサーバー(旧サーバーと新サーバー)上に下記の例のように、同じウェブサイトの構成を設定しているというケースに遭いました。
それでは、サーバーBの example.comウェブサイトにアクセスするにはどうすればいいのでしょうか?
その時、以下の設定をLinux系又はMacの「/etc/hosts」パスのhostsファイルに追加します。
SERVER-B_IP_ADDRESS example.com
注意: Hostsファイルは、ドメイン名をIPアドレスに解決するためのリソースレコードとして使用されます。
ブラウザに「example.com」を入力すると、サーバーAではなくサーバーBの「example.com」ウェブサイトに遷移します。設定が正しく動いているかを確認するには、ブラウザのDevelop Toolsを開く、リクエストのヘッダ情報を確認すると、次のようになります。
Request URL: http://example.com/
Request Method: GET
Status Code: 200 OK
Remote Address: SERVER_ADDRESS
Referrer Policy: no-referrer-when-downgrade
ドメイン名を構成する
ウェッブサイトが機能するためには、ドメイン名をそのWebサイトに紐付ける必要があります。 これを実行するには二つの方法があります。
設定が完了したら、次のツールを使用してドメイン名の設定情報を確認できます。
https://ipinfo.info/html/ip_checker.php/
CNAMEレコードを使用する
同じサーバー上に二つのウェブサイト「example.com」と「example.jp」があるとします。 その後、二つのドメイン名を同じIPアドレスに設定できますが、サーバーを移行するなどIPが変更する場合、上記の二つのドメイン名を両方に新IPに再設定する必要があります。
しかし、下記の例のようにドメイン名「example.jp」をドメイン名「example.com」に指すなどのCNAMEレコードを使用する場合、その時example.comドメイン名のみIPの変更を設定する必要があります。
NAME TYPE VALUE
---------------------------------------
example.vn. CNAME example.com.
example.com. A 192.0.2.23
参考資料
http://web.deu.edu.tr/doc/oreily/networking/dnsbind
https://www.thegeekstuff.com/2013/12/dns-basics