ドメインとDNS Domain and DNS: Domain Name System

目次 Contents

はじめに Introduction
1.0 ドメインとは? What is domain?
 1.1 なぜドメイン名なの? Why is domain name used?
 1.2 IPアドレスを管理する団体 Organizations administer IP addresses
 1.3 wwwとは? What is “www”?
  1.3.1 “www”は必須なの? Is “www” required in the URL?

2.0 ドメインの階層 Domain hierarchy
 2.1 ルートドメイン、トップレベル・ドメイン root domain and TLD: top-level domain
 2.2 サブドメイン subdomain
 2.3 ドメイン名のルール Rules of Domain names
 2.4 トップレベル・ドメインの例 Example of TLD: top-level domain
 2.5 TLDは6種類 6 kinds of TLD
  2.5.1 基盤TLD infrastructure top-level domain (ARPA)
  2.5.2 汎用TLD generic top-level domain (gTLD)
  2.5.3 制限付き汎用TLD restricted generic top-level domain (grTLD)
  2.5.4 スポンサー提供TLD sponsored top-level domain (sTLD)
  2.5.5 国別コードTLD country code top-level domain (ccTLD)
  2.5.6 試験用TLD test top-level domain (tTLD)
 2.6 国名や地域を表すドメインの例 Examples of domains identify country names and regions

3.0 2種類のDNSサーバ Two kind of DNS servers
 3.1 2種類のDNSサーバの異なる機能 Different functions of two kind of DNS servers
 3.2 DNSサーバの用語に関して About terms of DNS Servers
 3.3 分散型データベース Distributed Data Base System

4.0 DNSはどのように働くか How does DNS work?
  ドメイン名の解決処理 Domain Name Resolution
 4.1 DNSコンテンツサーバの階層 Hierarchy of DNS Contents Servers
 4.2 webページを閲覧するとき内部では何が起こる?
What happens internally when browsing an web page?

 4.3 再帰問い合わせと反復問い合わせ Recursive query and Iterative query
 4.4 IPアドレスのキャッシュ IP address Caching

5.0 サブドメインとサブディレクトリ subdomain and subdirectory
 5.1 サブドメインとサブディレクトリの違い
Difference between subdomain and subdirectory

 5.2 サブドメインか、またはサブディレクトリか?
Should be used a subdomain, or a subdirectory is much netter?

6.0 ドメインに関連する用語 Terms related to domain
 6.1 レジストリ、レジストラ Registry, Registrar
 6.2 HTTP, HTTPS
 6.3 HTTP: Hypertext Transfer Protocol
 6.4 HTTPS: Hypertext Transfer Protocol Secure
 6.5 ftp, telnet
 6.6 URL: Uniform Resource Locator
 6.7 URI: Uniform Resource Identifier
 6.8 ドメイン名空間、ゾーン Domain Name Space, Zone
 6.9 ホームページ home page
 6.10 ブログとサイト Blog and Site
 6.11 独自ドメイン
 6.12 TCP/IPプロトコル TCP/IP Protocol
 6.13 IPV4/IPV6 アドレス IPV4/IPV6 address
 6.14 CGIとは? What is CGI?

7.0 ドメインの登録 Registration of a domain
 7.1 ドメインを取得する方法 How to actually get a domain
 7.2 サブドメインの作成方法 How to create a subdomain
 7.3 日本語ドメインと国際化ドメイン名 Japanese domain and IDN: Internationalized Domain Name

 更新情報

はじめに Introduction

インターネットの語源はInter networkで、村、町、都市などに築いた通信ネットワークどおしをつなぐ経路のことです。固有名詞のインターネット(the Internet)は、独立したネットワークが相互接続され、世界中に張り巡らされた単一の通信ネットワークに見えます。

この事を理解している人は少ないようですが、次の図からもこの様子が良くわかります。

インターネット・バックボーン (Internet backbone インターネットの主要幹線)は、大容量(大量のデータを短時間で送信できる)の通信経路を相互接続した集合体で、図はその一部です。末端の枝葉に相当する部分は、この図にはありません。

インターネットが機能するにはどんな仕組みが必用なのか、このテーマについて解説します。

Fig.00 インターネット・バックボーン the Internet backbone
Fig.00 Internet backbone
Fig.00 Internet backbone
図はWikipediaより引用

1.0 ドメインとは? What is domain?

「ドメイン domain」という用語はいくつかの意味や使い方があります。すぐ思いつく例を挙げると

  1. 時間領域や周波数領域を表すドメイン
    「time domain, frequency domain」は信号波形を解析するためには必須の知識で、フーリエ解析(Fourie analysis)を利用します。
  2. インターネット(the Internet)を利用するためのもの
    ドメインを取得したり、取得しない場合でも知らないと困ることがあります。

ここでは2番めのドメインについて解説します。

ドメイン (domain)は、インターネットから切り離すことのできない深い関係にあり、ドメイン名(domain name)のことを指します。たとえるなら住所氏名のようなものです。

ドメイン名はwebブラウザの画面で、通常は上の部分に現れる文字列に含まれ、文字列はwebサイトを表します。

webブラウザ以外にはメールアドレスにも使われ、メールアドレスの@以降の文字列がドメイン名を表します。この場合は、送信元のコンピュータに相当します。

ドメイン名の一部が表すのは、インターネットにつながるそれぞれの機器(多くはコンピュータ)です。ドメイン名は、実際にはグローバルIPアドレス (global IP address) を意味し、この番号を文字列による別名で表現します。

グローバルIPアドレスは、全世界で同じものは一つも存在しないすべて一意(唯一無二)の番号で、住所と氏名の両方とも、同じものが存在できないのとまったく同じ事情によるものです。

IP address
IP: Internet Protocol 詳しくは6.12 TCP/IPプロトコル TCP/IP Protocolを参照。
IPアドレスは、2種類の規格 IPV4とIPV6があります。6.13 IPV4/IPV6 アドレス IPV4/IPV6 addressを参照。
Fig.01 IP address
Fig.01 IP address
Fig.01 IP address
利用者がwebサーバにつないで閲覧するためには、お互いに相手のIPアドレスが必用です。

この記事を読み進めれば、ドメインに関しての理解が深まると思います。

世界中のドメイン名の数
2017-Q1現在で、約3億3千万。Verisign社の情報より
世界中のwebサイトの数
2018年1月時点で18億強。https://tekeye.ukの情報より
グローバルIPアドレス (global IP address)
インターネット上で通信を行うときに使う番号で、電話の外線番号に相当します。
プライベートIPアドレス (private IP address, または local IP address)
企業や家庭などの内部のネットワークに使う番号で、電話の内線番号に相当します。

1.1 なぜドメイン名なの? Why is domain name used?

ドメイン名を使う理由は、利用者が数字の組み合わせで表現するIPアドレスを覚えることは困難だからです。代わりに、名前なら覚えるのはまだ簡単です。

ただし、機器の内部では通信の宛先にはドメイン名ではなくIPアドレスを使います。

IPアドレス以外のものも必用
機器どおしが通信を行うとき、IPアドレス以外に、まだ、ネットワーク番号やMACアドレスも必用です。
参考記事
詳細は次の記事を参考にどうぞ。
ルーターとは(ネットワークルーター)

そこで、DNS (Domain Name System)を利用することによりドメイン名とIPアドレスを相互に変換することができます。DNSは、たとえるならばインターネットのアドレス帳です。

DNSはとても重要な機能で、この役割を担うのはDNSサーバと呼ぶ名のコンピュータです。

