自宅サーバの公開時、自宅回線を使用する方法です。
一番一般的な方法ですね。固定グローバルIPアドレスの場合と
動的グローバルIPアドレスの場合とで実施しました。
以下の機器とソフトを使用しました。
※プロバイダによって転送量制限が有りますので、本格稼働の場合は注意。
WEBカメラや、ciscoのルータ、バッファローのPPTP VPN可能なルータなど、
ダイナミックDNSが使用できる機器はPCに限らず色々有りますね。
無料のダイナミックDNSはie-server、dyndns、no-ipなどが有ります。
また、有料のダイナミックDNSサービスであれば、動的グローバルIPアドレスと
独自ドメインの紐付けも可能です。
以下の2つのうちのいずれかかと思います。
今回は1の方法で行おうと思います。
ドメイン名とDNSサーバは契約しているエックスサーバを使用します。
また、Aレコード(DNSラウンドロビン含む)で自宅のWEBサーバに振り向ける方法と、
CNAMEで無料ダイナミックDNSサーバのドメインへ転送し自宅のWEBサーバに
振り向ける方法の両方を記載しました。
ルータやモデムに払い出されるIPアドレスがプライベートIPアドレスの場合マイIP等で
固定IPグローバルアドレスを取得しサーバ公開との流れになるかと思います。
マイIPの使用方法は以下のページに記載しました。
また、色々な国のグローバルIPアドレスを割り振ることができるサービスも有ります。
いろんな国のIPアドレスが使えるVPNサービス【セカイVPN】
本ページの目次
まず、プロバイダに、閉じているポート番号を問い合わせましょう。
プロバイダのホームページに掲載されていることも有ります。
セキュリティ対策の一環として、有名なワームが使用する送信先
ポート番号はプロバイダで閉じられる傾向に有ります。
また、大量のアクセスが有ると想定される場合はデータ転送量の制限
についても確認した方が良いですね。
さらに、モデムまたはルータに払い出されるIPアドレスがグローバルIPアドレス
であるかもモデムまたはルータにログインし確認しておきましょう。
はじめに、WindowsのIPアドレスはDHCP取得では無く固定で設定したほうが良いですね。
また、WEBサーバ用のソフトはWindows7のIISを使用しました。
まず、Windowsやウィルス対策ソフトのファイアウォールでtcp/80を開けます。
その後、IISをインストールするためコントロールパネルの「プログラムと機能」の
「Windowsの機能の有効化または無効化」をクリックします。
「インターネットインフォメーションサービス」を選択し「OK」をクリックし
インストールを完了します。
※インストールが終了すると、IISが自動起動しています。
Windowsサービスの「World Wide Web Publishing Service」で、IISの自動起動や
手動起動などの操作を行えます。
コントロールパネルの「管理ツール」→「インターネットインフォメーションサービス」
をクリックします。
Default Web Siteを右クリックし「エクスプローラー」をクリックします。
※今回は設定しませんが、複数のドメインを設定する方法は
以下のページに記載しました。
正しくドキュメントルート(物理パス)が開きました。
コマンドプロンプトで「netstat -ano」と入力すると正しく
「0.0.0.0:80」がLISTENしていました。
表示されているPIDがどういうプロセス名かは、タスクマネージャーで
列の表示でPIDを表示させると、分かります。
WEBブラウザで http://localhost/ と入力すると、正しく閲覧できました。
NATやポートフォワードを行います。
バッファローのルータでは「ポート変換」と呼んでいます。
まず「詳細設定」をクリックします。
「セキュリティ」→「ポート変換」の「ポート変換の新規追加」で
ルータ宛に受信したtcp/80へのアクセスをWindowsのtcp/80へ変換(転送)する
設定を行います。
以下のようになりました。
※また、「ファイアウォール」項目の設定で「インターネット側からのPingに
応答する」を有効にしておいても良いですね。
確認くんで、自分のグローバルIPアドレスを確認します。
※通常は赤い文字が自分(ルータなど)のグローバルIPアドレスで、プロキシ
などを使用している場合は元IPアドレスが自分(ルータなど)のIPアドレスです。
そのグローバルIPアドレスのtcp/80に対してCMANのポートチェックを行います。
OKであればCMANのHTTPステータスチェックもやっておいても良いですね。
NGであればルータでPingを返す設定になっていることを確認しCMANの
Pingチェックなどを行います。
別の回線のWEBブラウザで「http://自分のグローバルIPアドレス」へ
アクセスするとWEBページが正しく表示されました。
また、他の回線からWEBページを見られるサービスも有ります。
aguse.jp: ウェブ調査
今回はまずはプロバイダのオプションで固定グローバルIPアドレスを
割り当てられているとの状況で進めます。
この場合、使用するDNSサーバは、
などになるかと思います。
自分でDNSサーバを構築、に関して以下のページにBIND9の
設定方法を記載しました。
また、自分でDNSサーバを構築した場合は
を忘れずに行わなければなりません。その方法については以下のページに記載しました。
今回は契約しているレンタルサーバ会社(エックスサーバ)のDNSサーバで
レコードの追加を行うことにしました。
※DNSレコードを編集できるレンタルサーバとしては、
エックスサーバやお名前.comなどが有ります。
まず、サーバパネルにログインし、レコードを追加するドメイン名を選択します。
ホスト名「jitaku」のAレコードを追加しました。
「DNSレコードの追加(確定)」をクリックします。
nslookupで確認すると、正しく設定出来ていることが分かりました。
IISの初期画面を表示させるのも何なので、物理パス(ドキュメントルート)に
index.htmlや画像ファイルを入れました。
その後、他の回線から、設定したドメイン「http://jitaku.hikaku-server.com」
へアクセスし正常に表示できることを確認しました。
自宅サーバとレンタルサーバとで、DNSラウンドロビンもやってみました。
※DNSラウンドロビンとは、DNSサーバの設定で1つのドメイン名に対して複数の
IPアドレスを回答させるため、複数のAレコードを作成しておくことです。
これによって、対象となるサーバの負荷を分散させることが出来ます。
「www.hikaku-server.com」に対してAレコードを2つ作成しました。
1つ目はエックスサーバのレンタルサーバ、2つ目は自宅サーバのIPアドレスです。
※「優先度」はMXレコードの場合のみ有効になる機能です。
nslookupで確認すると、正しく2つのIPアドレスが返答されました。
※「権限のない回答」というのは、そのゾーン情報を持っている権威サーバが回答した
のでは無く、それ以外のキャッシュサーバが回答したよ、という意味です。
その後、DNSラウンドロビンを行っている「www.hikaku-server.com」へ
WEBブラウザから複数セッションで何度かアクセスしましたが、自宅サーバの
方にアクセスが来ることは有りませんでした。要因はゾーンファイルのTTLの値
かと思います。
試しでBINDを構築し、ゾーンファイルの1行目に$TTL 1(レコードの生存時間は1秒)
とし、パソコン(リゾルバ)のコマンドプロンプトでipconfig /flushdnsでDNSキャッシュを
クリア後に「ping hikaku-server.com」を複数回実行すると、2つのIPアドレスへ
アクセスしに行きました。
nslookupで直接権威サーバへアクセスすると、ラウンドロビンされることが確認できました。
※試しに、殆ど実施する機会の無い逆引き(PTRレコード)の複数記載をやってみました
が同じようにラウンドロビンでされました。
DNSキャッシュに1.1.1.1から載った場合。
※DNSサーバ内のゾーンファイルのTTLは35秒にしています。
DNSキャッシュに27.120.*.*から載った場合
また、「DNSサーバは自分のアドレスに近いアドレスを優先的に選択する」
ことを定めたRFCも有るそうです。
※Youtubeのサーバ群などは、このRFC通りのDNSラウンドロビンでも均等に
負荷分散できるようにIPアドレスの上位プレフィックスを同じ値で揃えています。
DNSラウンドロビン自体には通信継続の保証性(セッション維持の仕組みなど)
と関連付けられる機能は無く、「障害を検知し、そのサーバのIPアドレスは
回答しない」などの機能も無いため、個人用途で利用するメリットは薄いかと
思います。複数のWEBサーバでのホームページデータの同期も面倒ですし。
個人運営の場合、障害対策として考えるとしても必要性は薄く、
個人のサーバでの対策は自分のPCとレンタルサーバ会社でのデータバックアップ
くらい迄で良いかと思っています。
もしも障害発生時のバックアップサーバとして自宅サーバを使用する場合は
DNSラウンドロビンでは無く、障害後にAレコードを変更し自宅サーバに向ける、
くらいで良いかと思います。しかしながら、障害の際にはコントロールパネルへも
ログイン出来ない(=DNSサーバでのレコード編集も出来ない)可能性も有りますね。
企業で有ればDNSラウンドロビンやWEBサーバの手前に負荷分散装置を
入れるなどの障害対策も検討しても良いかもしれませんね。
プロバイダから払い出されるIPアドレスが動的グローバルIPアドレスの
場合のドメイン設定です。
この場合はダイナミックDNSを使用する流れかと思います。
独自ドメインで運用する場合は、以下のようなサービスを契約します。
これらサービスを使用し、且つ既に保有済みの独自ドメインで
運用する場合はドメインの移管が必要です。
そのドメインのAレコードを削除してCNAMEレコードを追加し、無料の
ダイナミックDNSサービスで取得したドメインに転送させる流れになるかと思います。
独自ドメインで無くて良いのであれば無料のダイナミックDNSサービスが
良いかと思います。無料のダイナミックDNS、「no-ip」の設定方法を
以下のページに記載しました。
今回はエックスサーバで利用している独自ドメインを使用するため、
「b. 既に保有している独自ドメインを移管せずにそのまま使用したい場合」を
行いました。以下に、その方法を記載します。
※DNSレコードを編集できるレンタルサーバとしては、
エックスサーバやお名前.comなどが有ります。
まず、サーバパネルにログインし、「DNSレコードの追加」画面を開きます。
※事前にダイナミックDNSサービス側で設定をしておいて下さい。
ダイナミックDNSサービス、no-ipでの設定方法は以下のページに記載しました。
Cisco1812JでのダイナミックDNSサービス(dyndns)設定方法は
以下のページに記載しました。
バッファローのルータでのPPTP VPNなどの付加機能としてのダイナミックDNS
サービス(dyndns)の設定方法は以下のページに記載しました。
「DNSレコードの追加(確定)」をクリックします。
nslookupで確認すると、正しく転送されていました。
転送元のドメイン名でアクセスしました。
転送先のドメイン名でアクセスしました。
また、サーバを安全に運用するためのセキュリティについては少し以下のページにて
説明しています。セキュリティ対策は必ず行うようにして下さい。
以下のことなどを行います。
※自動起動を停止するにはWindowsサービスであるWorld Wide Web
Publishing Serviceを選択し操作します。