DNSの仕組みを図解で説明
〜名前解決の流れとDNSレコード〜

「DNS」知っていますか?名前解決の流れを説明できますか?

ドメイン名をIPアドレスに変換するもの、くらいの理解の人も多いと思います。

普段は意識しませんが、Webサイトを見る時もメールを送る時も、毎回DNSが使われています。

DNSの仕組みについて、図を使って説明していきます。

DNSとは?

DNS(Domain Name System)は、ドメイン名とIPアドレスを対応させる仕組みです。

コンピュータは、IPアドレスで通信相手を探します。

しかし、人が「203.0.113.10」のような数字を覚えるのは大変です。

そこで、「www.example.jp」のような名前を使えるようにしています。

DNSの全体図。パソコンがDNSサーバにIPアドレスを問い合わせ、答えのIPアドレスでWebサーバに接続する

電話帳で名前から電話番号を調べるようなものです。

ドメイン名からIPアドレスを調べることを、名前解決といいます。

ドメイン名は階層になっている

世界中のドメイン名を、1台のサーバで管理することはできません。

そこで、ドメイン名を階層に分けて、それぞれの担当のサーバが管理しています。

ドメイン名の階層の図。ルートの下にcom、jp、linkがあり、jpの下にexample.jp、その下にwww.example.jpがある

一番上がルートです。

「www.example.jp」は、右から順に上の階層になります。

上の階層のサーバは、1つ下の階層の担当サーバを知っています。

この仕組みのおかげで、上から順に聞いていけば、目的のサーバにたどり着くことができます。

2種類のDNSサーバ

DNSサーバには、役割の違う2種類があります。

  • キャッシュDNSサーバ: パソコンの代わりに問い合わせてくれるサーバ
  • 権威DNSサーバ: ドメインの情報を持っていて、答えを返すサーバ

パソコンが問い合わせるのは、キャッシュDNSサーバです。

次の図の中の、ルートDNS、jpのDNS、example.jpのDNSが権威DNSサーバです。

名前解決の流れ

「www.example.jp」のIPアドレスを調べる流れを見てみましょう。

名前解決の流れの図。キャッシュDNSサーバがルート、jp、example.jpのDNSに順に問い合わせて、パソコンに答えを返す

流れは次のようになります。

① パソコンがキャッシュDNSサーバに問い合わせる

② キャッシュDNSサーバがルートDNSに問い合わせる

③ ルートDNSが「jpのDNSに聞いて」と答える

④ jpのDNSに問い合わせる

⑤ jpのDNSが「example.jpのDNSに聞いて」と答える

⑥ example.jpのDNSに問い合わせる

⑦ example.jpのDNSがIPアドレスを答える

⑧ キャッシュDNSサーバがパソコンに答えを返す

パソコンは1回聞くだけで、後はキャッシュDNSサーバが順番に聞いて回ります。

キャッシュの役割

毎回この流れを行っていると、時間がかかります。

そこで、キャッシュDNSサーバは一度調べた結果をしばらく覚えておきます。

キャッシュの図。キャッシュDNSサーバがTTLの間は覚えている内容をすぐに答える

2回目からは、覚えている内容をすぐに返すことができます。

覚えておく時間は TTL(Time To Live)で決められています。

ただし、良いことばかりではありません。

サーバのIPアドレスを変更しても、TTLが切れるまでは古い情報が返ることがあります。

ドメインの設定を変更した時に、すぐに反映されないのはこのためです。

DNSレコードの種類

DNSサーバは、ドメインの情報をレコードという形で持っています。

主なものは次の5つです。

主なDNSレコードの表。A、AAAA、CNAME、MX、NSの意味と例をまとめている

Webサイトを見る時は、IPv4ならAレコード、IPv6ならAAAAレコードを使います。

メールを送る時は、MXレコードで受け取るサーバを調べます。

メールの仕組みは、メールの送信と受信の仕組みを図解で解説で説明しています。

DNSが使うプロトコル

DNSは、ポート番号 53番を使います。

通常の問い合わせは、速さを優先してUDPを使います。

応答が大きい時などはTCPを使います。

TCPとUDPの違いは、TCPとUDPの仕組みを図解で説明の記事で説明しています。

まとめ

今回はDNSの仕組みについて説明しました。

DNSは、ドメイン名とIPアドレスを対応させる仕組みで、階層の上から順に問い合わせて答えを見つけます。

基本情報技術者試験では、キャッシュDNSサーバと権威DNSサーバの役割の違いと、主なレコードの種類を押さえておきましょう。

パソコンのコマンドプロンプトで「nslookup ringonet.link」と入力すると、名前解決の結果を確認できます。一度試してみると理解が深まると思います。

通信できない時の確認の方法は、pingとtracerouteの仕組みを図解で説明の記事で説明しています。