Fig.02 DNSサーバは2種類ある Two kind of DNS servers
Fig.02 Two kind of DNS servers
Fig.02 Two kind of DNS servers
2種類のDNSサーバ
詳細は後で説明しますが、「DNSサーバ」は2種類あります。それぞれの役割はまったく異なり、単純に同じ名前で呼ぶのは混乱の元です。

1.2 IPアドレスを管理する団体 Organizations administer IP addresses

全世界のIPアドレスを統括し管理するのは、ICANNという団体です。

ICANNのIPアドレスは192.0.34.163で、ブラウザにIPアドレスを指定することにより閲覧できますが、意味のない番号を入力するよりはドメイン名 “www.icann.org” を指定するほうが分かりやすいはずです。

ICANN: Internet Corporation for Assigned Names and Numbers
URL: https://www.icann.org
非営利団体で、本部は米国カリフォルニア州ロサンゼルス
地域ごとの管理組織
全世界の地域ごとにIPアドレスを管理するICANNの下部組織が存在します。北米地域、ヨーロッパ地域、アジア太平洋地域、南米地域、アフリカ地域、のそれぞれに地域インターネットレジストリ(Regional Internet Registry/RIR)」と呼ぶ組織があります。

それぞれの地域ごとに、さらに下部組織があります。

Fig.03 IPアドレスを管理する組織 IP address administrative organization
Fig.03 IP address administrative organization
Fig.03 IP address administrative organization
Fig.04 日本のIPアドレスを管理する組織 Japan IP address administrative organization
Fig.04 Japan IP address administrative organization
Fig.04 Japan IP address administrative organization
JPNICの管理区域
日本国内の一部の企業は、JPNICの上位組織であるAPNICからIPアドレスを取得しています。
JPNICが管理するのは、日本で使われるIPアドレスのうちこの部分を除いた残りです。

1.3 “www”とは? What is “www”?

URL(またはURI)を目にする機会は多いですが、良く”www”が付きます。

Fig.05 URL(URI)中の”www” “www” in URL(URI)
Fig.05 URL-www
Fig.05 URL-www
URLURIについて
2.0 ドメインの階層 Domain hierarchyのところで説明します。

“www”はWorld Wide Webのことを表します。日本語で表現するなら「世界中に張り巡らした蜘蛛の巣」意味するところは、コンピュータ・ネットワークのことです。

“www”はドメイン名の一部ですが、これが付いたり、または付かないサイトもあります。たとえば
 http://www.example_1.com

付かない例
 http://example_1.com

なかには”www2″や”www3″などが付くサイトも存在します。
 http://www2.example_2.com
 http://www3.example_3.com

1.3.1 “www”は必須なの? Is “www” required in the URL?

“www”を付ける必用があるかどうかについては、慣習で付けているに過ぎません。”www”はwebページであることを示すだけで必須ではなく、これ以外の意味はありません。

付ける場合は”www”やこれに準じたものでなければいけないという決まりは存在しないようです。”www”以外の何でも構いません。この点については国内外のいくつかのサイトの情報を参考にしました。

2.0 ドメインの階層 Domain hierarchy

ドメインには階層があり、さらにドメインが付く場合があります。あるドメインの下に付くのがサブドメインです。

Yahooジャパンの例では、ニュースサイトは本体のサブドメインです。(サブドメインの説明は後で)
 https://news.yahoo.co.jp

トップページでもニュースの概要は閲覧できますが、詳細を知るにはニュースサイトへ移動することが必用です。

サブドメインの下にさらに続くことがあります。最も右が上位で、最も左が最下位のドメイン名です。ドメイン名の構成は、欧米の住所表記と同じ順序であることがわかります。次の図をご覧ください。

Fig.06 ドメインの例 Domain example
Fig.06 Domain example
Fig.06 Domain example
ドメイン名の並びは、欧米の住所表記と同じです。

“news”や”yahoo”はドメイン名で、”news.yahoo.co.jp”のようにドメイン名のすべてを指定する名前のことを「絶対ドメイン名」や「完全指定ドメイン名」(FQDN: Fully Qualified Domain Name)と呼びます。

次は両方ともFQDNの例です。
 www.yahoo.co.jp
 news.yahoo.co.jp

“https://”, “http://”
“https://”などの部分はドメイン名ではありません。「ドメインに関連する用語」のところで説明しますが、”https”はアクセスの方法を表し、”://”の部分は規格で定められたものです。

2.1 ルートドメイン, トップレベル・ドメイン root domain and TLD: top-level domain

Yahoo Japanの例 https://news.yahoo.co.jp

ドメイン名の階層はルート (root 根)から始まり、ここには名前が付きません。その下にいくつかのドメイン名が付きます。

ルートに最も近いドメイン名のことをトップレベル・ドメイン (TLD: top-level domain)と言います。”jp”の位置は文字列の先頭ではないためわかりにくいと感じることもありますが、ルート・ドメインの間近に位置します。

Yahoo Japanの例では、TLDは”jp”です。

具体的には、次の図を参照してください。
Fig.06 トップレベル・ドメインの例 Example of TLD: top-level domain

2.2 サブドメイン subdomain

Yahoo Japanの例 https://news.yahoo.co.jp

次の2番目以降の階層は、”jp” の従属レベル (subordinate level) に位置することからサブドメイン (subdomain)と呼びます。”yahoo”は “co” のサブドメインで、さらに、”news”は”yahoo”のサブドメインです。

ドメイン名は、階層ごとにドット“.”で区切ります。

第2階層以下はすべてサブドメインということができますが、次は名前で区別する呼び方です。

セカンドレベル・ドメイン SLD: second-level domain
2番目の階層は、セカンドレベル・ドメイン (SLD: second-level domain)で、この例では”co”です。coはcompanyを省略した名前です。
サードレベル・ドメイン 3LD: third-level domain
3番目の階層は、サードレベル・ドメイン (third-level domain)で、この例では”yahoo”です。
フォースレベル・ドメイン 4LD: fourth-level domain
4番目の階層は、フォースレベル・ドメイン (fourth-level domain)で、この例では”news”です。

“news.yahoo.co.jp”の例は第4階層までです。

仕様上の限界は存在しますが、かなり長い名前を使うことはできます。とは言うものの、あまり長い名前は使いにくいだけで良くないでしょう。

2.3 ドメイン名のルール Rules of Domain names

ドメイン名を識別するDNS (Domain Name System)は大文字と小文字を区別せず、先頭を大文字で書くこともできます。

技術文献では小文字で書くのが習わしです。

2.4 トップレベル・ドメインの例 Example of TLD: top-level domain

図の描き方について、個人的には違和感があり上下を逆にしたいですが、他の例にならいドメインの階層はルートを上にします。

Fig.07 トップレベル・ドメインの例 Example of TLD
Fig.07 Example of TLD
Fig.07 Example of TLD
トップレベル・ドメインは、ICANNとその他が管理しており利用者が自由に決めることはできません。

