グローバルIPアドレスのない集合住宅での自宅サーバー公開 (1)
来月に引っ越しを予定しているのですが、引越し先では個別に光回線を引くことはできず、マンションで一括契約されたネットワークを使用する以外にはJ-COMのケーブルテレビでインターネットを個別契約する以外の選択肢がないことが判明。
マンション側で管理されているルーターから各部屋にネットワークが分配されており、必然的にグローバルIPは割り振られるわけもなく、当然ポート開放もできないことが判明。
自宅には趣味を兼ねたサーバーが設置しており、今までと同じ方法では外部ネットワークから自宅サーバーにアクセスできません。
現在のネットワーク環境
今の環境は 非常にシンプルで、フレッツ光のルータの下に基本的にすべてのネットワーク機器が繋がっています。自宅サーバーはVMWare ESXiで仮想化されたマシンの中の1台がルーターのポートを開放する形で外部に公開されており、FTP、Samba、NFS、SSH、VPNサーバーなどのサービスが稼働しています。
自宅サーバーなんてなくても何も困らないでしょとうちの奥さんは言いますが、外からテレビの録画予約をしたり、撮った写真をアップロード/ダウンロードしたり、海外出張でLINE、Google先生が使えない国に行った時の踏み台に使用したり、職場から別のネットワークにあるパソコンにアクセスする際の踏み台に使用するなど、家庭では見えないところでしっかり使ってます。。。何より、私は普段ノートPCを使用していますが基本的にはESXiで仮想化されたデスクトップ環境にリモートでログインして使っており、外からリモートでデスクトップ環境にアクセスできないのは死活問題になります。
そこでどうしたものかと調べたところ、外部にVPSを借り、そのVPSに対して自宅からVPNを張ることで解決する方法が使えることがわかり、引っ越し前に問題なく使用できるのかチェックすることにしました。
VPSを利用したネットワーク環境
構成を図にすると上のようになります。
まず外部にVPSをレンタルします。私はさくらVPSの1GBメモリ、SSD30GB、仮想CPU2コアコース、月額972円をUbuntu16.04で運用しています。当初はVPS側に自宅サーバーの全機能の移行することも一瞬考えましたが、私が必要とするCPUパフォーマンス、メモリ容量、ストレージ容量を考えると、それをVPSで実現するためには月額料金がすごいことになるので断念します。
まずは本運用前の実験ということで、構成はシンプルにしています。VPS側はSoftEather VPN Serverのみ動かしています。自宅ネットワーク側は外部から接続したいマシンにのみSoftEather VPN Clientをインストールし、それぞれVPSにVPN接続します。メインルーターそのものをVPN ClientとしてVPSに接続し、自宅ネットワーク全体をVPNネットワークに接続する方法もありますが、直近でその必要がないため引越し後に別途検討したいと思います。
VPS側はIptableを設定して必要なポートを開き、VPS特定のポートに来た通信をVPNネットワークの特定IPにフォワードする設定を行いました。設定内容はメモがてら後日記載したいと思います。
これで最低限必要なサービスは外部ネットワークからアクセス可能になりました。運用を初めて2週間ですが、その間一度だけVPS側の不具合でサービス停止が数時間ありましたが、パフォーマンス含め特に大きな問題は起きていません。
このままの構成で引越し後も運用を続けてみて、問題があれば改善していきたいと思います。