DNSとは
DNSは、ドメインネームシステムの略で、ドメインとIPアドレスを紐づける仕組みのことです。技術者の間では[名前解決]とも言います。
普段意識することがありませんが、元々WEBサイトというのはIPアドレスというユニークな値で紐付けられます。IDEA HACKのIPアドレスを仮に「298.399.137.76」とします。
各サイトのIPアドレスは簡単に調べられますよ。
そのため、ドメインという仕組みがない場合はIDEA HACKにアクセスしようとするにはブラウザバーに直接[298.399.137.76]を打ち込む必要がありました。
実際には、IDEA HACKはIPアドレスを直打ちしてもサイトが表示されない様にしています。
これはあまりにも不便です。数字・アルファベットの無作為な羅列を覚えることは難しく、これでは各サイトにアクセスするIPアドレスをまとめた専用のメモ帳が必要になります。
そこで、IPアドレスに名前をつけて私たちがサイトへの接続情報を覚えやすくしようということで始まったのがDNSになります。
これにより、ブラウザバーにIDEA HACKにアクセスするために、[idea-hack.com]と入力すると、以下の作業が行われます。
- ブラウザはidea-hack.comのIPアドレスを取得するために、全てのDNSサーバー情報を管理するルートDNSサーバーに情報を紹介する
- ルートDNSサーバーから、idea-hack.comの情報が存在するDNSサーバーの情報を取得する
- 対象となるDNSサーバーに情報を紹介する
- DNSサーバーからidea-hack.comのIPアドレスが[298.399.137.76]とレスポンスを得る
- IPアドレスが判明したので、ブラウザは[298.399.137.76]に接続する
- 画面にページを表示する
この作業によって、ドメインを入力するだけでサイトへの接続が可能になるわけです。
DNSはどの様に機能するか?
先ほど述べた様に、ブラウザはURLを入力すると、DNSサーバーに接続し、IPアドレスを取得し、サイトに接続します。これを[名前解決]と言います。この名前解決を行うために必要な設備・組織についても理解を深めておきましょう。
- ルートサーバー管理「ICANN」
- ドメインレジストリ
- ドメインレジストラ
- ネームサーバー
- DNSレコード
- WEBサイト
この6つがどの様に機能して[名前解決]を行っているかも抑えてくと良いでしょう。
レジストリを管理する最上位機関「ICANN」
ICANNはアメリカにある、全世界のドメインとIPアドレスを統括する非営利法人です。
ドメイン名とIPアドレスを、いずれかの国や組織に優位に働くことなく、公平で中立的な立場で調整をしています。全てのドメインの情報を最終的に見つけられる様にするのが責務で、この機関が存在するからこそ、DNSは機能しています。
ブラウザは、まず最初にこのルートサーバーアクセスを行い、[名前解決]を開始します。
逆に言えば、この機関が機能停止した場合、「WEBの終わり」と「アナログの始まり」が起こります。誇張ではありません。
ドメインレジストリ
ドメインレジストリも非営利法人になります。トップレベルドメインと言われる[.com][.org]などを管理します。ドメインの1番右にある値がトップレベルドメインです。
各非営利組織はこのトップレベルドメインに紐づく全てのドメインを一元管理します。この一元管理するために使われているサーバーを[権威サーバー]と言います。
ドメインレジストラ
ドメインレジストラは[セカンドレベルドメイン]の販売・管理を行う業者のことです。[セカンドレベルドメイン]は[idea-hack.com]の[idea-hack]の部分になります。
厳密には少し違いがあるものの、サブドメインも[セカンドレベルドメイン]という覚え方で問題ありません。
[セカンドレベルドメイン]ビジネスは申請さえ通れば、基本的に参入障壁はありませんので、日本国内にも無数のドメインレジストラが存在しています。これらの企業は[セカンドレベルドメイン]の管理費用や安全性を競っており、ドメインの管理費用は昔と比べてだいぶ値下がりました。ドメインレジストラは[セカンドレベルドメイン]の情報が格納されているDNSサーバーの情報を管理しています。
振興ドメインは1円で手に入る場合もあります。これほど安くなっているのは驚きです。
ドメインの管理者を調べるツールは複数存在しています。執筆時点では、IDEA HACKのドメイン管理者は日本国内の「Xドメイン」です。
ネームサーバー
ドメインとIPアドレスを紐づける[名前解決]を行うサーバーのことです。そうです。DNSサーバーはみなさんがWEBページを表示するために使っているWEBサーバーと同じ物です。ただ単純にDNS(名前解決)専用のサーバーがあると覚えておけば事足ります。
大抵のドメインレジストラは自前のDNSサーバーを持っており、初期設定はこのDNSサーバーに[セカンドレベルドメイン]の情報を保存しています。しかし、別のDNSサーバーを選択することができる様に、ドメインレジストラは管理画面を用意しているはずです。
IDEA HACKはXドメインを利用しており、Xドメインにも管理画面が用意されています。
わざわざ自前のDNSサーバーを選ばずに、「その他のサービス」を運用する人がいるのは何故ですか?
DNSサーバーにも速度の概念があるからです、DNS(名前解決)を超高速で行うDNSサーバーもあれば、低速のサーバーもあり、この違いはWEBページの高速化にも直結してきます。そのため、Amazon Route53の様なプレミアムDNSを使う人もいます。もちろん有料ですけどね・・・
DNSレコード ( ≒ IPアドレス)
最終的にidea-hack.comを管理者として指定され、運用されているDNSサーバーを発見できても、そこにIPアドレスの情報がなければ意味がありません。IPアドレスの登録形式は複数ありますが、これを包括して[DNSレコード]と言います。
DNSレコードにはWEBサイトの接続用・メール配信用・信用情報送信用など、多くの種類がありますが、主な物は下記の通りです。
レコード | 説明 |
---|---|
A | サイト接続に使用されるレコードです。 最終的にこのレコードの値を取得し、ブラウザがサイトにアクセスします。ただし、このレコードで用いるIPアドレスのフォーマット(IPv4)は枯渇したため、新しくIPv6というIPアドレスのフォーマット(AAAA)が作られました。役割は同じです。 |
AAAA | Aレコードと同じですが、Aレコードに用いるIPアドレスのフォーマットで(IPv4)割り当てられるIPアドレスの数の上限に近づき、枯渇したため、新しく作成されたレコードです。IPv6というIPアドレス形式が使われます。Aレコードと基本同じです。 |
CNAME | サイトは通常、www.example.comとexample.comなど、wwwサブドメインを持つ場合があります。これは歴史的な経緯が大きい、それを1まとめにするために用いられます。この場合、正規のURLはexample.comなので、「www.example.comでアクセスされた場合はexample.comへのアクセスとして扱え」という命令を出すために使われます。 |
MX | ドメインを電子メールサービスに関連付けるために使用されます。 これは、example.comのドメイン名を利用したメールを送信するのに使われます。本稿では、ここまで話を広めるとややこしくなるので、詳しくは触れませんが、メール専用のDNSレコードと思ってください。 |
TXT | ドメインの信用情報を確率するために使われます。これは第三者のサービスとお使いのドメインを紐づける際にも利用され、双方のやりとりが適切な物であり、悪意のある物ではないことを証明するためにも使われます。本稿では、ここまで話を広めるとややこしくなるので、詳しくは触れませんが、信用情報専用のDNSレコードと思ってください。 |
WEBサイト
サイトのAレコード(またはAAAAレコード)を[セカンドレベルドメイン]を[ドメインレジストラの管理画面]で指定した[ネームサーバー]内に追加することで、ようやくドメインのWEBサイトの紐付けが完了します。
まとめ
DNSがどのように機能するかに関して理解が深まったかと思います。もちろん、本稿ではあくまで基本を説明したにすぎません。しかし、あなたがDNSのレジストラに勤めている場合でもない限り、一般的にDNSと聞かれたときに、本稿の内容を答えることができれば十分かと思います。
最後に1点だけ注意です。ネームサーバーの指定先を変更する場合があると思います。この作業は反映までに最大24時間ほどかかると言われていますので、ネームサーバーの変更は慎重に行いましょう。