TLDは、2018年12月初めの時点で1578あります。(IANAの情報)
表1 トップレベルドメインの種類と数
Table-1 Type and number of TLDs
種類 数、内訳
1 オリジナルTLD
Original TLDs
com, org, net, int, edu, gov, mil, arpa の7個
2 国別コード TLD
Country code TLDs
2017-05-20 時点で 255個
3 国際化国別コード TLD
Internationalized country code TLDs
計60個
4 ICANN時代の汎用TLD
ICANN-era generic TLDs
biz, info, mobi, name, pro など数百個
5 国際化汎用TLD
Internationalized generic TLDs
国際化したもの数十個
6 地域TLD
Geographic TLDs
asia, kyoto, nagoya, tokyo, berlin, hamburg など数十個
7 国際化地域TLD
Internationalized geographic TLDs
計6個
8 ブランドTLD
Brand TLDs
airbus, alibaba, aol, apple, fiat, sony など数百個
9 国際化ブランドTLD
Internationalized brand TLDs
計19個
10 特別用途TLD
Special-Use Domains
example, invalid, local, localhost, onion, test の6個
表1について
表はWikipedia による分類で、ICANNが発足する以前から存在するドメイン名をオリジナルに分類し、残りを国、地域、ブランド等に分けたものです。すぐ下に記すIANA (www.iana.org、ICANNの下部組織)の分類との違いは細かく分けた点が異なります。
上の表にあげた例をIANAの分類で表すと次の表のように変わり、その多くは generic TLD に入ります。
国際化ドメイン
国際化したドメインについては、「日本語ドメインと国際化ドメイン名 Japanese domain and IDN」を参照してください。
TLD(トップレベル・ドメイン)の数について
ここで記したTLDの数は、2018年12月初めの時点の情報です。表1「2.5 TLDは6種類 6 kinds of TLD」の部分です。
IANAの分類
2.5節を参照
表1のTLD名
A generic TLD com, org, net, edu, tokyo, nagoya, berlin, hamburg, airbus, alibaba, aol, apple, fiat, sony
B sponsored TLD int, gov, mil, asia
C infrastructure TLD arpa
D test test
E 該当なし example, invalid, local, localhost, onion

2.5 TLDは6種類 6 kinds of TLD

IANA (www.iana.org)の分類では、TLDは大きく6種類に分かれます。

IANAのリスト
こちらで閲覧できます。
https://www.iana.org/domains/root/db
Fig.08 6種類のTLD Six kind of TLDs
Fig.08 Six kind of TLDs
Fig.08 Six kind of TLDs
2.5.1 基盤TLD infrastructure top-level domain (ARPA)

このドメインは arpa があります。

arpa 初めはAdvanced Research Project Agency、現在は Address and Routing Parameter Area 技術的基盤の用途
2.5.2 汎用TLD generic top-level domain (gTLD)

このドメインは com, info, net, org があり世界中の誰でも取得できます。用途は決められたものですが厳密ではありません。

1 com commercial 商業用途、厳密ではない
2 info information 情報サイトの用途、厳密ではない
3 net network 当初はネットワーク基盤の用途、今は制限なし
4 org organization 当初は他のgTLDに該当しない団体の用途、今は制限なし
IANAのリスト
gTLDは、IANAのリストには全部で1238個あります。
https://www.iana.org/domains/root/db
2.5.3 制限付き汎用TLD restricted generic top-level domain (grTLD)

このドメインは biz, name, pro があります。

1 biz business ビジネスの用途
2 name name 個人の名前、ニックネームなどの用途
3 pro professional 特定の職業の用途
2.5.4 スポンサー提供TLD sponsored top-level domain (sTLD)

ICANNの下部組織であるIANA (Internet Assigned Numbers Authority)が管理するドメインです。このドメインは edu, gov, int, mil があります。

1 edu education 主に米国国内の教育機関
2 gov government 米国の連邦政府と地方行政機関
3 int international 国際機関や条約関連
4 mil military 米国防総省
IANAのリスト
sTLDは、IANAのリストには全部で14個あります。
https://www.iana.org/domains/root/db
2.5.5 国別TLD country code top-level domain (ccTLD)

国名コードに基づくドメインで、200を超える国や地域があります。

普通はその国や地域の居住者でなければ取得することはできませんが、なかには海外からでも取得できるものが存在します。目的は外貨を得るためです。

すぐ後に続くところでいくつかの例を表記します。

IANAのリスト
ccTLDは、IANAのリストには全部で312個あります。
https://www.iana.org/domains/root/db
2.5.6 試験用TLD test top-level domain (tTLD)

試験用の目的に使われるドメインです。

たとえば “テスト” ドメインは日本語のカタカナで表記する試験用です。他には中国語、アラビア語のものなどが存在します。

IANAのリスト
tTLDは、IANAのリストには全部で11個あります。
https://www.iana.org/domains/root/db

2.6 国名や地域を表すドメインの例 Examples of domains identify country names and regions

日本国内に多い”jp”は、国名や地域を表すドメイン ccTLD: country code top-level domain です。

ccTLDは数多く存在し抜粋した一部を次に紹介します。ドメイン名はすべて2文字で表します。

国別のトップレベル・ドメインは次のサイトで閲覧できます。
 https://ja.wikipedia.org/wiki/国別コードトップレベルドメイン

DNSコンテンツサーバについて、206の国ごとにまとめた情報は次のサイトで閲覧できます。
 https://public-dns.info

サイトには「DNS Server」の表示がありますが、この記事では混乱を避けるためなるべく「DNSコンテンツサーバ DNS Contents Server」で統一しました。

注1 DN: ドメイン名 Domain Name、#DC: DNSコンテンツサーバの数 Number of DNS Contents Server
注2 「英語の正式国名」で、国名を表す名称が最後の場合は先頭に移しカンマで区切りました。国名表記記載例一覧を参照し作成。
注3 南極大陸のDNSコンテンツサーバは米国内に設置してあります。
注4 Public DNS Server Listで表示するDNSコンテンツサーバの台数は稼働中の機器のみですが、ここにはすべてを含めました。

DN 英語の正式国名 日本語の正式国名 #DC
ae Arab Emirates, United アラブ首長国連邦 50
am Armenia, Republic of アルメニア共和国 23
aq (South Pole) (南極大陸) 2
au Australia, Commonwealth of オーストラリア連邦 230
bd Bangladesh, People’s Republic of バングラデシュ人民共和国 78
be Belgium, Kingdom of ベルギー王国 61
bg Bulgaria, Republic of ブルガリア共和国 166
bh Bahrain, Kingdom of バーレーン王国 40
bw Botswana, Republic of ボツワナ共和国 10
cd Congo, Democratic Republic of the コンゴ民主共和国 不明
cg Congo, Republic of the コンゴ共和国 不明
ci Cote d’Ivoire, Republic of コートジボワール共和国 4
cn China, People’s Republic of 中華人民共和国 100
de Germany, Federal Republic of ドイツ連邦共和国 370
es Spain スペイン 140
fr French Republic フランス共和国 441
gh Ghana, Republic of ガーナ共和国 11
gn Guinea, Republic of ギニア共和国 5
il Israel, State of イスラエル国 100
in India インド 233
iq Republic of Iraq イラク共和国 36
ir Iran, Islamic Republic of イラン・イスラム共和国 179
it Italy, Republic of イタリア共和国 311
jp Japan 日本国 713
kp (North Korea= Korea, Democratic People’s Republic of ) (北朝鮮= 朝鮮民主主義人民共和国) 2
kr Korea, Republic of 大韓民国 1738
mc Monaco, Principality of モナコ公国 3
mn Mongolia モンゴル国 11
ph Philippines, Republic of the フィリピン共和国 226
th Thailand, Kingdom of タイ王国 100
tr Turkey, Republic of トルコ共和国 134
tw Taiwan 台湾 1152
uk United Kingdom of Great Britain and Northern Ireland 英国 グレートブリテン及び北アイルランド連合王国 479
vn Viet Nam, Socialist Republic of ベトナム社会主義共和国 94
us United States of America アメリカ合衆国 2216
za South Africa, Republic of 南アフリカ共和国 52

