ドメインとDNSの仕組み

特定のメールサーバーを決めているわけではない

メールアドレスを初めとするインターネット関係に付きまとうものとして、『ドメイン』というものがある。言葉として聞いた事がある人も多いと思う、しかしいざその意味を聞かれてもこちらも中々正式な回答を述べる事は、専門的に仕事として行なっている方々以外では少々難しいと思う。そもそもドメインとはどの部分を指すのかというと、今回はメールサーバーについての話に焦点を絞っているため、メールアドレスでのドメインに限定する。メールアドレスとは簡単に言えば『@より後の部分』の事を指しており、ここの内容によってメールサーバーへと送られることによってしかるべきルートで配送されていく、とてもざっくばらんに紹介するならこんなところだ。

そもそもドメインというのは『domain』という英単語で、その意味には『領域・範囲・分野』といったものが本質的な意味合いとなる。そのドメインをIT関係で使用するとなったら、その意味とは『ネットワークの管理単位、またディレクトリサービスなどといった同じ資源を共有する様々なグループをネットワーク上でコンピュータ、またネットワークを識別する』、そういったことを指している。深く突っ込むとかなり専門的な内容になってしまうためここでは単純にある一定の領域におけるグループを見分けるために便利な旗が立てられている場所、そんな感じでいいだろう。

メールアドレスのドメインにしてもそうだ、先に話した携帯電話会社のメールサービスにおいて各社独自のサーバーシステムを確保しているからこそ独自のドメインを持っていることになる。これがもしも各社共通のサーバーを持つしかないといわれていれば、回線がパンクするなどざらに起こっていたはずだ。年末年始といった特別な行事などにおいて見られる回線の大混雑を例にして考えれてみれば分かる。また仮に共有する事が出来ても、日本にそれだけの技術が20年以上前に存在していたとしたらとんでもないことなので、現段階まででそのような事は暫く見られないと見て良い。

各メールサービスにはここのドメインが存在しているわけだが、このメールアドレスにおけるドメインによってある一組織という名称を獲得することが出来るわけだが、このドメインによって特定のメールサーバーを示しているというわけではない。もちろん中にはここのメールサーバーを特定しているアドレスもあるわけだが、そういったところばかりではなく、単にドメイン名だけで組織を表しているだけであり、サーバーを位置づけているわけではない。ではどのようにして何千万人と利用するメールサービスの、そのサーバー管理が順当に上手く管理されているのか、それについて話をしていこう。

DNSの仕組みと役割

メールサーバーを独自に限定している携帯会社はいいとしても、それ以外の固有のドメイン名を表していないメールアドレスを、ドメイン名からメールサーバーをきちんと然るべきルートで配送しているかは、『Domain Name System』という機能が成立しているおかげだ。元々DNSはホスト名からIPアドレスを求める際に利用される仕組みとなっている。ネットワークにおいて元来使用する際、相手を特定するための情報源としてIPアドレスが用いられているわけだが、このアドレス内容が32ビットの2進数だったり、4ブロックの10進数といったように、人間の記憶容量では到底覚えきる事の出来ないような数字によって構成されているからだ。もちろん中には数字を暗記する事が得意という人もいるだろう、しかしそれはそういったある種の才能を持っている人だけに限定される。筆者も桁違いの数字を暗記しろといわれても到底無理だ。

要するに、そんな莫大な数字を覚えるよりも、ホストとしてドメイン名を使用することによって覚えやすくするために用いられているのがドメインとなっている。人間があくまで覚えやすくするために必要な情報だが、コンピュータ上ではどうしてもドメインではなくIPアドレスによって送信先を特定するしかすべがない。いわゆる人間と機械の利点が相互不一致を起こしてしまっている、そんな事態を招いているわけだ。この問題を解決するために持ちられたのがこのDNSとなっており、これにより人間と機械がそれぞれの機能を阻害することなく稼動する事が出来ているのである。

名前解決によるDNSの機能

このDNSによってホスト名からIPアドレスを算出することが出来るようになったおかげで、大分世の中は便利になったというわけだ。そしてこのホスト名からIPアドレスを求める手段のことを『リゾルバ』といい、この機能によって所有しているメールアドレスの所属しているドメイン内のホストとIPアドレスの対応表を保持している『DNSサーバ』が構成される。これが基本的なDNSにおける名前解決法の基本的な原理となっている。

ところがだ、この法則においてもやはり疑問点が生じるところが出てくる。それは『IPアドレスを知りたいホストの情報を持っているDNSサーバが何処にあるのかを、リゾルバがどうやって入手することが出来るか』という点だ。簡単に言えば単純にドメインからIPアドレスを算出できるといったことではなく、まずそのドメインが所属しているDNSサーバを発見しなければ特定することは出来ないのである。何とも面倒な仕組みだが、確かに数多に存在している膨大な情報世界から特定するには、ある程度の指針を見つけるために集団を発見できるだけの機能がなければ不可能なのはいうまでもない。

理解しろといわれても難しい上、相当数の勉強を重ねなければならないのは言うまでもない。なんだかんだでこの世界を把握するのも楽ではないのがよく分かるシステムだと思ってくれればいいだろう。

ドメインには階層がある

ではリゾルバはどのようにして欲しい情報を取得しているのかというと、DNSにおいては『階層構造』という概念を用いることによって、上位から順に求めているIPアドレスを所有しているホストを検索して行く方法を取っている。DNSにおける階層については主に4段階存在しており、その種類は次のようになっている。

階層構造の詳細

1:ルートドメイン
ドメイン階層の起点となり、ここでは主に『com』や『net』といった一般的に利用されているドメイン分けられ、また世界各国で利用されているドメインに分けていく。
2:トップレベルドメイン
主に国別に分けられるドメインである『ccTLD』や、商業用や個人として利用されている『gTLD』といったものに大別していく。
3:セカンドレベルドメイン
二つに分けられたドメインから更に、企業用の『.co』やネットワークサービス用としての『.ne』など、団体別に大まかに分けていく。
4:サードレベルドメイン
団体の種類によって分けられたドメインからさらに、特定の組織毎に割り振られていく。

この4つの階層構造を隔てることによって目的となるホストを見つけ出して送受信を可能としている。ややこしいの一言に尽きない話なわけだが、いざこうして調べてみると面白いといえなくもない。当たり前のように利用しているメールサービスも、こうした複雑な構造を経由して送信されているとは思いも付かないだろう。普段のインターネットを利用しているだけでも即座にこれだけ簡単に接続されているのだから、最近の回線技術が進化しているのをよく知ることが出来るところだ。

リゾルバはこうした基礎となる階層構造から手繰り寄せて目的のホストを見つけるわけだが、これだけでは目当てのものが見つからない。ここから更に名前解決を求めていくことになるのだが、ここでもDNSサーバーによっては該当する物がない場合には、またさらに順々に最適と思われるサーバーへと転送され、そうしてようやく目当てのDNSサーバーを見つけることになる。大まかに紹介したが、とにかく一見して簡単そうに見えて、メールサービスでは複雑なシステムが稼動しているのだということを覚えておいてもらいたい。

メールあるある

メールサーバーの仕組みを考える