DNSとは
ドメイン名を使うためには、ドメイン名とIPアドレスの対応表を用意しクライアントからの問い合わせに対してその結果を返す「DNSサーバー」の構築が必要です。
ドメイン名を検索するためのDNSサーバー
ドメイン名の使い道は主に2つあります。
1つはサーバーなどの名称として使う使い方です。例えばWebサーバーに「www.it-stepup.com」と名付けてIPアドレスとの対応を設定しておけば「https://it-stepup.com/」というURLでアクセスできるようになります。
もう一つの使い方はメールアドレスです。例えば「it-stepup.com」というドメイン名を所有しているときそのドメイン名に対してメールサーバーを設定すれば「ユーザー名@it-stepup.com」というメールアドレスでメールを受信できるようになります。
ホスト名
サーバなどの名称としてドメイン名を使う場合、そのドメイン名は「ホスト名(host name)」
例えば「it-stetup.com」というドメイン名を所有しているとします。
このとき「www.it-stepup.com」という名前をサーバにつけるとき「www」の部分をホスト名そしてこの名称全体である「www.it-stepup.com」のことを「完全装飾ドメイン名(FQDN:Fully Qualified Domain Name)と呼びます。
DNSサーバによるIPアドレスの変換
ホスト名(完全装飾ドメイン名)を使って、サーバーにアクセスするには、それに対するIPアドレスを返すように構成したDNSサーバーが必要です。
例えば、WebサーバーのIPアドレスが「20.30.40.50」だとしたとき「http://www.it-stepup.com」というURLを使えるようにするには、「www.it-stepup⇨20.30.40.50」という対応を設定したDNSサーバをインターネットのどこかに設置しておく必要があります。
MEMO
DNSサーバーというのは、「DNSサーバーとして動く機能をインストールしたサーバー」です。具体的にはbind(named)などのソフトウェアをインストールしたサーバーです。
DNSサーバーでドメイン名が辿られる仕組み
ではDNSサーバーをインターネットのどこかに配置すればドメイン名が使えるようになるかというとそれだけでは不十分です。
クライアントがドメイン名を検索したときに私たちが構築したDNSサーバーも参照してくれるようにインターネット全体を構成しなければなりません。
それぞれのドメイン名を担当するDNSサーバーに回答を依頼する
インターネットには、全13ヶ所に「中枢となるDNSサーバー」があります。このDNSサーバーのことを「ルートDNSサーバー」と言います。
13ヶ所にあるのは耐障害性とレスポンスを高めるためです。どのルートDNSサーバにアクセスしても同じ結果が得られます。
ルートDNSサーバーには「それぞれのTLDを担当するDNSサーバーがどれなのか」という情報が保存されています。
TLDについてはこちら記事の中で紹介しています。⇨ドメインとは
「それぞれのTLDを担当するDNSサーバー」には「そのTLD配下の各ドメイン名のDNSサーバがどれなのか」という情報が保存されています。
このように階層的に構成されることでクライアントは「ルートDNSサーバ」にドメイン名を問い合わせればそこから順番に辿って最終的な結果が得られるようになっています。
言い換えると先程の図のようにDNSサーバーを構築したならばその構築したDNSサーバーのIPアドレスをTLDを担当するDNSサーバーに登録してもらえるように申請する必要があります。そうしないと、構築したDNSサーバーに問い合わせが来ません。
DNSの結果はキャッシュされる
クライアントが「http://www.it-stepup.com」のようにドメイン名でアクセスする場合クライアントは直接ルートDNSサーバーに問い合わせるわけではありません。
多くの場合、自分が接続しているプロパイダのDNSサーバなど「一番近いDNSサーバー」に問い合わせをします。
プロパイダなどはDNSサーバーを運用していて、問い合わせた結果をキャッシュしています。
もしキャッシュにあればルートDNSに問い合わせることなくそのデータを返します。
しかし、もしキャッシュになければルートDNSに問い合わせてその結果を返します。
Webサーバーをドメイン名で運用するために必要なこと
ドメイン名は少し複雑ですが動作の組み込みからいうと、Webサーバーをドメイン名で運用したい時に必要な手順は次のようになります。
1.ドメイン名の取得
利用したいドメイン名を、TLDを管理している企業・団体に申請して取得します
2.DNSサーバー構築
DNSサーバーを構築します。構築したDNSサーバーには「ホスト名とIPアドレスとの対応表」を記述しておきます。
ドメイン事業者によっては、DNSサーバーがすでに用意されていてそこにホスト名とIPアドレスの対応を記述して保存するだけで良いこともあります。
3.ルートDNSサーバからたどれるようにする
2のDNSサーバーをルートDNSサーバーからたどれるようにします。TLDを管理する団体に構築したDNSサーバーのIPアドレスを報告するとルートDNSサーバーからたどれるように構成してくれます。
まとめ
いかがでしたでしょうか、今回は「DNSサーバー」について説明しました、ネットワークの中で少し複雑な内容になりますが頑張りましょう。
よく「名前解決」とか「キャッシュが・・・」とか言われるのはこのDNSサーバーが関係しています。
あまり深く考えず使用しているWebサイトはこうしてつながっているんです。
Webのプログラミング開発には必要な知識なのでWeb系プログラマーを覚えたいと思っている方には是非押さえて頂きたい内容でした。
ではでは