3.0 2種類のDNSサーバ Two kind of DNS servers

DNS (Domain Name System)はネットワーク上でドメイン名を参照し、通信に必用なIPアドレスなどの情報を提供する仕組みを備えたシステムです。

DNSサーバはタイトルにもあるように2種類ありますが、それぞれ全く異なる働きをします。2種類を一括りに「DNSサーバ」と呼ぶのは不適切で、理解を妨げるだけでなく誤解を招く恐れがあります。

3.1 2種類のDNSサーバの異なる機能 Different functions of two kind of DNS servers

DNSサーバには次の2種類が存在します。

1 DNSコンテンツサーバ DNS Contents Server
2 DNSキャッシュサーバ DNS Caching Server

それぞれの役割について説明します。

DNSコンテンツサーバは、ルートドメインとその下に階層構造を構成します。自らが情報を管理するゾーン(ドメイン名空間)において、DNSキャッシュサーバからの問い合わせに応答します。

「トップレベル・ドメインの例」で解説したようにここだけで1500を超えるドメインのサーバが存在します。(実際には信頼度を上げるため冗長化し、また負荷分散の目的で一次サーバと二次サーバに分けますから、この数倍の装置があるはずです。)

ルート・コンテンツサーバについては、すぐ下の「負荷の集中と分散」で説明しますが929台が稼働中です。

DNSキャッシュサーバは、多くはISP (Internet Service Provider)などに設置してあるサーバです。クライアント・コンピュータからの問い合わせに対し、DNSコンテンツサーバへ必要な問い合わせを行い、結果を依頼元に返します。

通信量を減らす目的で結果を再利用できるように、一定期間キャッシュ領域に保存します。この仕組により、問い合わせ回数は劇的に減りインターネットのトラフィックを大きく減らす効果があります。

DNSを実現するコンピュータ・プログラム
DNSのもっとも主要なソフトウェアの一つであるBINDは、上記の2種類のサーバ・アプリケーションを兼用できる機能を備えます。

この特徴は大きな利点ではあるものの、混乱を招き理解を阻害する原因でもあります。

Fig.09 2種類のDNSサーバ Two kind of DNS servers
Fig.09 Two kind of DNS servers
Fig.09 Two kind of DNS servers
DNSキャッシュサーバに関係する設定を一度は行ったことがあるかもしれません。
TCP/IPの環境設定にある「DNSサーバ」です。

2種類のDNSサーバの機能について、表にまとめました。

2種類のDNSサーバの異なる機能
Different functions of two kind of DNS servers
DNSコンテンツサーバ DNSキャッシュサーバ
機能 ドメイン名を管理する ドメイン名を検索する
対象 インターネット上のDNS
キャッシュサーバ
ISPや組織の利用者
範囲 インターネット全体 ISPや組織の利用者
ISP: Internet Service Provider
インターネット接続事業者は、インターネットへの接続を契約者に提供する事業者です。

自社のインターネット・バックボーンを運用するところや、大手の通信サービスを借り受け独自ブランドで再販する会社もあります。

DNSコンテンツサーバの数は膨大 tremendous number of DNS Contents Servers
今や全世界では数万台のDNSコンテンツサーバが稼働中です。なぜこんなに多いのか、その理由は、インターネット上のwebサーバが世界中で膨大な数に達するためです。
2018年12月初めの時点で、その台数は18,586です。
206の国ごとにまとめた情報は、次のサイトで閲覧することができます。
Public DNS Server List
すべての情報を1台、またはわずかな数のDNSコンテンツサーバに記録するのは、賢い方法とは言えません。仮にそれが可能でも、処理性能やトラフィックの集中などの様々な事情を考慮すると実際には使えないことはすぐにわかります。そこで、インターネット上のDNSコンテンツサーバを階層化して構成し、それぞれ個々の担当するネットワーク領域(ゾーン zone)の情報だけを記録する方法がとられます。
クライアント・コンピュータからDNSキャッシュサーバに問い合わせが発生すると、該当するwebサーバの情報がそこに存在しない場合は、自動でインターネットのDNSコンテンツサーバに問い合わせる仕組みがあります。
負荷の集中と分散 Load Concentration and Distribution
DNSでは、ルートに近いDNSコンテンツサーバほど負荷が集中します。たとえば”.com”サーバが停止すると、そこにつながる下位のドメイン名はすべて参照することができなくなります。

そこで、サーバを複数に分散し冗長化することが行われます。一次サーバ (primary server)から他の複数の二次サーバ (secondary server)にコピーし、すべてのサーバが同じデータを保ちます。この処理をDNSゾーン転送 (DNS zone transfer)と言います。当該サーバを外から見たとき、一次サーバと複数の二次サーバは全体で一つに見えます。(IPアドレスを指定したときに、一台に見えるという意味です。)この仕組はIP Anycastと呼ぶ技術で実現しています。

2012年8月の時点で、340台のルート・コンテンツサーバ、23台のJPコンテンツサーバが世界中で稼働中でしたが、2018年12月14日の時点では、ルート・コンテンツサーバは929台に増えました。

ルート・コンテンツサーバの場所と台数を閲覧できます。
http://www.root-servers.org

3.2 DNSサーバの用語に関して About Terms of DNS Servers

用語に関して、webサイトや資料によりいくつかの呼び方もありますので整理しておきます。

DNSサーバの用語 Terms of DNS Servers
# この記事で使用 他のwebサイトや資料
1 DNSクライアント・アプリケーションプログラム DNS Client Application Program スタブリゾルバ stub resolverなど
2 DNSコンテンツサーバ
DNS Contents Server
権威DNSサーバ authoritative DNS server, 権威ネームサーバ authoritative name server, ゾーンサーバ zone server など
3 DNSキャッシュサーバ
DNS Caching Server
caching name server, フルリゾルバ full resolver, フルサービスリゾルバ full service resolver, 参照サーバなど

3.3 分散型データベース Distributed Data Base System

DNSサーバは、分散型データベースの一つのノードにおいて機能します。

Fig.10 分散型データベースの特徴 Features of Distributed Data Base System
Fig.10 Database
Fig.10 Database
DNSを実現する分散型データベースは、ゾーン(ドメイン名空間)ごとの情報を持てばいいことから、1台のサーバが保有する情報量を劇的に低減します。
DNS (Domain Name System)におけるゾーン
DNS (Domain Name System)は階層構造により構成し、ドメイン名を管理します。すべてのドメイン名空間 (Domain Name Space) は、ルートを起点にした全体の木構造のことです。ゾーン (zone) は特定のドメイン内の一部を指します。
ゾーン情報は、人の読めるテキストファイル形式やリレーショナル・データベース(RDB: Relational Data Base)の形式などにより管理します。この情報のまとまりである単位のことをリソースレコード (resource record)と呼びます。
DNSコンテンツサーバは、ゾーン情報を記録したファイルを読み、記述した内容に基づきDNSキャッシュサーバの問い合わせに応答します。
ゾーンの例
1つのゾーンは、特定のドメイン名とそのサブドメイン名の情報を含みます。
例えば”example.net”ゾーンは、www.example.net, mail.example.net などの枝に分かれるサブドメインの情報を含みます。
ARPANETのデータベース
ARPANETは、米国に実在したインターネットの起源である世界初のパケット通信ネットワークです。いくつもの大学や研究機関をつないだプロジェクトでした。

