はじめに
仕事で DNS の設定などを行う案件にアサインされたため、この機会に DNS について調べました。
間違っている点があるかもしれませんがご了承ください。 (指摘コメントお願いします。)
DNS とは
Domain Name System(ドメイン・ネーム・システム、DNS)とは、インターネットを使った階層的な
分散型データベースシステムである。
現在では主にインターネット上のホスト名や電子メールに使われるドメイン名と、
IPアドレスとの対応づけ(正引き、逆引き)を管理するために使用されている。
ブラウザのアドレスバーで http://www.gooogle.com
と打つと裏ではこの www.gooogle.com
というドメイン名はどこのホストなのか DNS に問い合わせて名前解決を行い、 IP アドレスを取得している。
TCP/IP の通信では IP アドレスがないと通信を行うことができないため、DNS は必須。
名前解決の方法
ドメイン名と IP アドレスの対応づけはその問い合わせ方向によって名前が異なる。
問い合わせ | 方向 |
---|---|
正引き | ドメイン名 ⇨ IP アドレス |
逆引き | IP アドレス ⇨ ドメイン名 |
例えば、 正引きで www.google.com
の IP アドレスを DNS サーバに問い合わせるとする。
まず最初にMac、Linux の場合、/etc/resolv.conf
に書かれている nameserver
に問い合わせを依頼する。
この nameserver というのは リゾルバ
と言い通常、このリゾルバが DNS クライアントとなって
自分の代わりに DNS サーバに問い合わせを行ってくれる。
次にリゾルバは、自身がもつルートゾーンを管理する権威サーバに問い合わせを行う。
ルートゾーンを管理する権威サーバは世界で
a.root-servers.net. 〜 m.root-servers.net.
の 13 台存在し、
そのどれかが自身が持つ .com ゾーンの情報(.com ゾーンを管理する権威サーバの IP アドレス)を教えてくれる。
権威 DNS サーバとは、ゾーンファイルというドメイン名と IP アドレスのマッピングの情報を持つ DNS サーバのこと。
権威 DNS サーバはゾーンファイルの情報を元に名前解決の問い合わせに対して応答する。
ちなみにここでは、IPv6 のエニーキャストと呼ばれる技術が使われている。
エニーキャストでは、エニーキャストアドレスというある特定のグループに対して割り当てられた
IP アドレスに問い合わせを行うと、一番近いホストが応答を返す。
.com ゾーンの情報を得たら、その権威サーバに google.com の情報を教えてもらい、
最終的に、www.google.com のゾーン情報を管理する権威サーバに www.google.com の IP アドレスを教えてもらって、リゾルバはクライアントに名前解決の結果を応答する。
補足
権威サーバに関連して
種類 | 説明 |
---|---|
コンテンツサーバ | ゾーン情報を持つサーバ 権威サーバとも呼ばれる |
キャッシングサーバ | クライアントからの名前解決の要求に対し、 応答結果を一定期間メモリにキャッシュするサーバ |
コンテンツオンリーサーバ | キャッシングは行わず、 コンテンツだけを返すサーバ |
キャッシングオンリーサーバ | キャッシングのみを行い、 コンテンツを持たないサーバ |
おまけ
今回、初めて図を https://www.draw.io/ で書いてみました。
色とかこだわらなければパワポよりも簡単に図がかけるのでおすすめです。
AWS とかのアイコンの素材も豊富です。