「DNS」って言葉はよく聞きますよね。インターネットを使う上で、必ず必要になってくる仕組みですが、普通はDNSを意識して使ってませんよね。
企業において、「社内の端末からインターネットに出れない」、「社内システムへアクセスできない」、なんて時にDNSの設定云々が出てきます。そこで、今回はこのDNSをまとめてみました。
DNSの話の中で、たまに出てくる「hostsファイル」に関しても解説します!
DNSとは?
DNS(ディーエヌエス)は「Domain Name System」のことで、直訳すると「ドメイン名のシステム」ですが、すっごく簡単に言うと「URL(FQDN)のIPアドレスを教えてくれるシステム」です。
ブラウザはアドレス欄に入力されたURL(FQDN)からIPアドレスを導き出し、IPアドレスを保持するサーバへアクセスします。
この時のIPアドレスを知るためのシステム(サーバ)なんです!(以下図を参照)
それだけ聞くと「ふーん、URLとIPアドレスの変換テーブルを持ってるだけじゃん」ってなりますが、実はとっても奥の深い凄い仕組みなんです!!
どう凄いのかは、ちょっと置いておいて、そもそも何故DNSが必要になったのか?その背景を調べてみると、そこに「hostsファイル」が出てくるのです。
hostsファイルとは?
IPアドレスとホスト名のマッピングを行う最も原始的な仕組みとして「hostsファイル」というものがあります。これはインターネットにアクセスするPC端末上に配置し、Webブラウザが名前解決を行う際に先ず参照するファイルとなります。PCはhostsファイルに記載されたアドレス変換情報を参考にサーバへアクセスします。
このhostsファイル、OSによって配置場所が違いますが、Windows10やMacの場合は以下の配置場所になります。
◎Windows10:
C:\Windows\System32\drivers\etc\hosts
◎Mac:
/private/etc/hosts
hostsファイルの書き方
hostsファイルのマッピングの書き方は簡単です。
IPアドレスを最初に記載して、その後にFQDNを記載するだけです。例えば、以下のように記載します。
100.200.0.1 www.itmanabi.com
192.168.1.10 server1.itmanabi.com
このhostsファイル、常に単純な対照表(マッピング)で運用も設定も楽なのでテストやホストに繋がらない時の切り分けとしてはよく利用するのですが、登録されるホスト名が増えれば増えるほど各端末にマッピング情報を追加していかねばならないので逆に非効率的な仕組みになってしまいます...
そこで、前述のDNSが必要になってきた訳です。
改めてDNSとは?
DNSとはhostsファイルでは管理できない、無数のドメイン名やホスト名とIPアドレスの対応関係(DNSレコード)を管理し、相互解決するためのシステムです。(仕組み)。主にFQDNを元に、ホストの IP アドレスを教えてもらうためのシステムです。
但し、たった1つのDNSサーバだけで全世界に存在する数百万以上のホスト情報を処理するのでは負荷に耐えられません。
複数サーバで負荷分散するにしても完全に同じデータを持ち合うのでは、非常に非効率的であったため、DNSの根本ともいえる「ドメイン・ツリー」の概念が出てきました。
ドメイン・ツリーとは何か?の前にドメイン名の構造を覚えておきましょう。
ドメイン名の構造
ドメイン名の構造はシンプルですが、それぞれのレベルで意味が違います。以下図を参照してください。
ドメイン・ツリー
ドメインの頂点にルートドメインが存在し、ルートドメイン配下にトップレベルドメインがあり、その配下にセカンドレベルドメインとなる階層構造のことです。
これにより、ドメインレベルごとに問合せ先のDNSサーバを分けることで負荷を分散させ、全世界で正しいドメインの管理がされている素晴らしい仕組みなのですね。
実際はこのドメインツリーの概念を元に、複数のDNSサーバに問合せを行い、名前を解決していますね。
まとめ
今回はDNSとhostsファイルの関係に関して解説しました。
DNSのドメインツリーでの管理、よくできてますよね。
基本的に名前解決はDNSを使わなければ運用できませんが、テスト時や障害切り分け時、個別要件に対応するためにはhostsファイルが役に立ちますので、いつでも使えるようにしておく必要がありますね。
ドメインツリーを使って複数のDNSに問合せをして、名前解決をするDNSの仕組み関しては別途解説したいと思います。
以上です!
参考URL)