DNSができる以前の1980年代の運営方法は、一つのデータベースをすべてのコンピュータが共有するものでした。HOSTS.TXTファイルに情報を保存します。

現在でもHOSTS.TXTのなごりは、いくつか残っています。

機器の台数が少ないうちは機能しますが、現在の世界中に広がった膨大な量の台数では、もはやこの方法は使えません。

その理由は、機器を登録し抹消するたびに、巨大なファイルをすべての機器がいっせいに取得しなくてはなりません。少なくとも数億台の、不必用な情報を記録し取得するのは無駄で、この情報だけで通信量は莫大です。ディスクの容量とネットワークの帯域幅を消費します。まともに機能しないであろうことはすぐわかります。

4.0 DNSはどのように働くか? How does DNS work?

DNS (Dmain Name System)はインターネットのように巨大なネットワークでは非常に重要な働きをするもので、この仕組がなければうまく機能しません。

利用者がwebブラウザにURLを入力すると、閲覧しようとするwebサーバの情報について、クライアント・コンピュータからISP内に設置したDNSキャッシュサーバへ向けて問い合わせを送信します。

すでに記したように、ユーザーが求めるwebサーバの情報(IPアドレス)を自動で他のDNSコンテンツサーバに問い合わせる仕組みがあります。

ドメイン名の解決処理 Domain name resolution
実際にはDNSキャッシュサーバへ問い合わせる前に、まずクライアント・コンピュータ内に求める情報が存在するかどうかをチェックします。

この一連の処理は「ドメイン名の解決 Domain name resolution」です。

詳しい手順は「webページを閲覧するとき内部では何が起こる? What happens internally when browsing an web page?」のところで説明します。

4.1 DNSコンテンツサーバの階層 Hierarchy of DNS Contents Servers

ルート・コンテンツサーバは全世界で13のIPアドレスが存在します。ルート・コンテンツサーバは非常に重要なため、もしすべてに著しい障害が起こるとインターネット全体は機能不全に陥ります。

ルート・コンテンツサーバは負荷の集中を防ぐ目的で分散処理を行うため13台ではなくそれぞれ複数のサーバで構成し、実際には13クラスタ(cluster 集団)です。

それぞれ複数のサーバにより1クラスタを構成しますが、複数の国に分散したものを一つのクラスタに見せる機能があります。

Fig.11 ルート・コンテンツサーバ Root Servers
Fig.11 Root Servers
Fig.11 Root Servers
ルート・コンテンツサーバは13クラスタあります。

Anycastアドレッシング技術により一つのクラスタ全体は1台の装置に見えます。

DNSルート・コンテンツサーバの一覧です。クラスタごとにAからMの名前が付きます。

DNSルート・コンテンツサーバ DNS Root Contents Servers
ラベル Label 管理者 Administrator
A VeriSign, Inc.
B University of Southern California (ISI)
C Cogent Communications
D University of Maryland
E NASA (Ames Research Center)
F Internet Systems Consortium, Inc.
G US Department of Defense (NIC)
H US Army (Research Lab)
I Netnod
J VeriSign, Inc.
K RIPE NCC
L ICANN
M WIDE Project
アジア太平洋地域のルート・コンテンツサーバ
次のサイトの地図で場所を確認できます。
https://web.archive.org/web/20051229123012/http://www.apnic.net/services/rootserver/
全世界のルート・コンテンツサーバ
次のサイトの地図で場所を確認できます。
https://www.google.com/maps/d/viewer?mid=1LcHEpzl-7RzziWzDa4h3BxJcbEo
DNS ルート・コンテンツサーバの負荷 Load of DNS Root Servers
ICANNの資料によると1秒間の平均で3,000クエリの問い合わせがあります。この値は13クラスタ全体なのか、1クラスタあたりの値かは記載がなく不明です。
ルート・コンテンツサーバはかつて悪意のある者からDDoS攻撃を受けましたが、このときの経験値では毎秒50,000クエリまでは処理できたことがわかっています。制限値はDNSプロトコルによるものではなく、ネットワークの帯域幅にあります。

4.2 webページを閲覧するとき内部では何が起こる? What happens internally when browsing an web page?

webブラウザの利用者がURLの窓に入力すると、次の事柄が発生します。

利用者が入力を終えてリターンキーを押すと処理を開始します。この時点から必用なIPアドレスを得るまでの時間は、文章は長いですが最後の処理まで行ってもほんの一瞬のできごとです。

“maps.google.com”を入力する例で、IPアドレスを探す手順は次のとおりです。

  1. 利用者はブラウザのURLに “maps.google.com”を入力しリターンキーを押す。
  2. 該当するURLのDNSレコードは、ブラウザのキャッシュにあるかをチェックする。
    Yes→ そのIPアドレスを取得し、ここで終わり。
    No → 次へ
  3. OS が保持するキャッシュ中にDNSレコードがあるかをチェックする。
    Yes→ そのIPアドレスを取得し、ここで終わり。
    No → 次へ
  4. ルータが保持するキャッシュ中にDNSレコードがあるかをチェックする。
    Yes→ そのIPアドレスを取得し、ここで終わり。
    No → 次へ
  5. ISP のDNSキャッシュサーバが保持するキャッシュ中にDNSレコードがあるかをチェックする。
    Yes→ そのIPアドレスを取得し、ここで終わり。
    No → 次へ

ここまで来ると、DNSキャッシュサーバはDNSコンテンツサーバ宛にDNSクエリを発行し、IPアドレスの探索を開始します。

  1. DNSキャッシュサーバは、DNSルート・コンテンツサーバへ問い合わせる
  2. DNSルート・コンテンツサーバは、”.com”コンテンツサーバへリダイレクト(redirect)する
  3. “.com”コンテンツサーバは、”google.com”コンテンツサーバへリダイレクトする
  4. “google.com”コンテンツサーバは、”maps.google.com”のDNSレコード内にあるIPアドレスを見つける。DNSキャッシュサーバへ返送し利用者のブラウザへ届く

ここまで来て、探し求めた必用なIPアドレスを見つけることができました。電話にたとえるなら、電話帳から電話番号を見つけた状況と同じです。

ここからは、webブラウザにwebサイトの表示を行うまでの流れを説明します。

  1. 必用なIPアドレスが見つかると、ブラウザはインターネット・プロトコル (Internet Protocol)によりwebサーバとの接続 (TCP connection) を開始する。
  2. クライアント側はSYNパケットをサーバ(この場合は”maps.google.com”)へ送出し新しい接続ができるかどうかを問い合わせる。
  3. サーバ側で空きポートがあればSYN/ACKパケットを送出し新しい接続を開始する。
  4. クライアント側はSYN/ACKパケットを受信しACKパケットを送出する。この状態でTCP接続を確立する。
  5. クライアント側から該当するページの読み出しを要求し、受信したサーバは内容を送出する。
    用語の説明
