1、動的IPでサーバをインターネットに公開するには?
ADSLやフレッツISDN、FTTHなどのサービスを受けると思うのが、「せっかく常時接続なのだから外部~アクセスできるようにしたい」ということだと思います。以下では、DHCPで割り振られる動的IP環境で、如何に自宅サーバを外部公開するか、その方法を述べていきたいと思います。
Dynamic DNSとは
一言で言うとサブドメインのIPマッピングを動的に行うサービスです。これだけでは簡単すぎるのでもう少し解説してみます。(1) 動的IPと静的IP
一般にISPに接続する機器には、接続の為にIPアドレスが割り振られます。そのうち
- 機器に固定的にIPアドレスを設定するタイプ = 静的IP
- DHCPにより接続のたびに異なったIPが動的に割り振られるタイプ = 動的IP
(2) DNSとは
ネットワーク上の機器は通信プロトコル(規約)に沿って通信を行います。そのプロトコルの中でインターネットにおけるデファクトスタンダードなのがTCP/IPと呼ばれるものです。
TCP/IPの世界では、ネットワーク上の機器はIPアドレスをもとに相手までの経路を決定し通信します。IPアドレスとは、「192.168.254.1」のような2進数32ビットの数(左の例は8ビットごとに10進数に置き換えています)です。一部例外を除き、インターネット上のホストに一意にIPアドレスを割り当て、原理的には必ずどの機器とも通信ができるということになっています。
しかしこれは、非常に人間が理解しにくいので分かりやすい名前を付けましょう、ということで「ホスト名」という概念が出てきます。ホスト名はIPアドレスと一対一対応で"www"とか"mail"の様に名前を付けることにしました。
ですが、インターネット上の機器にIPアドレスにしてもホスト名にしても「一意に」命名するなんて管理する人が面倒です。そこでドメインという概念をつくり階層的にIPアドレス及びホスト名を管理するようにしたのがDNSです。
例えば、"www.aaa.co.jp"というホスト名があった場合、
- jpの管理下にcoは属している。jpはcoは管理しているがaaaは管理範囲外で知らない。
- aaaはcoの管理下に属している。coはaaaは管理しているがwwwは管理範囲外で知らない。
- aaaはwwwを管理している。
(3) そしてDynamic DNSとは
上記のようなDNSは設定ファイルにこのホストはこのIPアドレスだよ、と対応づけを書いてあげることで実現しています。そしてこの設定ファイルは「手で」書いてあげる必要があります。これでは、DHCPにより動的に割り振られたIPアドレスをDNSに登録してあげることはできません。
そこで登場するのがDynamic DNS(以下、DDNS)です。クライアントは、DHCPサーバからIPアドレスの割り当てを受けたら、DDNS サーバに対して、ホスト名とIPアドレスを送信し「ホスト名 -> IPアドレス」の対応付けを更新するよう要求します。これにより動的に「ホスト名 -> IPアドレス」の対応付けが更新されるので、IPが動的に変わっても「同一のホスト名」でインターネットからそのクライアントにアクセス可能になります。
この説明は簡略な説明です。詳しく知りたい方は、RFC2136/RFC2137を見てください。2、Dynamic DNSサービスの申し込み方法は
Dynamic DNSサービスを提供している会社は検索エンジンで検索すると何社かあります。ここでは、私が使用しているDynamic DNS Network Servicesをご紹介します。
(1) Dynamic DNS Network Servicesにアクセス
アクセスするとこんなページ(以下すべて2001年3月15日現在)が表示されます。左図白枠で囲んである「dyndns.org」メニューの「Member's NIC」をクリックします。
(2) 新規メンバーの登録
するとこんなページが表示されます。ここで左図白枠で囲んである「New Account」をクリックします。するとサービス約款が表示されますので、とりあえず読んで、ページ一番下の"Agree"をクリックします
するとこんなページが表示されます。必要事項を記入し、「Create Account」ボタンを押すと、記入したメールアドレスにアカウントとパスワードが送られてきます。図2のページにログインのためのリンクがあるのでクリックするとログインダイアログボックスが表示されるので、送られてきたメールにあるユーザー名とパスワードを入力します。
(3) 新規ドメイン名登録
するとこんなページが表示されます。左図白枠で囲んである「Your Account」メニューの「Dynamic DNS」をクリックします。
ホスト名:まずテキストボックスに好きな文字列を入力し(例えば"sira")、それから後ろにつくドメイン名をリストから選択(例えば"dnsalias.com")します。ここで入力したホスト名と表示されているIPがマッピングされ、DNSサーバに登録されます。Enable Wildcardにチェックを入れると、(任意の名前)."上で入力したホスト名"(例えば"www.sira.dnsalias.com")でもインターネットからアクセスできるようになります。ここまで入力したら、「Add Host」ボタンを押します。10分後位にはどこからでも"www.sira.dnsalias.com"にアクセスできるようになります。
3、クライアント側設定
さて、ところでDynamicDNSの目玉は「動的にIPアドレス - ホスト名マッピングの変更ができる」事でした。そして、変更はクライアント側から要求することによって行われます。ということで、クライアント側には、そのためのソフトを導入しなくてはなりません(UNIXならシェルを書いて対応することも可能)。
(1) クライアントソフトの選択
http://support.dyndns.org/dyndns/clients/windows.shtmlにDynamic DNS Network Servicesが推奨(?)するクライアント一覧が載っています。この情報をもとに、私はKVTek's yiPostを選択しました。
(2) KVTek's yiPostのダウンロード
http://www.kvtek.com/yiPost.aspからダウンロードします。
(3) 解凍と設定 その1
圧縮ファイルを解凍すると、yipost.exe が出てきます。起動すると、以下のダイヤログが出てきますので、以下のように入力します。
| Service: | 新規ドメイン名登録で選んだドメイン名。私の場合は、dnsalias.comです。 | Username: | メンバー登録した名前です |
| Password: | メンバーログインで使うパスワードです。 |
| Hostname: | ダイナミックDNSとして登録したホスト名です。私の場合"sira"です。 |
(3) 解凍と設定 その2
自分のIPアドレスを調べて登録するという設定をします。
設定後「UpdateNow」のボタンを押すと、以下のようになり、登録を完了できます
2000年3月21日追加
DynamicDNS使用時は、TCPIPのプロパティの詳細設定の「この接続のアドレスをDNSに登録する」のチェックをオフにしなくてはいけないらしいです。Dynamic DNS Network ServiceのAdministratorからメールがきました。ここ参照。