和歌山のプログラミング・システム開発ならシステムキューブ
OpenVPNはソフトウェアVPNの一つです。
オープンソースのSSL-VPNソフトウェアで、比較的設定も簡単で、鍵交換方式により、安全な接続が行えます。
WindowsやLinux、MacOSでも利用可能なので、幅広い範囲で利用が可能です。
OpenVPNの設定はサーバー、クライアントでそれぞれ持つ必要があり、それらの内容は協調して設定されることになります。
今回、筆者が担当したのは、このOpenVPN上の通信が安定しない、接続されても十分なパフォーマンスが出ないというものでした。
実際に通信を行うと、OpenVPNの接続は確立していました。
相手先ローカルネットワーク上にあるWebサーバに対して、ブラウザによる接続は不安定、あるいはタイムアウトします。
pingはサーバーに対して正常に送出され、帰ってきます。
これらの障害を解決するうえで、サーバーの設定やログなどを確認する方法がありますが、現在自社で構築されたサーバーでなく、またこちら側の端末以外では正常に動作するとのことですから、サーバーの設定を見直すのは最後の手段としておきたいところです。
OpenVPNで接続できているのに、通信速度が十分に出ない、あるいは不安定であるという場合、MTUの設定の見直しが重要になります。
MTUとは一度の一度のデータの通信量の最大をしめす数値です。MTUが回線の上で通信できる通信料を超えると、パケットの断片化が発生します。
パケットの断片化はパフォーマンスの低下をもたらし、パケットの再送などを繰り返していく過程で、このような通信の不安定が発生するのではないかと考えました。
そうであれば、pingのような小さいパケットが正常に通るのは納得のいくところです。
MTUの設定値を変更するためにはサーバーとクライアント両方の設定ファイルに、MTUの記述を行う方法がありますが、前述の理由でクライアントの設定のみで解決するのが最善の方法と考えました。
mssfixディレクティブでこれを指定することでMTUをクライアントの設定のみで変更できることがわかりました。
接続用のクライアント設定ファイル、ovpnファイルの最後に
mssfix 1200
と追記して、再度接続を行ってみます。
Windowsのovpn設定ファイルは、ProgramFilesフォルダの中にありますので、VISTA以降のOSでは、エディタの権限を管理者にしておかないと、設定が反映されずに、VirtualSoteに保管されてしまうので、正常に書き込みが終わったようにみえて、変更されないので注意が必要です。
接続の結果、正常に通信が行えるようになり、正常なネットワーク速度が出るようになりました。
この辺りは回線の品質や、帯域にもよる部分ですので、多い目に幅を取って設定し、安定性を狙うか、ぎりぎりまで数値を大きくして、パフォーマンスを選ぶかというところになってくると思います。
これで今回の一件は解決となりました。