用語/省略語 用語/意味
ブラウザ Webブラウザ Web Browser
OS Operating System コンピュータを動かす基本ソフトウェア。ユーザに最も近い例は、画面の表示はもとよりマウスポインタが動くのはOSの働きによる。
ISP Internet Service Provider 通信接続事業者
キャッシュ cache 情報を一時記録する領域やデバイス
ルータ router 通信経路を制御し切り替える装置
リダイレクト redirect webサイトを閲覧中に一つのwebページから自動で他のwebページに転送する動作のこと。実現する方法は何種類かある。
IP Internet Protocol インターネットにおいて必須の役割を担うTCPの下位に位置する通信プロトコル。
TCP Transmission Control Protocol インターネットにおいて必須の役割を担うIPの上位に位置する通信プロトコル。伝送誤りの訂正機能を備える。
空きポート ここではハードウェアのことではなく、プログラムのポート(入出力の末端)のこと。
SYN/ACKパケット ひとまとまりの通信の最後に使う信号の一種。SYNパケットを受信した側はこのパケットを送出する。SYN: synchronize, ACK: acknowledge

4.3 再帰問い合わせと反復問い合わせ Recursive queries and Iterative queries

DNSではドメイン名からIPアドレスを調べる(名前解決 name resolution)問い合わせ(クエリ query)を行なう方法は2種類存在します。

1 再帰問い合わせ (Recursive queries)
2 反復(非再帰)問い合わせ (Iterative queries)

ここで注意すべきは、利用者側(クライアント・コンピュータ)がどちらかを選択するのではない点です。

いくつかの資料やwebサイトを閲覧すると、名前解決の問い合わせ方法は2種類あることを書いただけで使い方までは触れておらず、使用方法を理解していないのではと思われるものがあります。

再帰問い合わせは、クライアントからDNSキャッシュサーバに対して行います。
反復(非再帰)問い合わせは、DNSキャッシュサーバからDNSコンテンツサーバに対して行います。

つまり、DNSキャッシュサーバはクライアントからの再帰問い合わせを受信し、DNSコンテンツサーバへ非再帰(繰り返し)による問い合わせ処理を実行します。

このことを図解します。

Fig.12 再帰問い合わせと反復問い合わせ
Recursive queries and Iterative queries
Fig.12 Two type queries
Fig.12 Two type queries

再帰問い合わせ(再帰クエリ)と反復問い合わせ(反復クエリ)について、表にまとめました。

再帰クエリと反復クエリ Recursive Query and Iterative Query
再帰クエリ
Recursive Query
反復クエリ
Iterative Query
機能
Function
名前解決を要求する Require name resolution 名前解決を実行する
Run name resolution
実行する時機
When to run
クライアントが発行時 When the client needs it クライアントの要求を受信時 When receiving a request from the client
問い合わせ元 Inquirer DNSクライアント
DNS Client
DNSキャッシュサーバ DNS Caching Server
問い合わせ先 Destination DNSキャッシュサーバ DNS Caching Server DNSコンテンツサーバ DNS Contents Server

4.4 IPアドレスのキャッシュ IP address Caching

インターネット上には膨大な数のクライアントが存在しDNSの通信量も甚大です。通信量を減らす目的で、クライアントやDNSキャッシュサーバなどの場所には、過去に問い合わせたドメイン名やIPアドレスなどの情報をキャッシュ領域に保存します。

キャッシュに保存した情報を参照する様子は、「webページを閲覧するとき内部では何が起こる? What happens internally when browsing an web page?」で説明しました。

DNSキャッシュサーバはクライアントから問い合わせを受けると、キャッシュ (cache) 内に情報がある場合は、自らがクライアントへ応答し他のコンテンツサーバへ問い合わる動作は行いません。
キャッシュの情報を利用する場合は、unauthoritativeの印を付けて返信します。

unauthoritativeの印について
実際には、DNSメッセージ内の特定のビットを1にセットします。

5.0 サブドメインとサブディレクトリ subdomain and subdirectory

5.1 サブドメインとサブディレクトリの違い Difference between subdomain and subdirectory

どちらの形式にするべきかについて、検索エンジンからどんな扱いを受けるのかが気になるのではと思います。

SEO (Search Engine Optimization) を行い検索結果で上位表示を獲得するには、サイトの構造などを適切にしておくことが必用です。

サブドメインとサブディレクトリ(サブフォルダ)の違いについては、検索エンジンからの扱いは特に大きく異なる点はないようです。次に記したように、サイトの特徴を考えて構成すればいいと考えられます。

5.2 サブドメインか、またはサブディレクトリか? Should be used a subdomain, or a subdirectory is much better?

サブドメインか、またはサブディレクトリ(サブフォルダ)か、どちらにするべきかは時に悩ましき問題です。

再び登場しますが、サブドメイン形式がふさわしいと考えられるYahooジャパンの例です。

サブドメイン形式です。
 https://news.yahoo.co.jp
 https://shopping.yahoo.co.jp
 https://weather.yahoo.co.jp/weather/

yahoo.co.jpの枝に三つのサイトが位置します。実際のYahooジャパンのサイトには、たくさんのサブドメインがあります。

それぞれのサイトはすべてyahooの名前が付きますが、性質や目的は異なります。この場合はサブドメインで分けるのが自然と言われています。

サブディレクトリ形式がふさわしいと考えられる例で、価格コムのサイトです。

 http://kakaku.com/camera/
 http://kakaku.com/kaden/
 http://kakaku.com/keitai/

ここに書いたのは三つだけですが、実際の価格コムのサイトのドメインにはたくさんの数のサイトがあります。

こちらのサイトもYahooジャパンと同じように、一つのドメイン “kakaku” の基にいくつもの数のサイトがある点は同じです。

ただし、どのサイトも価格の比較は同じテーマですが、それぞれ異なる商品カテゴリを表すページである点が、Yahooジャパンのサイトとは異なります。

この場合はサブディレクトリで分けるのが自然と言われています。

サブドメインとサブディレクトリのどちらにするかのポイントは、サイトのテーマが同じかどうかの点です。

6.0 ドメインに関連する用語 Terms related to domain

今の時代はインターネットが無いことは考えられないですが、ドメイン名は世界中で利用するためどこかで管理することが必用です。

たとえば、電波は周波数領域が限られており誰でも無制限に送信することはできません。ドメイン名は電波のような資源と似たところがあります。

ここではドメイン名を誰がどのように管理するのか説明します。

6.1 レジストリ、レジストラ Registry, Registrar

レジストリ (Registry)は、次の項目のレジストラの上位に位置します。国家や地域において、IPアドレスを配分し管理する組織で、ドメイン名の利用者がレジストラに登録した情報を管理する団体です。

レジストラ (Registrar)は、利用者がドメイン名を登録申請するとき、申し込みを行うドメイン登録業者のことです。

レジストラには、インターネットの接続サービスを行うISP (Internet Service Provider)や、webサーバのレンタル業務を行うホスティング事業者、ドメイン名の登録を専門に行う事業者などがあります。

6.2 HTTP, HTTPS

“https”や”http”はHypertext Transfer Protocolの意味でコンテンツの送受信に使う通信プロトコルです。概略は次に説明します。

“https”の後に続く”://”の部分は、仕様上の規格で決まった文字列です。

webブラウザで、どこかのサイトを閲覧する際に URL(またはURI)を入力する必用があります。”http”や”https//” は URL の一部で、サイトにアクセスする方法を表します。URL のことをアドレスと呼ぶのは正しくないのですが、その理由は URLにはアクセス方法とサイトのアドレスを含むためです。

6.3 HTTP: Hypertext Transfer Protocol

コンテンツの送受信に使う通信プロトコルです。通信を確実に行うための手順をまとめたもので、電話で「もしもし」に対する応答メッセージ等の組合わせに相当します。

6.4 HTTPS: Hypertext Transfer Protocol Secure

HTTPSは厳密にはプロトコルではなく、SSL/TLSプロトコルを利用することにより通信を安全に行うためのものです。

