おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

ドメイン申請からWebサーバまでのアクセスについて勉強してみた。

はじめに

ドメイン申請からWebサーバまでのアクセスについて勉強してみました。 Webサイトにアクセスする際に、最終的にはそのサイトのIPアドレスが分かれば良いのですが、その過程までにどのようなことが行われているのか、そしてどのような作業をあらかじめやる必要があるのかをまとめてみました。

DNSの歴史とHOSTSファイル

かつてのインターネット(ARPAnet)では、名前解決にHOSTSファイルというテキストファイルを利用していました。 そのファイルに検索をかけて該当するIPアドレスに接続される、というのが昔のDNSだったとのことです。

xtech.nikkei.com

しかしながらPCが増え、管理が厳しくなった(同じドメインが登録されてしまう)のと、それに伴うネットワークに上記の手法は耐えきれなくなり破綻しました。 その結果、同じドメインが登録されてしまうのを防ぐためにドメインは申請をすることで取得されるものとなりました(ICANNという組織が管理)。

ドメイン申請の流れ

以下の図がとても分かりやすかったので引用させていただきます。

LIVRA 『世界のドメインを管理しているのは誰か?』より引用

ドメイン全体の管理をICANNが行い、各トップレベルドメイン(jpやbiz、com等々)をその下のJPRSVeriSignなどの「レジストリ」と呼ばれる組織/団体が管理しています。 その下にレジストラ/代理店等があります。 レジストラと代理店の違いについては、直接実際にドメインを登録できるか、できないかという内容になります。 レジストラも数がたくさんあるというわけではないので、代理店というものが存在するということですね。

代理店をいくつか経由する場合は時間もかかるため、実際に仕事でそのような経由でドメイン申請する際は時間に余裕をもって作業を行うことが必要になります。

ドメイン申請された後

上記の流れでドメインが申請された後、対象のドメインWHOISサーバに登録されます。 WHOISというサイトで対象のドメインについて調べることができます。

whois.jprs.jp

tech-unlimited.com

しかしながら上記のWHOISでは対象のドメイン情報のIPアドレスを確認することはできませんでした。 つまりドメイン申請とIPアドレスの設定はまた別物ということになります。

IPアドレスDNSサーバに登録する

結論から言いますと、IPアドレスDNSサーバ(ネームサーバ)というものに登録します。 そしてどのDNSサーバにIPアドレスを登録したのか?という情報は実は上記で書いたWHOISサーバにあるのです。 WHOISの検索を行うとネームサーバの名前が見つかるかと思いますが、これまた混乱することに、複数あります。

これはどういうことかというと、まずルートドメイン、次にトップレベルドメイン(jp等), その次のドメイン, という感じでそれぞれのIPアドレスを知っているDNSサーバをたどって最終的に対象サイトのDNSサーバへ辿り着き、そのIPアドレスのもとへ接続されるというイメージです。

文章だけではちょっと分かりにくいので以下に分かりやすかった図を引用させていただきます。 意外と知らない?ITトレンド用語 DNSサーバより

細かく言うとルートドメインに通信をかける前にキャッシュDNSサーバというものへアクセスする

DNSサーバの仕組みは上記のような流れですが、全部の通信がルートドメインを扱うDNSサーバ、トップレベルドメインを扱うDNSサーバ等にかかるとネットワークの負荷がかなりかかってしまいます。 そのため、まずはキャッシュDNSサーバという世界中にあるサーバへアクセスし、そのサーバがルートドメインを扱うDNSサーバへアクセスします。 そして一定時間ドメイン情報をキャッシュするので、短期間にサイトにアクセスした場合はキャッシュDNSサーバが対象サイトのIPアドレスを返却してくれるという仕組みになっています。

JPRS用語辞典 『フルサービスリゾルバー(キャッシュDNSサーバー)』より

おわりに

DNSはかなり難しい感じもしますが、一つ一つ理解していこうと思います。 以下は本記事の続きです。 AレコードやCNAMEレコードなど、レコードについて勉強した記事を書きました!

oooomincrypto.hatenadiary.jp