SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for 4月 21st, 2009

[Web サーバー立ち上げ体験日記]動的 IP アドレスと Dynamic DNS でサーバーを公開

leave a comment

<[Web サーバー立ち上げ体験日記]SQL Server のデータを Reporting Serivces で表示のイメージ

ぼちぼちサーバーを公開するための投稿をしてみようかと
まずは動的 IP アドレスでと Dynamic DNS でサーバーを公開する方法についてまとめてみたいと思います。

通常の家庭のネットワークは以下のような構成になっていると思います。
# リモートデスクトップの時に使用した図を変更しました。
?
[一般的なネットワーク]
image

インターネットからの接続はプロバイダから割り当てられている [動的 IP] になります。
動的とついているようにこの IP は定期的に変化します。
# プロバイダによって変更されるタイミングは違うようですね。

このような環境でサーバーを公開する際に使用するのが Dynamic DNS になります。
IIS7.0 虎の巻にも書かれている内容ですね。

[Dynamic DNS による DNS 名の取得]

Dynamic DNS を使用するとインターネットからドメイン名 (engineer-memo.spaces.live.com のような名前) を使用して
動的 IP に対して接続できるようになります。

以下のような流れで接続がされます。

インターネット → Dynamic DNS で取得したドメイン名 → プロバイダの動的 IP → Web サーバー

国内では以下のような Dynamic DNS サービスが提供されています。
# 以下のサービスは無償て利用できます。

サービス提供元

URL

私的 Dynamic DNS

http://www.mydns.jp/

Dynamic DO!.jp

http://ddo.jp/

ieServer.Net

http://ieserver.net/

CyberGate

http://cybergate.planex.co.jp/ddns/

これらのサービスの提供元から DNS 名を取得します。

取得した DNS 名を使用すればインターネットからの接続名を固定することができます。
ただし、接続名を固定できても動的 IP を使用していることは変わりませんので、DNS 名と動的 IP アドレスの
関連付けをする必要があります。

[DNS名と動的 IP の関連付け]

インターネットからの接続口は Dynamic DNS で取得できましたが動的 IP と DNS 名を定期的に関連付けないと
外部からの接続を固定することができません。Dynamic DNS のサービス提供元の URL に定期的にログインすることにより現在の動的 IP と取得した DNS 名を
関連付けることができますが、動的 IP はいつ変更されるかわかりませんし自宅からサービス提供元の URL に
ログインして変更しないといけません。

定期的に変更される動的 IP と DNS 名を関連付ける時に便利なソフトが [DiCE] になります。
DiCE はフリーソフトとして公開されており、以下の URL から入手することができます。
DiCE Dynamic DNS Client
# 64ビットの Windows Web Server 2008 でも正常に動作しています。

このソフトをサーバーで起動しておくと定期的なタイミングでサービス提供元にログインし現在の動的 IP を通知、
動的 IP が変更されたタイミングで IP を通知といった設定をすることができます。

DiCE は以下の手順で設定することができます。

  1. ダウンロードしたファイルを実行します。
  2. [次へ] をクリックします。
    image
  3. [次へ] をクリックします。
    # 私は 64 ビットの環境を使用しているので [Program Files (x86)] にインストールしています。
    image
  4. [標準] を選択し、[次へ] をクリックします。
    image
  5. [インストール] をクリックしてインストールを開始します。
    image
  6. [完了] をクリックします。
    image

