ブラウザを使ってWebサイトを閲覧するときは、URLを入力する必要があります。
しかし、本当はURLだけでは直接インターネット上のWebサイトに接続することはできません。
必ずIPアドレスが必要となります。
この課題を解決する仕組みがDNSです。
今回は、一見複雑でややこしいと思われていることも多い、DNSとDNSサーバーの仕組みについてわかりやすく解説します。
目次
DNSとは
DNSとは、どういったものでどんな役割を果たしているのでしょうか。
まずはDNSに関連するキーワードであるドメイン名とIPアドレスや、DNSの概要について確認しておきましょう。
ドメイン名とIPアドレス
DNSを説明する上で避けて通ることのできないものが2つあります。
それは、「ドメイン名」と「IPアドレス」です。
ドメイン名
aaa.bbb.comのような文字列で表されるもの。URLもドメイン名になります。
IPアドレス
192.168.0.1のような数字で表されるもの。
実は、ネットワークに接続される機器には、(例外もありますが)全てこのIPアドレスが割り当てられています。
Webサイトが設置されているコンピュータにもIPアドレスが割り当てられています。
そして、ドメイン名では接続先のコンピュータを特定することは出来ません。
DNSとは
ネットワークに接続される機器には、IPアドレスが割り当てられていますが、実際にはブラウザでIPアドレスを入力することはほとんどなく、ドメイン名を入力しています。
ですが、ドメイン名では接続できないのではなかったのでしょうか。
ここで、大きな役割を果たしているのが「DNS」です。
DNSは、「IPアドレスとドメイン名の変換(名前解決)」を行なっています。
これにより、ブラウザにドメイン名を入力するだけで相手先のWebサイトに接続できるようになっているのです。
DNSがなかったらどうなる?
では、もしDNSがなかったらどうなるのでしょうか?
以下のようなケースが考えられます。
しかし、単なる数字の羅列であるIPアドレスを覚えておくことは非常に困難であり、現実的ではありません。
こうした点を考えても、DNSはもはや不可欠な存在であると言えます。
DNSの名前解決のしくみ
「ドメイン名とIPアドレスの変換を行う」というDNSの役割は、インターネットでは欠かせないものです。
では、この名前解決はどういった仕組みになっているのでしょうか。
名前解決の流れ
DNSを使って名前解決を行う場合は、以下のような流れで行います。
①同じドメイン内での解決
端末「aa.sub.domain.com」から「bb.sub.dommain.com」の名前解決を行う場合、同じドメインにあるDNSサーバーのみで名前解決を行うことができます。
②上位ドメインに問い合わせる
今度は、端末「aa.sub.domain.com」から上位ドメインの「bb.dommain.com」の名前解決を行う場合です。
こういった場合、最初の「sub.domain.com」のDNSサーバーは、上位ドメイン「domain.com」のDNSサーバーに問い合わせを転送します。
そして回答を「domain.com」のDNSサーバーから受け取ります。
③ルートドメインに問い合わせる
①②のいずれでも解決できない場合、たとえば「yahoo.co.jp」に問い合わせるといったケースでは、世界中に13クラスタあるルートサーバーに問い合わせます。
ルートサーバーは、DNSサーバーの最も上位に位置するものです。
名前解決の流れは理解できましたでしょうか?
正引きと逆引き
DNSとは、「IPアドレスとドメイン名を変換」するものと説明をしてきましたが、DNSには大きく分けて2つの種類があります。
正引き
ドメイン名→IPアドレスに変換
逆引き
IPアドレス→ドメイン名に変換
この2つを組み合わせることで、ドメイン名とIPアドレスの相互変換を実現しています。
DNSレコードとは
DNSサーバーの概要と名前解決の仕組みがわかったところで、実際にDNSサーバーを構成している要素について見ていきましょう。
DNSサーバーの構成要素
DNSサーバーは、大きく分けて以下の2つの構成から成り立っています。
ゾーン
正引き、逆引きのゾーン
レコード
ゾーン内で、各端末のドメイン名とIPアドレスの組み合わせ情報を持っている。
DNSレコードの種類とは
ゾーン内の各レコードには役割に応じていくつかの種類があります。
レコード名 | 役割 | 備考 |
---|---|---|
Aレコード | ホスト名に対応するIPアドレスを指定 | |
PTRレコード | IPアドレスに対応するホスト名を指定 | |
AAAAレコード | Aレコードと役割は同じだが、IPv6アドレスを指定 | |
SOAレコード | ドメインの管理情報を指定 | |
NSレコード | ゾーンのネームサーバーを指定 | |
MXレコード | ドメインのメールサーバーを指定 | メールサーバがない場合は不要 |
CNAMEレコード | ドメインやホスト名の別名を指定 | |
TXTレコード | テキスト情報を指定 | |
SPFレコード | メールがなりすましでないことを証明するためのレコード。 | メールサーバがない場合は不要 |
SRVレコード | Active Directoryで使用 | Active Directoryを使わない場合は不要 |
まとめ
かつて、DNSがなかった頃は、通信を行う場合はIP端末を直接打ち込むか、各端末にIPアドレスとホスト名の紐付きが書かれたファイルを置く(hostsファイル)必要がありました。
しかし、「IPアドレスとドメイン名を変換する」DNSの仕組みは、こういった問題を解消する非常に画期的なものでした。
DNSは、一見とても複雑な仕組みに思えますが、「基本は自分のドメインは自分で解決する」「出来ない場合は上位のDNSサーバーに問い合わせる」といった2つの考えに基づいた比較的シンプルなものです。
IPアドレスとドメインを名前解決するDNSは、IT分野では欠かせない技術です。
しっかりと理解しておくようにしましょう。