我が家にVPNを張ってみた

お勉強がてらネットワーク環境で遊んでみたくて色々やっております。今回はVPNを張ってみました。

 

まず前提として、インターネットサービスプロバイダにIIJmio (FiberAccess/NF)を利用しています。IPv6はIPoE、IPv4IPv4 over IPv6を行うDS-Liteを使用しています。が、DS-Liteはグローバル側からプライベート側への接続ができません。

 

www.mfeed.ad.jp

 

ですがこのためのIIJmioIIJmioではIPoEと同時にPPPoEで接続することができます。こちらは普通のPPPoEなので外側からのアクセスも可能。普段使うPCやタブレットはIPoE + DS-Liteで速度重視。VPN接続用はIPoE + PPPoE接続とわけることで解決できます。

 

help.iijmio.jp

 

今回このネットワーク設定を行うルーターYAMAHA製RTX1200。中古品が大量に流れている時期があり、そのときにボチりました。ルーターで行うのは概ね下記の感じ。基本的なフィルタはすでにやってあるものとします。

  1. IPoE (LAN2)の設定
  2. DS-Lite (TUNNEL1)の設定
  3. PPPoE (PP1)の設定
  4. VPN用端末のIP振り出しを固定
  5. 4で指定したIPのゲートウェイにPP1を設定
  6. VPNで使用するポートの静的IPマスカレードを設定
  7. 6で指定したポートを通過させるフィルタを設定
  8. DDNSにnetvolanteを使用 (SoftEtherDDNSサービスもあります)

ちなみにRTX1200自体にもVPNサーバー機能がありますが古いルーターなので速度が物足りないこと、クライアントとの相性があるらしいこと(特にWindows?)から別にVPNサーバーを用意しました。OpenVPNやら色々あるなかで採用したのはSoftEther。理由としては未踏ソフトウェア創造事業に採用された頃から気になってた、の一点。OpenVPNも後々触りたいのですがこちらは後回し。

 

SoftEther自体のインストールは、Linux用パッケージをダウンロードして展開。展開先のディレクトリでインストール用シェルを実行。パーミッション諸々を設定してサービスとして登録、などなど。ソースコードからのビルドになるので事前に開発環境を入れておく必要はあります。

 

qiita.com

 

インストール後に、仮想ハブを作成したりユーザーを作成したりとサーバー側の設定があります。vpncmdを使いCUIで設定するもよし、他のWindows端末からGUIツールを使うもよし。今回はL2TP/IPsecも有効にしました。既存のLANにアクセスするためにローカルブリッジも設定します。

ここでまだ理解が追いついていないのが仮想ブリッジ。VPNサーバー自体にVPN経由で接続できないという制限があり、これを回避するために仮想ブリッジというものを設定する必要があるらしいです。とりあえず今回はLAN内のNASにアクセスできればいいので仮想ブリッジの設定は保留。

 

khws4v1.myhome.cx

qiita.com

 

そんなこんなで、iPhoneAndroidからはL2TP/IPsec。PCからはSoftEtherクライアントから接続できることが確認できました。