これで DiCE のインストールは完了です。
続いて DiCE を設定します。

  1. DiCE を起動します。
  2. [イベント] → [追加] をクリックします。
    image
  3. 使用している Dynamic DNS の情報を入力し、[保存] をクリックします。
    [サービス] は使用している Dynamic DNS のサービス提供元を選択します。

    [ホスト名] は Dynamic DNS で取得したドメイン名からドメイン部を省いたものを入力します。
    # engineer-memo.spaces.live.com であれば engineer-memo.spaces がホスト名になります。

    [ドメイン名] は取得したドメイン名のドメイン部をを入力します。
    # engineer-memo.spaces.live.com であれば spaces.live.com がドメイン名になります。

    [ユーザー名] [パスワード] はドメイン名を取得した際に作成したユーザー情報になります。

    [IP アドレス] は空白で問題ありません。
    # 動的 IP アドレスのため

    [スケジュール] は [周期的] で [1時間毎] か [IP アドレス変化時] が良いかと思います。
    周期的に更新していれば DiCE を起動していれば設定しているタイミングで情報が更新されますので。
    image

  4. 保存したイベントを右クリック → [今すぐ実行] をクリックして Dynamic DNS に IP アドレスを通知します。
  5. ステータスバーに以下のような表示がされればDNS 名が 動的 IP の内容で更新されています。
    image
  6. DNS の更新には少し時間がかかりますので、しばらく待ってからコマンドプロンプトで以下のコマンドを実行します。

    nslookup <ドメイン名>

    以下のような結果が取得でき、回答のIP アドレスが DiCE に表示された IP アドレスになっていれば正常に
    DNS の更新がされています。
    # DiCE の右上またはステータスバーに IP が表示されています。

    >nslookup engineer-memo.spaces.live.com
    サーバー:
    Address:? 172.0.0.1

    権限のない回答:
    名前:??? blu.pod1.services.spaces.live.com.nsatc.net
    Address:? 65.55.102.120
    Aliases:? engineer-memo.spaces.live.com

これで DNS 名と動的 IP の関連付けは完了です。
無償版の DiCE はサービスとして登録はできないのでサーバーを起動したタイミングで手動で起動しておく必要があります。
スタートメニューのスタートアップに登録するかシステム構成のスタートアップに登録しておくとログイン時に自動的に
起動されるので便利だと思います。

?

[スタートメニューのスタートアップ]
image

  1. [スタート] → [スタートアップ] を右クリック → [エクスプローラ] をクリック
    image
  2. 開いたエクスプローラに [スタート] → [Sarad Software] → [DiCE DynamicDNS Client] をコピーします。
    image
    image
  3. スタートアップに [Dice Dynamic DNS Client] が登録されます。
    image?

これでスタートアップに登録完了です。

[システム構成のスタートアップ]
image

  1. ファイル名を指定して実行から [regedit.exe] を実行します。
  2. [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRum] を開きます。
    image
  3. [新規作成] → [文字列] をクリックします。
    ?image
  4. [新しい値 #1] で [F2] をクリックして、名前を設定します。
    # 名前はスタートアップに表示するための任意のラベルになります。
    image image
  5. 設定した名前をダブルクリックして [値のデータ] に [dice.exe] のフルパスを指定します。
    image

これでシステム構成のスタートアップに登録完了です。

どちらのスタートアップの登録状況もファイル名を指定して実行 → [msconfig] を実行して [スタートアップ] から
確認することができます。
場所が [HKLM] で始まっているものがレジストリに登録したものです。
パス指定になっているのはスタートメニューに登録したものになります。
スタートメニューに登録したものに関しては作業をしたユーザーでログインしないと有効ではありませんが、
レジストリに登録したものは全ユーザーに対して適用されるといった違いがある程度ですのでどちらで登録しても
問題はありません。
image?

これで一度ログオフしてログインすると DiCE が起動してくると思います。
この状態では最大化された状態で DiCE が起動してきますので DiCE の [環境設定] → [オプション] から
[最小化で起動する] を有効にしておいたほうが良いかもしれません。
image?
最小化で起動するにすると通知領域に最小化された状態で起動します。
image

DiCE は常に起動した状態にしておく必要がありますのでサーバーを起動したら一度ログインし、ログインした後は
[ログオフ] はせずに作業を終了する場合は [コンピュータのロック] でログインした状態を維持するのが良いかと思います。
# タスクスケジューラで [コンピュータの起動時] をトリガとして DiCE を起動してもよいかも。

リモートデスクトップについて考える際にも記載しましたがルーター側のファイアウォールの設定があるかと思いますので、
ポート 80 に対してファイアウォールの設定を変更する必要があるかと思います。

[設定完了後のイメージ図]

image

ざっくりとですがこれで動的 IP アドレスでサーバーを公開する手順は完了です。
次は固定 IP と独自 DNS でサーバーを公開する手順をまとめてみたいと思います。

>[Web サーバー立ち上げ体験日記]固定 IP アドレスと独自ドメイン名でサーバーを公開

Written by Masayuki.Ozawa

4月 21st, 2009 at 3:35 pm