httpsのためのSSL化について
「httpsを実現するSSL化は必須なのだろうか」という疑問や議論があります。金融機関やECサイト(Electronic Commerce Site) でクレジットカードの情報を入力する所では常識で、当たり前です。

もしもカードの番号を盗まれ悪用されると危険だからです。暗号化した情報を盗むことができても、暗号を解かない限り盗んだ情報には価値がないのですが、暗号を解くことはそれほど簡単なことではありません。

クレジットカードの情報を入力しないサイトでも、メールアドレスを入力したりあるいはクッキー (Cookie) の情報も扱うため必須であるとの意見が強くあります。

当サイトはまだ SSL化しておらず計画の段階ですが、完了するまで少なくない作業量がありますSSL化を完了済みです。条件が整わないときは、サーバを変更しサイトを引っ越しすることも必用です。

6.5 ftp, telnet

URLで指定するhttp 以外の通信プロトコルは ftpやTelnet があります。

ftp は file transfer protocol で、HTML サイトのコンテンツを転送するときはほぼ必須です。

コンテンツをアップロード (up load) する方法は、サーバの設定機能を提供するサイトに備わった
コンソール画面を利用すれば、ftpでなくてもできます。Wordpress などの CMS (Contents Management System)を利用する環境もftpは不要です。

Telnetはホストコンピュータにログインし操作する通信プロトコルです。RFC854の規定があります。

6.6 URL: Uniform Resource Locator

インターネット上にある情報にアクセスするための手順(プロトコル)と所在(アドレス)を記述します。規格で定められたものです。

6.7 URI: Uniform Resource Identifier

URL の代わりに URI の呼び方もあります。URI は URL を拡張したものでURN (Uniform Resource Name) を含みます。

URI, URN, URLの用語について、RFC3986とW3Cの注釈文書がこれらの指針です。

 RFC3986
 https://www.ietf.org/rfc/rfc3986.txt

 W3Cの注釈
 https://www.w3.org/TR/uri-clarification

6.8 ドメイン名空間、ゾーン Domain Name Space, Zone

DNS (Domain Name System)は階層構造により構成し、ドメイン名を管理します。すべてのドメイン名空間 (Domain Name Space) は、ルートを起点にした全体の木構造のことです。ゾーン (zone) は特定のドメイン内の一部を指します。

6.9 ホームページ home page

サイトの主ページのことをホームページ (home page)またはスタートページ (start page)と呼びます。またwebブラウザを起動したときに表示するページのことも意味します。「ホームページ」は日本国内ではwebサイトの意味で使われますが、本来の意味とは異なります。

6.10 ブログとサイト Blog and Site

HTMLソースコードで作ったページをサイト (site) と言い表し、無料/有料ブログや、独自ドメイン(次の項目で説明)とWordpress 等で作ったものをブログ (blog)と呼んだりしますが、ここでは両者の違いは問題にしません。

すべてのwebページは、利用者が意識するかしないかに関わらず例外なくHTMLで表現します。HTMLだけでは表現できないものもありますが、少なくともHTMLは必須です。Wordpress等のCMS (Contents Management System)なども例外ではなく、中身はHTMLが必用なことに変わりはありません。したがって、ここではすべてサイトとみなす扱いです。

サイトのページを表現するには複数の言語が必用なことがあります。HTML、CSS、Javascript、phpなどです。これらはすべてコンピュータ言語の一種です。HTMLはページの骨格を記述し、CSS (Cascading Style Sheet) は装飾のためのものです。Javascriptやphpはプログラム言語です。

まだ、この他にもCGI (Common Gateway Interface)と呼ぶブラウザから要求を出し、ウェブサーバがプログラムを実行する仕組みもあります。必用な理由は、HTMLによる静的な情報だけではプログラムの処理結果に基づいた動的な情報を提供することができないためです。CGIは、Perl、Python、Ruby、C、C++、Visual Basicなどの言語で記述します。

サイトのページを構成するためにHTMLが必須であることはすべてのwebページに共通です。webサーバに保存したHTML(場合によりCSSその他が必用)で記述したサイトを、利用者のクライアント・コンピュータが呼び出すとwebサーバはそのページのHTMLを送信します。利用者の手元の画面にはそのwebページを表示する仕組みです。

WordPressなどのCMSはこの部分の仕組みが大きく異なります。ごく普通のHTMLで記述したページは、webサーバのディスク内にそのままの情報が保存してあり、クライアントはこれを読み出して表示するだけです。Wordpressなどは、ページの情報はデータベースに保存してあり、読み出しの要求を受けると動的にページを生成(一種の描画)します。つまり、ページの情報はWordpressの内部にそのまま保存してある訳ではないということです。

CMSの種類はたくさんあります。そのなかでもWordpressは非常に有名で利用者の数も多いです。これ以外に知られたものはMovable Type、Drupal、Joomla、MODX、XOOPSなどです。CMSは世界中で、数百の種類が存在すると言われています。

6.11 独自ドメイン

独自ドメインは、ドメインの種類ではなく、特定の個人や団体などが取得した、専用で利用するドメイン名のことです。

これに対し、無料ブログサービスを利用する場合は、利用者は割り当てられたドメイン名を大勢の人数で共用します。

6.12 TCP/IPプロトコル TCP/IP Protocol

TCP: Transmission Control Protocol
IP: Internet Protocol

TCPは、ユーザプロセス(利用者が起動中のプログラム)のための高信頼度による全二重(同時双方向通信)のバイトストリーム(文字やバイナリデータの連なり、データが連続すること)を提供するコネクション志向のプロトコルです。

ユーザデータはパケットの単位にまとめて送受信を行います。

TCPは高信頼度
この特徴は、エラー訂正の機能によるものです。
IP
IPは、TCPプロトコルに対し、パケットの配送を提供するプロトコルです。
TCP/IPとOSI基本参照モデル
このモデルにおいて、ユーザプロセスは第5〜7層で、TCPは第4層、IPは第3層に位置します。
OSI基本参照モデルとは
通信ネットワークのアプリケーション層から物理層までを七つの階層に分けて表し、機能とプロトコルを規定し、異機種間の通信を容易にできるように考えたモデルです。

名前にある「参照」は「推奨」や「お手本」を意味します。OSIはOpen System Interconnect Modelの略で、特定のベンダに依存しないISOによる定義がなされたものです。

コネクション志向
通信を行う際に、通信セッションを確立した後やりとりを行う方式です。たとえば、Unixではソフトウェア・ソケットでつなぐことにより行いますが、socketシステムコール(OSの機能を呼び出す手続き)により末端を作成します。

「コネクション志向 connection oriented」の別名は「コネクション型」。

コネクション志向と対比するものは、「コネクションレス connectionless」。

UDPプロトコルは、コネクションレスのプロトコルで、通信セッションを確立せずにデータを宛先へそのまま送信します。

6.13 IPV4/IPV6 アドレス IPV4/IPV6 address

インターネットにつながるすべてのコンピュータは、インターネットプロトコル (IP: Internet Protocol)の通信規格に基づき通信を行います。それぞれのコンピュータには通信相手を特定するためのグローバルIPアドレスが必用です。

IPアドレスは、現在は二つのバージョンIPV4とIPV6 の規格で決められたアドレスが混在します。両者の最大の相違点はアドレスの桁数です。

IPV4アドレスは2進数の32桁で、アドレス総数は2の32乗個である約43億個です。この数は全世界の人工と比較するととても十分とは言えない大きさです。

