メールアドレスに含まれるのはドメイン名で、メールサーバそのものを指すわけではない。では、どのようにしてメールサーバを探し当てるのだろうか。ドメイン名とIPアドレスをひも付けるDNSサーバとの関連性を見ながら説明しよう。
ドメイン名からメールサーバ?
通常のメールアドレスには、宛先のユーザー(のメールボックス)が所属する組織を表わす「ドメイン名」が含まれている。ただ、このドメイン名は、組織などのグループに付けられる名前で、特定のサーバを示すわけではない。たとえばWebサーバであれば「tech.ascii.jp」のように、ホスト名の形で通信相手を特定する。これと同様に、本来であればメールの宛先であるメールサーバのホスト名を指定するべきである。もちろん、メールアドレスに「@mta.biglobe.ne.jp」といった具合に、メールサーバの名前(に見える情報)を追加しているISPもある。しかし、企業などでは「@ascii.co.jp」のように、ドメイン名だけの表記が多い。では、どのようにしてドメイン名からメールサーバを特定しているのだろうか。結論からいえば、これはDNS(Domain Name System)のおかげである。
DNSのそもそもの仕組み
本来DNSは、ホスト名からIPアドレスを求める際に利用する仕組みである。これを「名前解決」というが、ここで少しDNSについておさらいしておこう。
TCP/IPがベースのネットワークでは、通信相手の特定にIPアドレスが用いられる。しかしこのIPアドレスは、32ビットの2進数だったり4ブロックの10進数(ドット10進表記)だったりと、人間が記憶するには向かない「数字の羅列」になっている。そこで、少しでも覚えやすいように、ということで考えられたのがドメイン名であり、ホスト名なのである。たとえば、192.168.25.93といったIPアドレスと、tech.ascii.jpのどちらが覚えやすいかは一目瞭然だろう。
しかし、人間にとってホスト名が便利でも、コンピュータにとって必要なのはIPアドレスである。何らかの形でホスト名からIPアドレスを導かなければならない。そこで考えられたのがDNSだ。
DNSは、ホスト名からIPアドレスを求める「リゾルバ」と、自身が所属するドメイン内のホストとIPアドレスの対応表を保持している「DNSサーバ」で構成される。DNSサーバは、リゾルバからのホスト名の問い合わせに対して該当するIPアドレスを応答する、というのがDNSにおける名前解決の基本となる。
ただ、ここで問題になるのは「IPアドレスを知りたいホストの情報を持っているDNSサーバがどこにあるのかを、リゾルバがどうやって入手するか?」という点だ。当然リゾルバは、DNSサーバに問い合わせる際に、DNSサーバのIPアドレスが必要になる。鶏が先か卵が先かではないが、そもそもホストのIPアドレスを調べる前に、そのホストが所属するドメインのDNSサーバの情報が必要になるのだ。
これがLAN内であれば、ARP(Address Resolution Protocol)によるMACアドレス取得時のように、ブロードキャストを使って「このホストの情報を知っているDNSサーバは応答してください」とリゾルバが叫ぶ手が使えそうだ。しかしインターネットの世界では、ブロードキャストを流すわけにいかない。そこでDNSでは、「階層構造」を採り入れて、上位から順番に尋ねていけばよいようにしている。
(次ページ、「DNSの階層構造」に続く)
この連載の記事
-
第6回
ネットワーク
メールシステムの脆弱性とその回避策 -
第5回
ネットワーク
メールを受け取る仕組みはどうなっていますか?? -
第4回
ネットワーク
メールを送受信する仕組みとは? -
第3回
ネットワーク
メールの中身をのぞいてみませんか? -
第1回
ネットワーク
メールが届く仕組みを知っていますか? -
ネットワーク
電子メールの秘密 - この連載の一覧へ