以前、SoftEtherVPNを使用してWindows10上にVPNサーバーを構築した記事を書きました。
このときは物理マシン上に構築しましたが、VPNサーバーのために物理マシンを1台用意するのはもったいないです。
そこで、常時起動のファイルサーバーで仮想マシンを起動し、そこにVPNサーバーを構築することにしました。
基本は仮想マシンにWindows10とSoftEtherVPNをインストールして設定するのみですが、はまりポイントがあったので顛末をご紹介したいと思います。
仮想環境を作るPCの紹介
先に書いた通り、我が家には常時起動のファイルサーバーがありまして、そこに仮想環境を作ります。
このサーバーのスペックは以下になります。
- CPU:Core i7-2600K
- メモリー:DDR3 16GB
- ドライブ:SSD 120GB + HDD 2TB × 4 + USB HDD 4TB
- OS:CentOS 7 x64
ファイルサーバーとして使うだけなら完全にオーバースペックです。性能も電気代も。。(^^;)
しかし、DockerでWebサーバー用のコンテナを起動したり、Pythonでプログラミングをしたりしているのでまぁよいかなと思っています。
仮想環境ソフトはOracle VirtualBoxを選択
ファイルサーバーのOSはCentOSなのでLinuxで動く仮想環境ソフトを使います。
ネットワークはブリッジ接続でいきます。
なんとなくVPNサーバーにするなら独立したIPアドレスを持たせた方がよいと思いまして。
最初、仮想環境ソフトは仕事でも使っているKVMで行こうと思っていました。しかし、仮想マシン上のWindowsがネットワークに接続できません。
色々いじっていたら少しの間だけ接続できたのですが、ネットワークカードを変えたらまたつながらなくなり、その後どうやっても接続できず。半日費やしてもできないので諦めました。
しょうがないので代わりにOracle VirtualBoxを使ったらさっくりブリッジ接続が使えました。KVMでできなかったのはなんだったんろう。。謎です。まったく同じブリッジデバイスを使っているんですが。。
仮想マシンでVPNサーバーを構築するときに気を付けること
SoftEtherVPNの仮想DHCPサーバーをむやみに使用しない
仮想マシンでのWindows10やSoftEtherVPNサーバーのインストール・設定は迷いなくできましたが、なぜかVPNクライアントから接続できません。DHCPでVPNクライアントにIPアドレスが割り振れないみたいです。
SoftEtherVPNサーバーのログに下記のようなエラーが出力されます。
DHCP サーバーからの IP アドレスの取得に失敗しました。PPP の通信を受諾するためには DHCP サーバーが必要です。仮想 HUB の Ethernet セグメント上で DHCP サーバーが正しく動作しているかどうか確認してください。DHCP サーバーを用意することができない場合は、仮想 HUB の SecureNAT 機能を用いることもできます。
上記のログに「SecureNAT 機能」があるよ!とあるので本機能の「仮想DHCPサーバー」を使ったところ、VPNクライアントにIPアドレスが割り振られるようになり、接続できました。
しかし、この「仮想DHCPサーバー」が他のローカルネットワーク上のPCにもIPアドレスを割り振ってしまい、ルーターの割り振るIPアドレスが上書きされておかしな状態になってしまいました。
我が家のローカルネットワークはルーターのDHCPサーバーが割り振る192.168.0.xのIPアドレスを使うようになっています。
これが「仮想DHCPサーバー」が割り振った192.168.30.xに変更されたため、各デバイスがルーターを通じてインターネットにつながらなくなってしまったのです。
「SecureNAT機能」を有効にする画面で下記のように記載されている通り、軽い気持ちで有効にすると痛い目に合うかもしれません。
SecureNAT機能はシステム管理者やネットワークに関して詳しい知識のある方向けの機能です。
私は仮想マシンが動いているファイルサーバーをシャットダウンし、ルーターを再起動して復旧しました。焦った~(;´Д`)
仮想マシンネットワークのプレミスキャスモードを設定する
DHCP問題の解決策をネットで調べたところ、どうやら仮想マシンネットワークのプレミスキャスモードを有効にしないといけない模様。
VirtualBoxの場合下記の画面で設定します。
「プレミスキャスモード」を「すべて許可」に設定しました。
これでVPNクライアントにIPアドレスが割り当てられるようになりました。めでたし、めでたし。
以上、仮想マシンにSoftEtherVPNをインストールしてVPN環境を構築したお話でした。