一方で、IPV6アドレスは2進数の128桁で、アドレス総数は2の128乗個=約3.4×10の38乗個です。

これは非常に大きな数です。世界人口白書の予測では、2050年に世界の人口は93億人に達しますが、一人あたり約3.7×10の28乗個のIPアドレスを使える計算で、ほとんど無限に感じられる数です。この数の大きさはなかなか直感では認識できませんが、1兆(10の12乗)個の1兆倍より多いと表現すれば、その巨大さが伝わるでしょうか。

2の128乗=340,282,366,920,938,463,463,374,607,431,768,211,456

インターネットは、通信の内容をパケットの単位で扱います。IPV4では、オプションで 暗号技術を用いた通信を行うことができます。IPsec (Security Architecture for Internet Protocol)と呼ぶ通信プロトコルです。ただしオプションのため、相手の機能により使えないことがあります。IPV6では IPsec は標準機能です。

6.14 CGIとは? What is CGI?

CGIは、Common Gateway Interfaceのことを表しますが、一言で表現すれば、ウェブサーバ上で、「クライアントの要求するプログラムを実行する仕組み」のことです。

これだけでは分かりにくいですが、CGIを利用する例は、掲示板があります。

サーバの基本的な動作はクライアントが要求するwebページの内容を送信するだけです。ここで、CGIのような仕組みがなければ「webページ」に書かれた情報は、あらかじめ用意したものだけです。

掲示板は利用者が新たに投稿するので、「あらかじめ用意したもの」ではない掲示板に投稿した内容を表示することができません。掲示板を実現するCGIプログラムは、新たに投稿した内容をwebサーバで表示することができます。

CGIのような仕組みがあれば、はじめて掲示板を実現することができます。

webページを記述するには、まずHTML (Hyper Text Markup Language)やCSS (Cascading Style Sheet) で表現しますが、プログラムの機能はありません。CGIを実現するには何らかのコンピュータ言語で記述します。

もう一つの例は、アクセスカウンターがあります。アクセスカウンターは訪れた人の数を表示します。「訪れた人の数」は、掲示板に追加した内容と同じで、「あらかじめ用意したもの」ではありません。CGIプログラムを実行してはじめて訪れた人の数を表示することができます。

CGIを実現するプログラムは、C、C++、Perl、Visual Basicなどのコンピュータ言語で記述します。

7.0 ドメインの登録 Registration of a domain

ドメインを新たに取得するには、欲しいドメイン名を取り扱う業者に登録することが必用です。

7.1 ドメインを取得する方法 How to actually get a domain

ドメインを実際に取得するにはどうすればいいの?という疑問はありませんか?

ドメインを取り扱う業者のサイトの画面で、使用したいドメイン名が登録済みかどうかをチェックすることができます。未登録のドメイン名はお金を支払って登録することができます。

ドメインを使用したいときは、まずドメインの販売業者へ申請し取得します。当然ながら、通常はすでに存在するドメイン名を使用することはできません。

たとえば、当サイトはドメイン “123-info.net” を申請し取得しました。ここで、”.net” の部分はすでに存在するTLDで、”123-info”と”.net” の組み合わせを申請した訳です。

“.net” 以外には、”.com” や”.jp” など、この部分はすでに説明したように、その他にもたくさんのドメインが存在します。

国や地域別のTLDは、普通はその場所に居住しなければ取得することはできませんが、なかには海外からでも取得できるものが存在します。

中古ドメイン
存在するドメイン名を利用できる例外があります。使わない売りに出されたものを購入する場合です。中古ドメインは一度使用したもののことです。
ドメインの価値
中古ドメインはとても高額の値段が付いているものが存在します。かつて大量にアクセスを集めたサイトで使われたものは高値で取引されます。このようなドメインを使用し新たなサイトを作れば、再びアクセスを呼び込むことができると期待できます。

しかし一方では、過去に使われたサイトと新しいサイトの関連はないことがほとんどであり、そのような期待は意味がないという議論もあります。

7.2 サブドメインの作成方法 How to create a subdomain

サブドメインの取得については、こちらはドメイン業者への申請は必用なく、該当するドメインの利用者が自ら作成します。作成できるサブドメインの数の制限は特にありません。

サブドメインを追加する手順は、まず契約したドメインのサイトで管理画面を開きます。「サブドメイン追加」などのボタンやメニューがあるはずです。たとえば “example.com”を取得した後は、”site1.example.com”のように作成します。

7.3 日本語ドメインと国際化ドメイン名
 Japanese domain and IDN: Internationalized Domain Name

ドメイン名は、当初は英数字と記号であるハイフンのみでしたが、ひらがなや漢字などの国際文字を使用できるようになりました。

その仕組は、国際化ドメイン名 (IDN: Internationalized Domain Name) の技術を使うもので、具体的にはPunycodeによる文字符号を利用します。

日本語ドメイン名を利用するには、利用者側の環境(主にwebブラウザ)が国際化ドメイン名の機能を利用できることが必用です。ほとんどの環境にはこの機能が備わっています。

通常は、国際化ドメイン名、たとえば日本語では漢字やひらがなで普通に表記しますが、なかには偽の文字でURLを偽装した詐欺サイト(phishing site) に誘導し詐欺を働くものがあるようで、これを防ぐ目的で国際化表記せず、Punycode(「xn--」で始まる英数字とハイフン)で表記することもあるようです。

次のサイトは、日本語JPドメイン名を入力すると変換した結果を知ることができます。

日本語JPドメイン名のPunycode変換・逆変換
 https://punycode.jp

更新情報
2018-12-21 23:20
Fig.08で gTLD の一部に誤りがあり、画像を入れ替えました。

参考資料
Beginners guide to Doman Names
 domain-names-beginners-guide-06dec10-en.pdf
 ICANN 発行 日付不詳

The Domain Name System
 f24_dns.pdf
 Raj Jain 著 日付不詳 オハイオ州立大学 (The Ohio State University)

The Domain Name System
 www.potaroo.net/t4/pdf/devcon.pdf
 David Conrad 著 日付不詳 Nominum Inc.

DNS Domain Name System
 module19-dnsv2.pdf
 バージニア(州立)大学 発行 (University of Virginia)作成 日付不詳 

Introduction to the Domain Name System
 DNS_Guide_chapter_00.pdf
 Cisco社 発行 日付不詳

A Quick Introduction to the Domain Name System
 David Conrad 2000-01-17 Nominum Inc.

Wikipediaのサイト
 https://en.wikipedia.org/wiki/Domain_name
 https://en.wikipedia.org/wiki/.arpa
 https://en.wikipedia.org/wiki/.com
 https://ja.wikipedia.org/wiki/国別コードトップレベルドメイン
 など

国名表記記載例一覧
 https://boueki.nagoya-cci.or.jp/dl/Country_Mark.pdf

DNS入門
 20120831-DNS_Summer_Days_2012-DNSprimer-v1.2.pdf
 森下泰弘 著 2012-08-31 (株)日本レジストリサービス(JPRS)

30分で学ぶDNSの基礎の基礎
 dns_basics_in_30minutes.pdf
 森下泰弘 著 2014-09-27 (株)日本レジストリサービス(JPRS)

ドメイン名の市場と諸課題について
 2.pdf
 (株)日本レジストリサービス(JPRS) 発行 2013-09-10

web標準の教科書 XHTMLとCSSで作る”正しい”Webサイト
 益子貴寛 著 2005年 秀和システム 刊