【図解】初心者にも分かるDNSの仕組み 〜GoogleのIPアドレスの確認方法、等〜

スポンサーリンク
スポンサーリンク

DNSとは

DNSとは、文字列をIPアドレスに変換(およびその逆変換)をするクライアント/サーバシステムです。

このDNSのメリットは以下の2つです。

  1. あるサーバへのアクセスをする際に、『IPアドレス』という、人間には覚えにくい番号の順列を覚える必要が無くなり、人間が覚えやすい『ドメインネーム』という意味の分かり易い文字列さえ覚えれば良くなる。
  2. 何らかの理由(例えばサーバを更改するなど)でサーバのIPアドレスを変更する場合であっても、DNSサーバの情報1つを変更すれば、全てのクライアントにその情報が伝搬され、今までと違うIPアドレスのサーバに対し、今までと同じドメインネームでアクセスできる

スポンサーリンク

逆引き(IPアドレスから名前を調べる機能)は、例えば tracert 等ではデフォルトで応答したIPアドレスを逆引きしてホスト名を表示する設定になっています。-dオプションを付けると逆引き変換しないため、応答も早くなります。以下に-dを付けない場合と付けた場合の比較を示します。

逆引きのレコードが無いIPについては『4th octet,3rd octet,2nd octet,1st octet.in-addr.arpa』という表示になります。逆引きレコード(PTRレコード)があるものはその結果が表示されます。例えば118.238.227.1の逆引きは “fs76eee301.tcga201.ap.nuro.jp” です。

ドメインネームとは

インターネット上では、各ホストはIPアドレスで表現されますが、数字の羅列というのは人間にとっては意味を見出しにくく、 覚えにくいものです。そこで、IPアドレスを人間に分かり易い文字列に変換する仕組みを作りました。それがDNSであり、人間に分かり易い文字列というのがドメインネーム(FQDNとも言います)です。

ドメインネームはIPアドレスと同様、世界で一意である必要があるため、ICANNという組織が管理しています。

例えば、www.google.co.jpというドメインネームがありますが、jpというのはJPNICが管理しており、co.jpは日本の企業に対して割り当て られるドメインです(coは商業を意味するcommercialの略。.comドメインも、JPNICの管理外ですが、commercialを意味します)。

その他にも、networkを意味するne.jpドメイン、organizationを意味するor.jp、academic(学校法人等)を意味するac.jpドメインなどがあります。

取得する際には申請が必要ですが、申請したからといって必ず割り当てられるでもありませんし、学校法人だから必ずac.jpを取らなければならない、というわけではありません。例えば早稲田大学はac.jpではなく、waseda.jpドメインを取得しています。

スポンサーリンク

DNSの機能

DNSサーバには、登録されている情報には『レコード』という識別があります。レコードはDNSの機能によって分類されています。DNSでよく使われるレコード(機能)として、以下のものがあります。

  • Aレコード=インターネット上のホームページのURLからIPアドレスを調べる。(正引き)
  • PTRレコード=IPアドレスからドメインネームを調べる。(逆引き)
  • MXレコード=メールアドレスの宛先から、宛先のメールサーバのIPアドレスを調べる。
  • NSレコード=上位層のDNSサーバから、下位層のDNSサーバを調べる。

Aレコードの例

一般的によく使われるレコードです。ブラウザでURLを入力した場合はAレコードの問い合わせが行われます。

MXレコードの例

スポンサーリンク

上記の機能を、以下手順でWindowsのコマンドプロンプトからDNSを利用して確認してみましょう。

  • Windowsキー + R
  • cmd [Enter]

まず、Google の IPアドレスを調べてみましょう。コマンドプロンプトで以下のように打ちます。

nslookup www.google.co.jp

2つ表示されていますが、1つ目のIPアドレス「2404:6800:400a:806::2003」というのはIPv6のアドレスです。

そして2つ目のIPアドレス「216.58.196.227」がIPv4のアドレスです。

次に、www.yahoo.co.jp のIPアドレスを調べてみましょう

nslookup www.yahoo.co.jp

スポンサーリンク

4つのアドレスが出てきましたが、これはサーバを負荷分散させているためです。いずれか1つをブラウザのURL欄に入力してみましょう。Yahoo!JAPANのサイトが見れるはずです。

このように、ドメインネーム(FQDN)からIPアドレスに変換することを「正引き」と言います。

その逆で、IPアドレスからドメインネームに変換することを「逆引き」と言います。

同じくコマンドプロンプトで表示された4つのIPアドレスをnslookup で逆引きしてみます。

それぞれに対してサーバのホスト名が出てきました。

最後に、「~~@yahoo.co.jp」宛にメールを送る際のメールサーバのIPアドレスを調べましょう。メールにおいては基本的に@以降のドメインネームによってメールサーバが決まります。

同じくコマンドプロンプトで「nslookup -type=mx yahoo.co.jp」と打ちます。

スポンサーリンク

MX preferenceというのはメールサーバを利用する際の優先度です(MX preference値が小さいほど優先度が高いです) 。今回は全て10なのでどれか1つを選べばよいです。ここではmx2に送ることとしますが、mx2はホスト名なので、IPアドレスへ名前解決します。

例えば、abcd@yahoo.co.jp というメールアドレスにメールを送信すると、相手方のメールサーバに届き、abcdというアカウントがあれば、そのアカウントのメールボックスにメールが届くわけです。ただし、そのアカウントがない場合は、メールは破棄され、送信元にはエラーメールが通知されます。

NSレコードの例

NSレコードの例については、以下ページを参照して下さい。

【図解】DNSクエリの仕組み、通信フロー 〜コンテンツ、キャッシュ、フルリゾルバ、フォワーダ、ルートヒント~
【図解】DNSクエリの仕組み、通信フロー 〜コンテンツ、キャッシュ、フルリゾルバ、フォワーダ、ルートヒント~
一般的なDNSクエリ/レスポンスの通信フロー ホームネットワークの構成例 ホ...
スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク

Comment

  1. 通りすがり より:

    インターネットの仕組みを知りたくて
    DNSについて調べていました。

    他のサイトは文字だけは多いんだけど
    内容が良くかからなかったり、
    人に伝えるのが上手くない文章だったり
    そもそも書き手が理解出来ていない、誤解しているのだろうなぁ
    と思える内容ばかりで苦痛だったのですが

    こちらは核心を突いた内容と
    分かりやすくて適量な図解と文章のおかけで
    物凄く分かりやすかったです。

    管理人さんはきっと良いエンジニアさんなんだと思います。

    • nesuke より:

      コメントありがとうございます。このような言葉を頂けるのが本当に嬉しいですし励みになります。
      正直、図を作るのが大変だったりするので、文章だけで説明してしまおうかな、と考えてしまうこともあるのですが、私が目指すところ『本質を分かり易く解説する技術サイト』を実現すべく、襟を正し、これからも頑張りたいと思います。