UbuntuでOpenConnect VPN接続時のルーティング処理と回線速度テスト

投稿者: | 2020年7月16日

前回セットアップしたOpenConnect VPNサーバへUbuntuから接続するにあたり、その適切なローカルサブネットのルーティング処理についてまとめておきます。

Ubuntu 18.04LTS Desktop版では、Network ManagerにOpenConnect VPNプラグインが用意されているので、これをインストールします。

 

1. 単一なローカルサブネットから接続する

図01.VPN Client from Single Subnet LAN

図01.VPN Client from Single Subnet LAN

まずは単純に上図のように、一般的なケースを考えてみましょう。Network Manager からVPNを追加します。適当な名前を付けて、Gateway欄にVPNサーバを登録のみで適用とします。

図02.Network Manager Add VPN Select Type

図02.Network Manager Add VPN Select Type

図03.Network Manager Add VPN Identity

図03.Network Manager Add VPN Identity

図04.Network Manager VPN IPv4

図04.Network Manager VPN IPv4

作成したVPN接続先のトグルスイッチを押して接続を試みます。証明書の確認ポップは初回のみですが、DDNSを使う場合などでIPアドレスが変わると、このポップアップが再出されます。

図05.Certificate Verification

図05.Certificate Verification

続いてユーザID、パスワードを入力。これらはSave passwordsにチェックをしておくと、次回以降入力は省略されます。また、Log部分を開くとデバッグメッセージを確認することが出来るので、うまく接続出来ない時のトラブルシューティングに便利。

図06.Login Credentials

図06.Login Credentials

接続中はNetwork ManagerのVPNが点灯します。このVPNリストは画面上のIndicatorからアクセス可能なので、普段VPNをよく使う場合には、CLIよりも視覚的で便利です。

図07.Netwok Manager VPN List Status

図07.Netwok Manager VPN List Status

VPN有無でのルーティングテーブルの違いを見てみましょう。VPNを繋げることで、既存のデフォルトルートの上にトンネル行きのルートがごっそり乗っかって来るのがわかります。

 

 

 

2. 複数のローカルサブネットを有するLANから接続する

図08.VPN Client from Multi-Subnets LAN

図08.VPN Client from Multi-Subnets LAN

次に図08のような ローカル側に複数のサブネットが有る場合を考えてみます。この時、先程と同じように単にVPNするだけでは、トンネルがデフォルトルートになるので、ローカルLAN側に存在する自分以外のサブネットへのトラフィックも、トンネルへ放り込まれてしまいます。もちろんトンネルをデフォルトルートとせず、リモートLANへのアクセスのみに使用するようにすれば良いのですが、そうすると外向きトラフィックもトンネルを通らくなってしまいます。

この問題を解決するにはまずVPNではなく、ベースとなるネットワークインターフェイスに対し、ローカルLAN上に存在する自分以外のサブネットを全て明示的にルーティングします。要するに、トンネルに通したくないサブネットを列記するわけです。Network Manager上で設定するとこのように。

図09.Network Manager VPN IPv4 Routing

図09.Network Manager VPN IPv4 Routing

この上でVPNを接続してrouteコマンドでルーティングを見てみましょう。

これでVPN接続時もローカルLANに存在する他のサブネットへのアクセスも維持することが出来ました。

 

 

 

3. Open Connect VPNスピードテスト

VPN速度計測の前にまずは図08の左側、HKBNの商用1G回線単独の速度計測を実施してみます。デスクトップPCのGbEから、いくつかのギガビットスイッチを通り、UTMルータを経て外へ出る構成です。

図10.HKBN商用1G回線単独速度

図10.HKBN商用1G回線単独速度

次に図08の右側の自宅回線、HKTの集合住宅向けFiber1000M回線ですが所詮家庭用。ノートPCのGbEからGL-iNet GL-AR750SのLANポートへ直接繋いで計測しました。

図11.HKT家庭用1000M回線単独速度

図11.HKT家庭用1000M回線単独速度

ここで興味本位でFiberモデムに直接PCを接続し、同様に計測してみました。すると、

図12.HKT家庭用1000M回線Fiberモデム-PC直結速度

図12.HKT家庭用1000M回線Fiberモデム-PC直結速度

ルータ経由との大きな差にびっくり、立派なFiberでした。ルータのパフォーマンス改善については別途調べてみることにし、ここではFiberモデムとルータを繋ぐCat6AフラットケーブルをCat6Aフレキシブルケーブルに替えてみました。

図13.フラットケーブル黒からフレキシブルケーブル青へ交換

図13.フラットケーブル黒からフレキシブルケーブル青へ交換

本来ならば太くてしっかりしたケーブルが電気的には良いのでしょうが、経年変化で被覆がカチカチになるとコネクタ部に物理的な力が加わり続け、接触不良を引き起こす例をサーバルームで何度か遭遇したことがあります。そのトラウマから最近はネットワーク機器の接続には軟らかいケーブルを使っています。ケーブル交換後の再計測でその改善効果が確認されました。

図14.HKT家庭用1000M回線単独速度改善後

図14.HKT家庭用1000M回線単独速度改善後

 

 

以上の条件のもと、両者をVPNで繋ぎ、そのトンネル経由での速度計測を実施します。まずは、Open Connectの結果です。

図15.OpenConnect回線速度結果

図15.OpenConnect回線速度結果

次にOpenVPN(TCP接続)の結果です。

図16.OpenVPN(TCP)回線速度結果

図16.OpenVPN(TCP)回線速度結果

何度かn増計測してみましたが、両者ほぼ同等の速度でした。体感速度も大差ありません。また、導入に際しOpenConnectは前回の通り、Basic認証であればとても簡単に実現出来るので大変魅力的です。

これまで使っていたOpenVPNに代わりOpenConnectを数日使ってみました。OpenVPNの時はトンネルトラフィックの量に関わらず、接続確立中はルータのCPUロードが常に1.0以上(経常的に2.0前後)であったの対し、OpenConnectでは接続確立中であっても大きなトラフィックが無い限りCPUロードは0付近に張り付き、転送中も概ね2.0未満と軽快でしたので、メインはOpenConnectにしようと思います。

 

 

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA