2-3 : IPアドレス、ドメイン、DNS、Webサーバ

2019/05/29

概要

Webサイトを公開するためには、Webサイトを開発する以外にサーバー周りの設定が必要となります。
この章では、Webサイトに必要となるWebサーバー、WebサイトのURLとなるドメイン、ドメインの元のアドレスとなるIPアドレス、ドメインとIPアドレスを紐づけるDNSサーバーについて説明します。

Webの全体図

Webサイトが表示される仕組みを簡易的に表したものが次の図です。

図のように、www.test.com というWebサイトを表示したい場合、そのWebサイトデータを保持・管理しているサーバーに問い合わせる必要があります。
Webサーバーがインターネット上のどこかに公開されていても、そこにアクセスするための住所のようなものがないとアクセスできません。
この住所のような役割を果たすのが192.168.0.1 などのように数字と.で表されるIPアドレスです。

ブラウザでサーバーのIPアドレスを入力して実行すれば、Webサーバーにサイトデータの要求を行うことができます。

しかし一般的には企業のホームページやショッピングサイトなどがIPアドレスで公開されていることはありません。
IPアドレスは数字の羅列であるため、人間には覚えづらく数字が一つでも違うと異なるアドレスになってしまうため扱いや管理が難しいです。

この扱いにくさを解決するために、人間が認識しやすい単語などの文字列でIPアドレスを置き換えたのがドメインです。yahooであれば yahoo.com、 googleであれば google.co.jp などがドメインです。

このドメイン名はIPアドレスと紐づけられ、DNSサーバーというもので管理されています。
ブラウザではこのDNSサーバーにドメイン名に紐づいているIPアドレスを問い合わせ、Webサーバーにアクセスしています。

各要素をもう少し詳しく説明していきます。

IPアドレス

IPアドレスはネットワーク上のサーバーの場所を表す識別用番号です。住所のようなものなので、基本はIPが重複がないように設定しなければなりません。

IPアドレスの表記

IPアドレスの規格にはIPv4とIPv6があります。現在メインとして利用されているのはIPv4で、4つの数字を.で繋げたものです。
実際は2進数の32桁を8桁ずつに区切ったものを10進数に変換したものですが、なんとなくそういうものかと理解すれば大丈夫です。

IPv4の例: 123.223.0.1

IPv4は2進数で32桁なので2^32で、43億個がIPアドレスの限界です。そのため、IPv4の枯渇問題の解決としてIPv6が登場していますが、未だメインとして利用されているのはIPv4です。

グローバルIPとプライベートIP

IPはグローバルIPとプライベートIPに分かれます。
グローバルIPはインターネット上の機器に割り当てられる一意なIPアドレスで、インターネット接続を行うにはグローバルIPアドレスの割り当てが必要です。

プライベートIPは、企業や家庭のローカルエリアネットワークで利用されるIPアドレスです。同じローカルエリアネットワーク内に所属する機器同士の通信はできますが、他のローカルエリアネットワーク内の機器とは通信できません。
インターネットに接続する場合は、NATなどのアドレス変換技術を使ってISP(インターネットサービスプロバイダ)が管理しているグローバルIPを一時的に利用して通信しています。

IPアドレスの範囲

IPアドレスにはグローバルIPアドレスとプライベートIPアドレスで使える範囲が異なります。
IPアドレスの範囲は標準規格のようなもので定められていて、それぞれ使えるのは次の範囲です。

  • グローバルIPアドレス

    • 1.0.0.0 ~ 9.255.255.255
    • 11.0.0.0 ~ 126.255.255.255
    • 128.0.0.0 ~ 172.15.255.255
    • 172.32.0.0 ~ 191.255.255.255
    • 192.0.0.0 ~ 192.167.255.255
    • 192.169.0.0 ~ 223.255.255.255
  • プライベートIPアドレス

    • 10.0.0.0 〜 10.255.255.255
    • 172.16.0.0 〜 172.31.255.255
    • 192.168.0.0 〜 192.168.255.255

グローバルIPの割り当て

世界のグローバルIPの管理をしているのはICANN(Internet Corporation for Assigned Names and Numbers:アイキャン)という非営利団体で、さらにその下に地域毎に管理している組織があります。日本はAPNICの下のJPNICという組織が日本国内のIPアドレスを管理しています。

しかし、サーバーを立てて公開したいので、IPアドレスを発行して欲しいとJPNICに問い合わせてもダメです。JPNICの下にはJPNICの会員組織である企業・団体が、一般企業や一般ユーザーにIPアドレスの割り当てを行なっています。
JPNICの代表的な会員組織にはIIJやNTTコミュニケーションズや日本レジストリサービスなどがあります。

JPNICの会員組織はIPアドレスをさらに下位のプロバイダなどに割り振ったりもしています。

ドメイン

webサーバーなどを公開する場合はIPアドレスとほぼセットでドメインの登録があります。これも基本的には、ICANN、JPNICなどが管理しています。

ドメイン名の構造

