グローバルでないローカルなIPでも固定グローバルIPのサーバーを置けた話

集合住宅LANの内側にサーバーを置いた話

楓です。しれっと固定ページが増えていますが、まあそういうことです。

実は今の住居、回線が共有回線なんですよ。

余談ですがア〇マ〇シ〇ッ〇(自主規制)で物件探すとインターネット無料(=共有回線)ばかりヒットしますが、やっぱりライトで無知な消費者はインターネット回線なんてわりとどうでもいいんでしょう。

楓が住んでいるのはA社じゃないですけどね!

話が逸れましたが、共有回線だと困ることがあるんです。

一般ユーザーには関係のない話ですが、サーバーが立てられないんですよ。

スポンサーリンク




サーバーを立てよう!

サーバーを立てるために最低限必要なものは

  1. グローバルIPアドレス
  2. (自分で管理できる)ルーター
  3. サーバーマシン
  4. やる気

これだけです。

で、共有回線で問題になるのが1のグローバルIPですね。

マンションの共有回線はオーナーがまず一本だけ光回線を契約してきます。

その後、ルーターを設定して各部屋にプライベートIPを割り当てることで住人がインターネットにアクセスできるようにしています。

通常のブラウジングとかならこれで問題ありません。

しかし、サーバーを設置し外部に公開するときに問題になります。

インターネット上の通信は中継を無視した場合、サーバーとクライアント間のやり取りです。

サーバーの位置はグローバルIPで検知し、その先にあるルーターがどのマシン宛てかを判断して通信をやり取りしています。

ところが共有回線だと、グローバルIPの先にあるルーターが自分の家にあるマシンに通信を通してくれないんですよね。

そのルーターを自分でいじくれれば問題ないんですが、管理人に頼もうがどうしようがほぼ100%不可能です。

楓が外部にサーバーを公開するまで

これはサーバーを公開できないのだと諦めていましたが、ふとあるサイトを発見。

( 7日目です。 引越したらグローバル IP アドレスがもらえない環境になり、そこでなん...

このサイトではVPSにVPNを立てて自宅のルーターを繋げる事でサーバーを公開しています。

楓はこの通りにはしていませんが、手法の応用によってサーバー公開にこぎつけることに成功しました。

具体的な相違点
  • ルーターではなくサーバーマシンのみをVPNに接続
    • 他のマシンは外部からアクセスする必要がないため
  • 利用したVPSは一台のみ
  • ルーターは自作ではなくBuffaloの市販品
  • さくらのVPSではない

手順覚書

さて、最初の状態を図示しました。グローバルIPがない状態です。

サーバーマシンと楓のパソコンが自宅LANを構成しています。

集合住宅の青ルーターが殆どの外部からの通信を棄却しているため、赤ルーターを設定してもサーバーは外部に公開されません。

そこでVPSを借りてきます。

VPSサーバーにはCent OS 7がインストールされており、OpenVPNサーバーのインストールが可能です。

自宅のサーバーとVPSをOpenVPNでつなぐことで仮想的なLANを構築することができました。

物理的な通信はVPS→青ルーター→赤ルーター→サーバーの順に通信を行っていますが、VPNの設置により内部の通信がトンネル化され、青ルーターには棄却すべき通信として扱われません。

結果、仮想的には自宅サーバーとVPS間の直接通信が成り立つわけです。

後はVPSをルーターにしてVPS宛に来た通信をそのまま自宅内のサーバーに横流しするよう設定することで接続ができます。(紫の経路)

Cent OS 7ではiptablesからfirewallに変わったけれども上手くいかなかったので結局iptablesを入れ直した。

ポートフォワーディングなんてそんなに難しくないのにFirewallだとゾーンがどうとかでよく分からなかった。

後はVPSにドメインを割り振ってやればWebサイトでもメールでもゲームでも自由に公開できるようになる。

よくわからない人向け

ここまでの説明を聞いて理解できる人はおそらく自作ルーターを運用したことがある人か、システムアドミニストレータで働いている人だと思います。

(少々パソコンに詳しい人も含め)大半の人は???となってると思います。

正直楓では上手く説明することは困難です。

重要用語の解説だけしておきますので。興味のある方は勉強してみてくだされ。

VPS

VPSはバーチャル・プライベート・サーバ(仮想専用サーバ、virtual private server)の略です。

インターネット上でレンタルすることができるサーバーマシンです。

お手軽価格で月額1000円未満から借りることが可能ですが、安い分自宅用サーバーマシンには性能で劣ることも。

性能が足りるなら上のようなことをしなくても普通にVPSでサーバー立てたほうが楽。

VPN

VPSと名前が似ていてややこしいが、別物。

バーチャル・プライベート・ネットワーク(Virtual private Network)の略で、遠隔地にあるパソコンを直接つないでいるかのように扱う技術。

これによって本来LAN内でしかできないことを遠隔地から実現できる。

大学の成績開示を外部から閲覧したり、学内LANでしかアクセスできない論文ページを閲覧したりするために用意しているのはこれ。

まとめ

まあ、素人では全く判らないと思うよ。楓もうまく説明できないから。

いずれにせよ、これでMinecraftのマルチプレイができるようになったってわけ。

スポンサーリンク




コメント

  1. 匿名 より:

    すみません質問なんですが自宅サーバとVPSサーバ間のVPN接続はどちらがクライアントになってるんですか?自宅側だと思ってるんですがあってますか?

    • より:

      VPS側にVPNサーバーを立てて、自宅サーバーから接続するので自宅側がクライアントです。
      逆でも機能するはずですが、ポートフォワードの設定がややこしくなるので設定を考えたことはありません。