Softether VPNによる拠点間VPN

selogo

5年前、こちらで書いたSandyBridge Corei5 2400を載せているPCが今でも現役で稼働しています。

VMware vSphere Hypervisor(ESXi)で様々なサーバを動かしていますが、今日は一番実用的に活用しているSoftetherによる拠点間VPNについてお話しします。

まず、Softetherとは複数プロトコルに対応したオープンソースのVPNソフトウエアで、誰でも簡単に利用できます。OSもWindows,Linux,MacOSなどに対応しています。

例えば、iPhoneやAndroidスマホから自宅のSoftetherサーバにアクセスし、自宅のファイルサーバにアクセスすることができたりします。また、ここで紹介するように物理的に離れたLANををVPNでつなぎ、同一のネットワークとして扱うことができます。

Layer3での接続もできるようなのですが、小規模のネットワークではLayer2で接続できたほうが楽ですしDLNA等できることも増えるので、Layer2接続を前提にしています。

以下はSoftetherを利用して自宅と実家を拠点間接続している構成図(概要)です。

ネットワーク概要

インターネットを介し拠点間VPN接続することにより、自宅と実家のPCはすべて192.168.Xのサブネットに属しています。クライアント用に各拠点でHGWにDHCPでIPを降っていますが、サーバは固定IPを振っています。

実家のほうはVM上のWindows10にSoftether ServerとServer Managerを、自宅のほうはPentium N3700を搭載するNUCに、同じくWindows10にSoftether BridgeとServer Managerを動かしています。

インストール自体は簡単に終わり、ダイナミックDNSも無料サービスとしてついているので、両拠点のSofteteherの設定とサーバ側のHGWにポート転送(TCP443,UDP500,4500をSoftetherサーバに転送)を仕込んでおけば、あっさりとVPN接続はできると思います。(IPの重複だけ気を付けてください)

OpenVPNなど他のVPNだとダイナミックDNSは個別に設定する必要がありますが、本当に至れり尽くせりです。

ただ、今の場合、拠点ごとにDHCPサーバが動いているため、接続ユーザーのIPv4とIPv6のDHCPパケットフィルタのポリシーを有効にしておきます。

softether

また、外からiPhoneなどでVPN接続する場合は、DHCPパケットがフィルタされるため、Softetherサーバに接続できるけどIPが取得できずつながりません。回避策としてはDHCPパケットフィルタのポリシーを無効にしたユーザーを別に作成し、そのユーザーで接続します。

今ではDropboxなどクラウドドライブが普及していますが、重要なファイルをクラウドドライブに置くのは気が引けます。その点、VPN環境を構築しておけば自宅や外出先から実家のファイルサーバーにアクセスできますし、自宅のPS3から実家のDLNAサーバの動画を見ることもできます。リモートデスクトップもセキュアに使用可能です。

気になる通信速度は、実家側の光回線がauひかりマンションだった頃は上り下りとも50~60Mbps程度出ていました。(Windowsファイルコピー実測値、NUC5PGYH使用時)

また、NUCの代わりにRaspberry Pi 2 Model Bを使用するとCPUがボトルネックになり、上り下りとも30Mbpsで頭打ちでした。

(2016-08-21)JessieベースのRaspberianをインストールし、Softetherも最新版をインストールしたら、Raspberry Pi 2 Mdel Bでもスループットが50Mbps程度に改善されました。こちらの記事にまとめています。

まとめ
  • Softether VPNは扱いやくす、個人ユースではとても優れたプロダクト。OpenVPNと比較すると簡単。
  • DHCPサーバを拠点毎に置く場合は、パケットフィルタの設定に注意。
  • 通信速度も速い。
  • Raspberry Pi 2 Model Bでは性能不足だが、安く仕上げるには良い選択肢。

 

NUCはこちらを使用。

CPU負荷的にはCeleron版でもいけそうです。

Raspberry Pi 2 Model Bであればこちら。

最近3が出たようです。

みんなで広げよう、ブログの輪。クリックお願いします。
にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です