Raspberry Piを使用したリモートVPN接続ポイントの構築

先日、固定IP接続を実現するために職場で使用しているVPN接続サービスのルータ配置を自宅に移動しました。現在職場はオフィスビルに立地しているにも関わらず、Clear(WiMax接続サービス)以外に現実的に使用できる回線がなくローカル、リモートの接続とともにボトルネックになりつつあったからです。VPN接続ポイントを外に配置することにより、アクセススピードの高速化を実現することになりました。

職場に設置していた時にはLinuxを走らせているPCでアクセスを制御していましたが、自宅に設置するにあたり、より電源効率の良い、ポータブルなものにする、ということで、Raspberry Piを採用することにしました。(一応自宅にもLinuxマシンは常時走っているのは走っているのですが、責任分界的にも自宅LANと会社LANは完全に隔離しておきたかった、という狙いもあります。)

リモートからVPNにアクセスするにあたっていろいろと検討した上で、最近オープンソフトされたSoftEtherを採用することにしました。

  • 設定が比較的簡単であること
  • OpenVPNやL2TP/IPSecなどを使用できること。特にMac用のSoftEther接続ソフトは現在提供されていない(サーバはある)ため、これは重要な判断基準となりました。

また、以前、UT-VPNは試用していたことがあるため、SoftEtherはそれに近い、ということも判断の一つでした。

SoftEtherの設定は非常に簡単に行えましたが、カーネルモードのNATが使用されている場合、スタックの関係上からか、DHCPがVPNより下のレイヤーからIPを取得してしまう問題があり、DisableKernelModeSecureNATを使用し、ユーザーモードでNAT環境を作ることで解決しました。SoftEtherの独特な設定環境(例えばnattableとsecurenattableが別の意味を持っていることなど)で少し混乱があり、NATが有効になっていなかった、という問題などはありましたが、無事環境を構築することができました。

パフォーマンス的にどこまでいけるか、という不安はありましたが、接続時などのCPUのロードは20%でぐらいで、問題なく使用できると判断でき、専用のRaspberry Piを購入し、現在実運用中です。