インターネット ドメイン とは 何か
インターネットにまつわる用語として「ドメイン」という言葉をご存じの方は少なくないと思うが、はたして「アドレス/URL」との違いは何かを語れる人は多くないと思う。2003年10月に起きた levelm.net ドメイン一時消失。皆さんにご迷惑とご心配をおかけしたこの小さいようで大きい事件を機に、インターネットの仕組みの一つである「ドメイン」を筆者自身の勉強も兼ねて解説してみようと思う。
インターネットにまつわる用語として「ドメイン」という言葉をご存じの方は少なくないと思うが、はたして「アドレス/URL」との違いは何かを語れる人は多くないと思う。2003年10月に起きた levelm.net ドメイン一時消失。皆さんにご迷惑とご心配をおかけしたこの小さいようで大きい事件を機に、インターネットの仕組みの一つである「ドメイン」を筆者自身の勉強も兼ねて解説してみようと思う。
このページは HTML4.01 Strict と CSS で記述されています。レイアウトデザインをCSSで記述していますのでご使用のブラウザによって表示環境が変わります。ご了承ください。確認は Internet Explorer 6.0 (Win2000 SP4)で行っております。
当サイト、レベルMのトップページは http://www.levelm.net/index.html で確認できる。はたしてどのような要素で構成されているのだろうか。
ブラウザのアドレスバーに www.levelm.net としてもアクセスできるのは、ブラウザの設定上 自動的に http:// を先頭に付け足しくれるからである。また index.html が付け足されるのは、当サイトのサーバー設定で、自動的に後部に書き足されるようになっているからである。例えば、http://www.levelm.net/lvlm/gall/tcon/ としても、index.html というページが自動的に呼び出されるようになっている。この後者の機能は「サーバーリダイレクション」と呼ばれるWebサーバーの設定によるものなのだが、今回の説明とは直接関係ない。
さて、アドレス。このページは http://www.levelm.net/lvlm/gall/domain/index.html というアドレスでアクセスすることができる。アドレスは URL(Uniform Resource Locator)とも言い、どちらかというと「アドレス」より「URL」の方が厳密的である。
この URL を厳密に記述すると http://www.levelm.net:80/lvlm/gall/domain/index.htm となる。これを分解すると http という部分、www.levelm.net という部分(://にも厳密には意味があるが省略)さらに /lvlm/gall/domain/ 最後に index.html、実はその途中に:80 (厳密には 80)となる。それぞれを簡単に解説すると、以下のようになる。
| http | スキーム名 |
| www.levelm.net | ドメイン名 |
| 80 | ポート番号 |
| /lvlm/gall/domain | ディレクトリ名 |
| index.html | ファイル名 |
このうち、ディレクトリ名とファイル名については、皆さん自身のパソコンにおけるディレクトリ(フォルダ)とファイル名と同じ考えで良い。つまりとあるインターネット上のサーバー(パソコン)に置いてある、とあるディレクトリのとあるファイルを参照しているわけである。CドライブとかDドライブの記述が無いのは、大半の場合、サーバーの全てのファイルを閲覧させるわけではなく、サーバー側の設定として一部のディレクトリだけを公開しているので、ハードディスク上のファイル場所を正確に記述する必要が無いから……と説明しておくが、もともとインターネットは UNIX と呼ばれるシステム上で開発されたテクノロジであり、その UNIX にはCドライブDドライブという概念がそもそも存在しないから、というのが正しいところである。
まずスキーム名 (http)。これは、TCP/IP というインターネットの通信のひとつの方法で定められた仕組みである。これらの理解は少々難しい。利用者はあまり意識せず使い分けられるようになっているが、実はやや専門的だからである。インターネット=ホームページ&メールという考え方がかなり一般的だが、インターネットとは、世界中のコンピュータをネットワークで繋いだ通信網を指すのであって、そのネットワークを使った一つの情報のやりとりがホームページとメールという形であるに過ぎない。
例えるならば、電波という通信手段を使って、映像と音声という種類の情報を流しているテレビ、音声だけのラジオ、双方向で音声をやりとりできるトランシーバーや、(クルマなどの)ラジコン操作があるのと同じである。つまり、インターネットの利用方法というのは、まだまだ存在するのである。例えば、ファイルのみを交換するためのftp、自分のパソコンから他のパソコンを操作できる telnet などなど。http とは「これは ホームページを閲覧するための情報を送受信しています」という宣言キーワードだと思えばよい。メールも pop3 というキーワードを付け加える形で、送受信がされている。
続いてポート番号 (80) だが、コンピューターはネットワークに接続している限り、その規模の大小にかかわらず、自動的にいろんな情報を送受信している。ホームページやメールを見るときだけ通信が行われているのではない。それら多くの種類の情報を扱う時に、コンピューター側は、それぞれの通信が何のための通信なのかを、スキームとは別に識別しなければならないようになっている。これも電波に例えてみよう。首都圏の場合、TVにおけるVHF波は、1ch・NHK総合、3ch・NHK教育という風に、同じ種類の電波でもチャンネル(周波)の割り当てが存在する。この考えをポートに置き換えればよい。
ポートは 1〜65536 まで設定することができ、ホームページを見る場合は「80番という種類の情報です」という形で通信を送っているのである。http の場合80番のみを使用するというのが原則的に決められているのでだ。ちなみにこの80はブラウザが自動的に付け足してくれている。試しに http://www.levelm.net:80/ と記述すると、ちゃんとアクセスできる。だが http://www.levelm.net:100/ という風に記述しても、エラーになる。サーバー側に通信が送られているのだが、100番という種類は受け取らない設定になっているため、返事すら返ってこない。このポート番号は各サーバーにおいて、任意に決めることができるが、当 Webサイトも原則に従い http は80番のみ受け入れるようになっている。
ドメイン名は、当サイトの場合 www.levelm.net がそれに当たるわけだが、世界中には数十億のドメイン名が登録されている。はたしてどのような形でこの名前が登録されているのだろうか。
世界中には数十億のドメイン名が登録されている。これらドメイン名をむちゃくちゃに付けてよいハズがない。ドメイン名の割り当ては ICANN (The Internet Corporation for Assigned Names and Numbers) という非営利の組織が統括している。この ICANN は、各国毎に設定できるドメイン名の一部を決定し、各国(地域)の下部組織に管理させている。日本とアジア圏の一部は や、JPNIC (Japan Network Information Center) という組織が管理をおこなっている。それではドメイン名を分解してみよう。
www.levelm.net は www と levelm と net に分けられる。つまりドット(ピリオド)が分かれ目なのである。www.yahoo.co.jp も www yahoo co jp と分けられる。
まず、一番最後にある net や jp に注目しよう。これはトップレベルドメイン(TLD)と呼ばれるもので、前述の ICANN のみが定められる。原則的な考え方としては .com .net .org など、トップレベルドメインが3文字以上の場合は北米地域に籍を置く者の為に用意され、その他の国は例えば日本なら .jp 、英国なら .uk を取得できる。.com .net のようにいくつか用意されているのは、同じドメイン名でも、いくつかのパターンを用意できるようにしているため、である。 つまり levelm.net 以外に levelm.com、levelm.org という風に複数のパターンを設定できるようにするためである。なお、.comや.netは本来下記のような意図があり、また初期は取得条件があったのだが、今日では国籍条項を含め関係なく扱われている。
| com | 会社組織・個人 | commercial |
| net | ネットワーク関連 | network |
| org | 任意団体 | organization |
このほかにも、まだまだあるのだが、省略。余談になるが筆者は一度 .mil というのを確認したことがあり、いったい何かと調べたところ 米軍 だった。military の略であろう。
さて、米国以外の場合は .com にあたるものが .co になる。これはすでにお察しのことだろう。この .co や .ne に当たる部分も下部組織が管轄している。あらかじめ決まっているため我々の意志で追加することはできない。取得に当たってはそれぞれの国によって条件が異なる。(例えば日本の場合.co は取得条件がやや厳しい。それ故、この.co.jpの取得はある種のステータスになっている)
というわけで、ドメイン名のうち一部はすでに決まっているもので、我々が決められるのは、levelm の部分である。下記に示した制限内で名前を考え .com などとの組み合わせを最初に申請した者がドメイン名の所有者となる。早い者勝ちの世界だ(故に所有権争いも発生する)。
その申請場所はと言うと、それぞれの管轄組織が認定している登録業者になる。業者の規模は大小様々なのだが、基本的には ICANN や、JPNIC などから認可された営利業者で、全世界レベルでは VeriSign 社、アジア圏に置いては お名前.com 社 が最大手。これらレジストラと呼ばれる登録業者に、希望の組み合わせを申請し登録料を支払うことで、無事、世界で一つだけの自分だけのドメイン取得となる。それぞれの登録業者は必ず他の業者での登録状況を把握しているため、重複はあり得ない。
では、残ったもう一つ www は何か。これは我々が好きなように決められるのである。というのも、levelm.net といったドメインは1台のコンピューターのための名前ではない。ドメインの厳密な定義は、ある組織のネットワークシステムにつけられた名前なのである。同一ネットワークにある1台1台のコンピューター全部に対して 固有の名前を付けそれにlevelm.net 取得したドメイン名を付記して、インターネット上のコンピューター名を識別している。なので、www という名前はよく見かけるが、実は適当で構わないのだ。ただ慣習上、ホームページ配信用のコンピューターにはwwwと設定することが多いので、levelm.netもそれに倣っている。だからメールの送受信の為のコンピュータには mailなどという風にマシン名を設定してmail.levelm.net という風にいくらでも設定できる。
ココまでの説明で URL とドメインとは用語の意味として違いがあることはおわかりいただけたかと思う。唐突だが、インターネット上には現在どれだけのパソコンがあるのだろうか。24時間動いているサーバーは日々増え続け、日本でのパソコン普及台数のみならず常時接続もどんどん増えている。それだけではない。インターネットは今も世界中に拡大している。同時に接続しているコンピューターは数億台を下るまい。それだけのコンピューターをどのように識別しているのだろうか。
その識別方法は www.levelm.net という名前ではない。 IPアドレスという番号である。210.58.165.3 という風に、1〜256 の数値を4つ組み合わせて、インターネット上のコンピューター1台1台に違った数値の組み合わせを割り当てているのである。いま、このページを見ているみなさんのパソコンにも、必ず世界で一個だけの番号が自動的、もしくはプロバイダからの通知に基づく手動設定で割り当てられているのである。理論上256の4乗、つまり4294967296個(43億弱)の番号を使い各コンピューターは識別している。レベルMサーバーは 202.226.172.242 という番号が割り当てられている。
みなさん自身の現在の IPアドレスを知りたければ、「コマンドプロンプト」から winipcfg(98/Me)、ipconfig(2000/xp)、ifconfig(UNIX) と叩けば良い。下記のような画面が出るはずである。(尚インターネットに接続するには、さらに外部コンピュータ、例えばプロバイダのサーバーの IPアドレスの設定なども必要となるため、例1のように他の設定 IPアドレスも表示される。また一般的な利用者側の IPアドレスの割り当ては通常非固定なので、接続する度に変わる。レベルMサーバーは前述の IPアドレスを固定で取得している。)
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.
C:\>ipconfig
Windows 2000 IP Configuration
Ethernet adapter ローカル エリア接続:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : ***.***.***.***
Subnet Mask . . . . . . . . . . . : ***.***.***.***
Default Gateway . . . . . . . . . : ***.***.***.***
C:\>
今回のテーマの主軸とはやや話題がそれるが、数年前からこの番号の枯渇が懸念されている。そのため新しい規格の制定作業が最近まですすめられていた。「IPv6(Internet Protocol ver.6)」と呼ばれるもので、コンピューター1台1台を「約3.40282367×10の32乗」個 まで識別できる。これは現在の限界数と比べると「7.92281625×10の28乗」倍も違いがあり、地球の面積に置き換えると、1平方メートルにつきに6×10の23乗もの IPアドレスを割り当てられるということになる。天文学的数字であり、事実上無限と思ってもらって良い。(ちなみに現行規格は IPv4と呼ばれている。IPv6へ移行作業は地道に着実に進められている。またIPv4の枯渇を先延ばしするためのテクノロジとして「NAT」と呼ばれる技術もあるのだが、今回は省略。)
というわけでインターネット上にあるコンピュータを特定するには、この IPアドレスを使うわけだが、実はそれが唯一の方法なのである。少なくとも我々の見えないところでは IPアドレスのみでやりとりが行われている。試しに http://202.226.172.242/ としてもレベルMのホームページにアクセスできる。でも果たして各サーバーの IPアドレスを人間が覚えることができるだろうか? 筆者はレベルMサーバーの IPアドレスですらはっきりと覚えてはいない。
そこで覚えやすいようにアルファベットを使った識別方法の登場である。「www.levelm.net → 202.226.172.242」という風に電話帳の役割を持った仕組みをどこかで持たせれば、人間はアルファベット(意味のある単語)だけを覚えれば良く、だいぶ覚えやすくなる。この電話帳的な機能(名前解決方法)のことを「DNS(Domain Name System)」という。
ここでもう一度、自分の IPアドレスを知る方法からもうちょっと付け足してみる。やはり各OSによってコマンドが微妙に異なるが、Windows2000/XP の場合 ipconfig /all とすると DNS Servers という設定の IPアドレスが表示される。これがDNSの機能を持った DNSサーバーであり、このコンピュータが名前解決をするためにアクセスするサーバーの IPアドレスになる。
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.
C:\>ipconfig /all
Windows 2000 IP Configuration
Host Name . . . . . . . . . . . . : takemi-cchi
Primary DNS Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Broadcast
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
Ethernet adapter ローカル エリア接続:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Intel(R) PRO/1000 CT Network Connection
Physical Address. . . . . . . . . : 00-07-E9-**-**-**
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : ***.***.***.***
Subnet Mask . . . . . . . . . . . : ***.***.***.***
Default Gateway . . . . . . . . . : ***.***.***.***
DNS Servers . . . . . . . . . . . : ***.***.***.***
***.***.***.***
C:\>
ホームページに限らず、インターネット上のコンピューターにアクセスするときに、 IPアドレスを指定せずアルファベット(すなわちドメイン名)で指定した場合、コンピューターは、まずDNSサーバーにアクセスをし、 IPアドレスを問い合わせている。そして得た IPアドレスを自動的に使用して目的のサーバーにアクセスしているのである。
このDNSサーバー、インターネットとともに存在していたのではない。インターネットが拡大するに連れ、必要性が増してきたため今日の形になっている。では、DNSサーバー が登場する以前はどうしていたのか。まず初期は IPアドレスのみで通信していたのである。しかし当然すぐに不便さが出てきたため、DNS(DNSサーバーにあらず)が登場したが、初期のDNSは、数日に一回、ネット上で配布されるテキストファイルだったのである。このテキストファイルに ドメイン名と IPアドレスを、まさしく電話帳のように記述しておき、それをインターネットに繋げるパソコンに登録していて運用していたのである。実はこのテキストファイル、今でも各 OS に原型を見ることができる。
Windows系でいうと Windows をインストールしてあるフォルダの奥深くに隠されている。Windows2000/XP なら、C:\WINNT\System32\drivers\etc というフォルダの中にある hosts というファイル がそれである。メモ帳などのテキストエディタで開くと以下のようになっている。
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
ごらんのように、 IPアドレスとドメイン名がタブで区切られて記述され、いくらでも編集可能である。もちろん一般的には、何もいじらない方が良いので、これから紹介する内容は、自信のある方のみ、ご自身の責任において実験していただきたい。また実験が終わったら元の状態に戻して置くこともお忘れ無きよう。
202.229.198.216 という IPアドレスは おなじみ Yahoo! Japan のホームページである。この IPアドレスと、適当なドメイン名をhostsファイルに記述して保存。そしてそのドメインをブラウザのアドレスバーに指定すると………
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
202.229.198.216 ahoo.co.jp #←このように記述を追加してみる
Yahoo! Japan のページにアクセスしてしまうのだ。現在でもこのファイルの内容が、ドメイン名→ IPアドレス変換の最初の情報源となっている。
この方法は、 IPアドレスのみという状況から比べればずいぶん使いやすいものの、限界は早い。そこで、DNSサーバーという形にメインの方法を変えていったのである。
DNSサーバーはインターネット上にどの程度用意されているのだろうか。ドメイン名を取得し、自前でサーバーを持ち、なおかつインターネット上に公開するためには最低限、とある DNSサーバーに IPアドレスとともに登録しなければならない。実は、DNSサーバーは各ドメイン(あるいは企業で登録しているいくつかのドメインをひとまとまりとして)において2台、メインとサブという形で用意しなければならない。そして、このDNSサーバーの IPアドレスをドメイン登録業者に登録することで、登録されたDNSサーバーは全世界にあるDNSサーバー同士が通信を行い、ドメイン名と IPアドレスの関係が、インターネット上で認識される。尚、全世界のDNSサーバーに認識されるには登録した瞬間から24-72時間ほどかかる。
では、適当にドメインを考えて(例えば abcd.xyz などと言う風に)正式な登録無しに、DNSサーバーを用意し接続したらどうなるのだろうか。(そもそも正規の手続きでなければ、登録業者にDNSサーバーの IPアドレスを登録できないのだが、それはさておき。)DNSサーバーの仕組みの全体図はこのように、TLD 毎に主従関係でもって認識されている。つまり、適当なDNSサーバーとドメイン名は、そもそも認識されないようになっている。
levelm.net は何故インターネット上から一時的に姿を消したのか。そして対策をどのように施し何を学んだのか。
レベルMはご存じのように自宅サーバーで、もちろん DNSサーバーも2台用意しなければならない。ということは最低でも3台のコンピューターが必要になり、個人として3台のコンピューター・3つの固定 IPアドレスを持つというのは酷な話しになってくる。なので通常は登録業者側が DNSサーバーを用意しており、個人で DNSサーバーを用意しなくても、1台か2台程度なら自宅サーバーをインターネット上に公開できるようにしてくれている。レベルMサーバーもたぶんに漏れず、DNSサーバーは自前で持っていない。(企業のように1ドメインの中から多くのサーバーを公開する場合は、自前で DNSサーバーを用意するのが一般的である。また DNS 登録と一口にいっても様々なパターンが存在するが省略。)
今年の11月でレベルMホームページはドメインを取得して丸2周年になるのだが、当初有効期限を2年として登録していたので、これを更新する必要があった。その更新手続きに手間がかかり、levelm.net が登録業者側から一時差し押さえられた形になってしまったのである。差し押さえのひとつとして、業者に登録していた「levelm.net → IPアドレス」という DNS 登録の抹消があった。これによりサーバーは稼働していたにもかかわらず、levelm.net はみなさんからのパソコンから認識できなくなってしまったのである。もっともこの登録抹消も、全世界の DNSサーバーに影響が及ぶのは前述の通り24-72時間かかる。筆者の場合、かなり早い段階に影響が出ていたが(10/10 午前8時頃に接続できなくなっていた) 、その日は問題なくアクセス可能だった方も居る。筆者が聞くところによると、おおよその方はお昼から夕方くらいまでは接続できていたようだ。
みなさんにご迷惑をおかけしておきながらなんだが、筆者が幸運にも多少早い段階から事故に気がつくことができたため、その後登録業者への確認作業を比較的素早く行うことができ、levelm.net のダウン時間を少しでも短くできたのは不幸中の幸いだった(そもそも更新に手間取ったのが元凶であるが)。筆者は職業としてもサーバー管理に関わる仕事をしているのでダウンタイム低減の重要性は知っていたが、このような形で降りかかってくるとは思いも寄らなかった。
何より、これはみなさんのご協力の賜物なのだが、levelm.net というサーバーで様々な活動を行うことができ、多少なり認知されているドメイン名だ。それを失ってしまうことが、こんなにも重大なことだったのか、と思い知らされたことはよい勉強になった。2年間の間積み重なった様々な結びつきが一瞬にして失われかねないのである。仮に1週間ほどダウンしたままでいれば、「もうこのホームページは開いていないのだな」と判断され、アクセス量も激減してしまうだろう。ドメイン登録業者は数多くあるが、その何処もが「ドメインは財産」と唄っている。これは宣伝ではなく、事実なのだなぁと強く実感した。今回の事故を機に、levelm.net を2012年まで登録した。
以上が今回の事故の顛末です。レベルMにアクセスしていただいてる皆さんにはあらためてお詫びいたします。
今回の事故についてのお詫びとその理由の簡単な解説をしようと思っていたのだが、どこからどこまでを書くべきかなかなかつかめない。「DNSサーバーから levelm.net ドメインが一時的に削除されたためです」と簡単にすませることも可能かもしれないが、これでは釈明にしても足りなさすぎる。ならば、自分自身の勉強も兼ねて、可能な限りわかりやすく、それでいてちょっと専門的に書いてしまえ、ということでこのようなボリュームになってしまった。
検索をすれば内容がネット関係なだけに多くのページがある。もちろん、専門的な物から初歩レベルの物まで程度は様々だが、今回のこのページは、なるだけドメイン名だけに特化させてみた。故に省略部分も多くなり、例えなども違和感を感じる方がおられるかもしれない。またわかりやすさに重点を置いた説明を心がけたため説明に正確性をあえて犠牲にしたところもある。ご容赦願いたい。
正直言ってしまえば、自宅サーバーでも持っていない限り、このコンテンツの知識は必要は無いだろう。しかしそう遠くない将来は、そうとも言い切れなくなる。例えばポート番号。コレは OS の設定上、自動的にいくつか開いている。中にはほぼ無意味に開いているポートもあり、それが元凶となってセキュリティの脆弱性を突かれるケースは多々あり最近ではしばしばニュースになる。また IPv6 はコンピューターに対してだけでなく、テレビや冷蔵庫など一般家電にも固有の IPアドレスを割り当てて運用されることを想定している。ということは、一家に1ドメインという日が来るかもしれない。実際に TLD のひとつに個人向け対象の .name が用意されている。
今後も、DNSサーバーを基幹としたインターネット上の名前解決方法は変わることがないだろうが、ドメインのルールや位置づけは、より一般利用者にも浸透していくだろう。このコンテンツで何かをつかめていただければ幸いである。