ドメイン名はインターネット上のネットワークの名前であり、www.example.comの場合は、example.comがドメイン名です。wwwはホスト名です。

ドメインは、.comや.net、.jp、.netなどのトップレベルドメイン(TLDと略す)によって、利用目的や組織・個人を限定するものがあります。例えば .co.jpなどは日本の法人企業のみが登録でき、.intは国際機関が登録できます。
詳しくはJPNICの以下のページを参考にしてください。

ドメインの検索

自分がドメイン名を登録したい場合は、考えたドメイン名が既に誰かに取得・利用されているかどうかを事前に調べなければなりません。

単純に登録可能かのみを調べるためにはお名前.comのようなドメイン登録サービスで調べるのが登録料金なども一緒に調べられて手っ取り早いです。
ピンポイントでそのドメインをどこの誰が登録しているのか詳細情報を調べたい場合は、JPRS(日本レジストリサービス)などのwhoisサービスを利用すると調べることができます。
下図はyahoo.co.jpの登録情報を調べた結果です。

DNSサーバー

DNSはIPアドレスとドメイン名を紐づけ管理を行うシステムのことを指し、その機能を提供するサーバーをDNSサーバーと呼びます。
DNSサーバーは世界中に存在する膨大な数のドメイン名とIPアドレスを管理しなければならないため、それぞれの国・地域、組織で分散されたDNSサーバーが協調して名前解決を行うようになっています。
現在は、ドメイン登録サービスやレンタルサーバー企業がDNSサービスを提供していて、ドメイン登録すればセットでサービスを利用できるようになっている事が多いですが、少し前では企業や個人単位でDNSサーバーを立てて自分のサーバーを運用管理している事もよくありました。

DNSの設定

DNSの設定というと大体がレコード登録作業です。
これは、IPとドメイン名を紐づけるために行う作業で、例えばIPが123.100.x.1でドメイン名がwww.test.com の場合、Aレコードという種類のレコードを作成・登録します。これを登録する事で紐付けが行われwww.test.comとブラウザから実行すると123.100.x.1のサーバーにつながるようになります。

レコードの種類

設定内容ごとに、登録すべきレコードの種類が変わります。
以下はよく利用するレコードの種類です。

種類 説明
Aレコード (Addressレコード) IPとホスト名を紐付け定義するレコード
MXレコード メールサーバーのホスト名とIPを紐づけるレコード
CNAMEレコード 正規ホスト名に対する別名を定義するレコード。別ドメイン名に転送するときに利用します。

Webサーバー

Webサーバーは、Webサイトのデータをインターネットに公開するためのサーバーです。外からWebリクエストを受けると、リクエスト内容を処理して、要求元にデータを返します。

このWebサーバーを作るためには、OSにWebサーバーの機能をインストールします。
よく利用されている代表的なWebサーバーに次のものがあります。

  • Apache HTTP Server
  • IIS (Internet Information Services)
  • Nginx

Apacheは世界で最も利用されているサーバーで、Linux・UNIX系OSの他Windowsサーバーでも動きます。

IISはMicrosoft社が開発したWebサーバーでWindowsサーバーで稼働します。

Nginxは最近非常に人気が出てきているWebサーバーで、Webサーバーに持たせる機能を色々と削ぎ落とし、軽量でパフォーマンスが高いと言われています。

Webサーバーの設定

Webサーバーの設定で行うことは大きく次の2つがあります。

  • Webコンテンツの設定
  • Webサーバーの設定変更

一つ目は開発・作成したWebコンテンツをWebのルートディレクトリに配置する作業です。Webのルートディレクトリは CentOSのApacheでは /var/www/html に設定されており、そのディレクトリの直下にHTMLファイルをおけば <ドメイン名>/<ファイル名> という形式でブラウザからアクセスできます。

上の図では、www.test.com としか指定していないのに、index.htmlの内容を表示するとなっています。これはWebサーバーの設定でデフォルトで表示させるドキュメントをindex.htmlと指定しているからです。そのため、www.test.com/index.html と指定しても同じ結果が表示されます。この設定は変更する事も可能です。

他のWebサーバーでもindex.htmlは既定のドキュメントとして設定されていることが多いです。

2つ目に行うのはWebサーバー自体の機能設定です。
Webサーバーでは先ほどの仮想サーバーの例もそうですが、いくつか権限や認証などを細かく設定する事ができます。これらはWebの設定ファイルを書き換える事で変更できます。
Apacheではhttpd.confというファイルを変更します。

公開サーバーの設定として、AWS設定1で詳しい設定内容を記載しているので、そちらを実践してみてください。

Webサーバーと仮想サーバー

Webサーバーは一つのIP(ドメイン)に1つのWebサーバーという1:1の形で運用する事が多いですが、仮想サーバーという機能を利用する事で、複数のIPと1台のサーバー(IPごとに参照させるWeb内容を変える)、一つのIP、複数のドメイン、1台のサーバー(ドメインごとに参照させるWebを変える)などといった設定が可能です。