はじめに
今回は、『DNSサーバー』について解説していきます。
では、『DNSサーバー』とはどのようなものなのでしょう?
結論から言えば、『IPアドレスとドメインを結びつける』ためのサーバーです。
DNSサーバーの役割
『DNS(Domain Name System)サーバー』は、『ネームサーバー』とも呼ばれ、ネットワーク上の『IPアドレス(住所)』と『ドメイン(名前)』を紐付ける役割を担っているサーバーです。
そしてDNSサーバーはネットワークには必ず必要なサービスであり、もしこのDNSサーバーがないと、私たちは大変不便な思いをすることになります。
その理由は、IPアドレスを個別に覚えない限り、目的のWebサイトにアクセスすることができなくなってしまうからです。
アクセスできないイメージとして、『google』を例に出してみます。
『google』のIPアドレスは『172.217.25.227』になりますが、このIPが『goolge』のものだと分かる人はgoogle関係者くらいのものでしょう。
試しに、上記のIPアドレスをブラウザのURL欄にhttpなどは付けずそのまま入力してみてください。(別のサイトから入力した方が分かりやすいです)
IPアドレスが間違っていなければ、『google』のサイトが見られるはずです。
つまり、IPアドレスがあればそのWebサイトへのリクエストはできるということになりますが、ただしそのサイトのIPアドレスを覚えておかなければなりません。
しかしそれは現実的ではなく、仮にIPアドレスのブックマークをしたとしても、そのIPアドレスがどこのサイトかなどを自分でリストでも作っておかない限り、さっぱり分からないことになってしまいます。
そんな不便を回避するために『DNSサーバー』というものが存在しているのです。
『DNSサーバー』は誰もが大変お世話になっているサーバーだと言えます。
目的のWebサイトにたどり着くまでのDNSサービスの流れ
『DNSサーバー』と一括りに言ってもインターネット上には複数の種類があります。
それは、『ルートサーバー』という名の『DNSコンテンツサーバー』を頂点とし、その下に階層化された他の『DNSコンテンツサーバー』というものが存在しています。
では、この階層化される理由を見ていきましょう。
例えばクライアントが『www.sample.jp』というWebサイトにアクセスしたいとします。
そのアクセスは、OS標準に搭載されている『リゾルバ』というソフトウェアが、自動的にクライアントに一番近いネットワーク上の『DNSサーバー』にアクセスしてくれ、『www.sample.jpはどこか?』と問い合わせることから始まります。
近いネットワーク上のDNSサーバーは『フルサービスリゾルバ』、もしくは『DNSキャッシュサーバー』と呼びます。
ここで、この『フルサービスリゾルバ』がそのドメインを知っていれば(キャッシュがあれば)すぐにその目的のサイトへリクエストされますが、知らない場合別は『DNSコンテンツサーバー』に問い合わせることになります。
その問い合わせた先の、最初のDNSコンテンツサーバーが『ルートサーバー』と呼ばれるわけです。
問い合わせた内容は、『www.sample.jp』の最後にある『トップレベルドメイン』の『jp』がどこかというものです。
『ルートサーバー』は、『トップレベルドメイン』を管理している『DNSコンテンツサーバーの情報を管理』しているので、早速『jp』を管理している『DNSコンテンツサーバー』を『フルサービスリゾルバ』に教えます。
次に、フルサービスリゾルバは教えられた『jp』を管理しているDNSコンテンツサーバーに問い合わせます。
『jp』を管理するDNSコンテンツサーバーは、『sample.jp』を知っているDNSコンテンツサーバーをフルサービスリゾルバに教えます。
そして、『sample.jp』を知っているDNSコンテンツサーバーが、そのWebサイトの『IPアドレス』をフルサービスリゾルバに返し、フルサービスリゾルバはそのIPアドレスにアクセスできるようになります。
このようにフルサービスリゾルバは、トップレベルドメインから順番を辿りつつ最終的に第4レベルドメインまで管理しているDNSコンテンツサーバーまで問い合わせを繰り返していきます。
文章にするとほんと分かりづらいですが、何とか理解してくださいw
そして、こういったDNSサーバーに問い合わせてIPアドレスを返してもらうことを『名前解決』と呼びます。
これだけの処理を、たった数秒であっちこっち行ってやっていると思うとすごいと思いません?
実はPCの中にもIPアドレスを保存しておける『hosts』設定
これは余談でもありますが、ドメインと紐付けるIPアドレス(名前解決)は、何もDNSサーバーに問い合わせをしなくてもPCの中だけでも可能です。
これは、OSに備わっている『hosts』というファイルが可能にしてくれます。
『hostsファイル』は目的のIPアドレスとドメインを保存しておくことができるので、DNSサーバーで名前解決ができない場合に目的のサイトが見られるようになる方法です。
ファイルの保存場所は…
Windowsでは [C:Windows/System32/drivers/etc/hosts] にあります。
Macでは [Machintosh HD/Private/etc/hosts] にあります。
これらのファイルに [IP111.111.111.111 https://www.sample.com] というようにIPアドレスとドメインを記載しておきます。(複数可)
とはいえ、この『hosts』ファイルを使う意味ってなんでしょう?
実は『hosts』ファイルは開発者が必要とするファイルなのです。
その理由は、あるサービスを開発している段階のサーバーはテストサーバーとして使い、一般には非公開にすることが基本です。
非公開なので、そのサーバーのIPアドレスとドメインをDNSサーバーに知らせることはできません。
しかし、これでは開発側のクライアントはテストサーバーにアクセスできなくなってしまいます。(開発者が1人というわけではないですからね)
そこで、各クライアントのhostsファイルにそのテストサーバーのIPアドレスとドメインを保存してもらい、hosts経由でアクセスしてもらうわけです。
これにより、非公開のまま関係者のみのクライアントからのアクセスを可能にします。
このようなことを『hostsファイルで名前解決する』と呼んだりもします。
まとめ
DNSサーバーの役割とその種類などは何となく掴めたでしょうか?
DNSサーバーがあることで、インターネットがとても便利になってますね。
でも時々思うんですよね。
ルートからコンテンツサーバーまで世界中のDNSサーバーって最初どうやって作ったんだろうってw
[…] […]