自宅サーバの概要


インターネットに接続される機器は、コンピュータをはじめPDAや携帯電話等、多種多様です。
これらの機器をインターネットに接続するには、接続する機器にIPアドレスを割り当てる必要があります。
IPアドレスとは、インターネット上の住所のようなもので、インターネットに繋がった機器を特定するために必ず必要です。

インターネットに接続する機器は、世界で唯一のIPアドレスを必要とします。
(現実社会でも、同じ住所が複数存在したら混乱するでしょう)
IPアドレスは、その数が限られているため、インターネットに接続される機器全てに固定的に割り当てるのは不可能な状況です。
IPアドレスの不足を補うためにプロバイダーは、インターネットに接続うを要求された機器のみにIPアドレスを割り当てるようにしています。

このように、プロバイダーは、あなたの機器にIPアドレスを動的に割り当てています。
ウェブの閲覧やメールを送受信する(クライアントとしての機能)と言った用途には、特に問題になることはありません。


しかし、サーバを構築するには困ったことになります。
前述したようにインターネットへ接続される機器は、世界で唯一のIPアドレスを持ちます。
インターネットでは、このIPアドレスを住所として、サーバの場所を探さなければならないからです。
サーバを公開するためには、固定IPを持ったコンピュータが必要です。
このような、要求に応えるために、大多数のプロバイダーでは、固定IPを割り当てるサービスを行っています。
世界に一つしかないIPアドレスを独占するのですから、当然、料金は高くなります。
そう、リッチな人は、迷うことなく固定IPのサービスを受けましょう。

しかし、しかし。
自宅からサーバを公開しようとする人は、殆どの場合、趣味としてのサーバの公開を考えていると思います。
であれば、潤沢な資金を期待できない人が大多数でしょう。
このサイトでは、私のような貧乏人のために、ダイナミックDNSと呼ばれる手法を使って自宅サーバ公開の実現を考えていきます。

自宅内ネットワークの構成


自宅サーバを導入した場合の我が家のネットワーク構成は下図のようになります。


各個人のPCに対してはDHCPによる、IPアドレスの自動割当機能を使用します。

DHCP(Dynamic Host Configuration Protocol)とは?

インターネットでは、ネットワークに接続される機器全てにIPアドレスの設定等、IP関連の設定を行う必要があります。
これらの設定は、複雑であるため間違いの元になりやすくなっています。
DHCPは、このIP設定を自動で行うための仕組みです


ただし、IPアドレスの自動割当を使うと、割り当てられるIPアドレスが変動します。
クライアントPC(筆者のPC等)では問題になりませんが、サーバのIPアドレスが固定されないのは問題です。
サーバにはDHCPを使わず固定のIPアドレスを割り当てます。

ルータの設定


上で示したネットワーク構成を少し単純化した図です。
この構成を実現するためのルータの設定を行います。



インターネットに機器を接続するには、IPアドレスを割り当てる必要があります。
プロバイダーから割り当てられるIPアドレスは1個です。
我が家では、複数の機器をインターネットに接続する必要があります。
それを可能にしているのがブロードバンドルータ(以下ルータと呼ぶ)です。

インターネットに接続できる機器は、プロバイダーから与えられたグローバルIPアドレスを持つ機器に限ります。
このプロバイダーから割り当てられたIPアドレスをグローバルIPアドレスと呼びます。
これに対して、各PCに割り当てられたIPアドレスをローカルIPアドレスと呼びます。
ローカルIPアドレスを持つ各PCは、IPマスカレードの機能でルータ通過時にグローバルIPアドレスに変換されます。

各PCに割り当てられるローカルIPアドレスは、ルータによって自動割当(DHCP)されるように設定してあります。
しかし、サーバには固定IPが必要なためルータの設定を次のようにし、サーバのローカルIPアドレスを192.168.0.140としました。

また、インターネットからのアクセスに対し、その情報をサーバ流す必要があるのでDMZの設定を下図のようにしています。

<株式会社メルコのルータ(BLR3-TX4)の場合の設定画面>




<DMZ>
ここのIPアドレスは、外部からのデータの転送先を示しています。
サーバは、クライアントと逆でまず外部からデータの要求が来ます。
ルータのデフォルトの設定では、このようなデータを通さない設定にしています(セキュリティの向上の為)。
しかし、サーバを構築するためには、この捨てられていたデータをサーバに渡す必要があります。
この外部からの要求データを、どのIPへ転送するかを設定するのがDMZです(本来のDMZの意味合いとちょっと違っています)。

図のように設定することで、ルータ宛のデータは、192.168.0.140へ転送されます。
外(グローバル)から見ると、ルータ宛にデータを送信した場合192.168.0.140のPCにデータを送信したように見えます。




<注意>
筆者のサーバでは、様々な実験を試みたいと考えています。
このために、DMZを利用して全てのデータを、サーバ(192.168.0.140)へ転送するように設定しました。
しかし、セキュリティの観点からは、非常に危険な状態です。
もし、あなたがセキュリティを重視するのであれば、ポートマッピングの機能を利用して、外部から利用できるサービスを制限すべきです。

<ポートマッピング>
グローバルから送られてくるデータをローカルに転送するとき、指定されたデータだけを転送する仕組みです。
例えばwebの要求だけローカルに転送するように設定すれば、外部からあなたのサーバを見るとwebのサービスだけを提供しているように見えます。
このような設定を行うと、あなたのサーバに対する他の要求(データ)は破棄されます。