実家では、快適な中国旅環境のために、2台のミニPCをがんばってセットアップしていました。
構成
今のところの構成はざっくりこんな感じで。
旅先用端末–旅先用ミニPC–(複数プロトコルのVPN回線)–実家のミニPC–インターネット
この「複数プロトコル」というのは、今年金盾を越えた実績のある
ZeroTier
SoftEther
OpenConnect
この3つで。ちなみにブログでは書いてなかったけど、
前回の中国ではMillenVPNを契約してOpenConnectプロトコルも最初の5日間だけおためししていました。
これでミニPC間にVPNトンネルを常時張っておいて、3つのうちどのトンネルを通すかは手動で切り替えられるようにしてあります。そして、高德地图など中国のサービスにはVPNを通さず直接接続できるようにも。
構築上の注意点
★Proxmox上のOpenWrt
これはProxmoxの仕様みたいなのですが、
LuCI > Network > Interfaces > Devices
で表示されるデバイスそれぞれでAdvanced device optionsのEnable promiscuous modeをenabledにしないとパケットのフォワーディングがうまく機能しません。
これけっこうはまりました。
★VPN回線のリンクアグリゲーション
ZeroTierとSoftEtherはレイヤー2接続ができるので、リンクアグリゲーション(OpenWrt用語ではBonding Connection)でたばねたら手で切り替える必要なく使えて便利そうやなあと思ってやってみたんですが、これがうまくいきませんでした。
たばねることはなんとかできたんですが、片方をわざと切ってみたときに、通信がかなり長期間切れてしまって使い物になりませんでした。
それなら手で切り替えた方が早いということに。
★SoftEther
SoftEtherは通信の安定する構成を見つけるのに時間がかかりました。
まずサーバ側。OpenWrtのsoftethervpn5-serverは安定しませんでした。クライアントからつないでも5秒ぐらいでセッションが切られてしまいます。
なので、OpenWrtのsoftethervpn-server(4.38-9760-r2)を利用。
クライアント側は、OpenWrtのsoftethervpn5-clientもsoftethervpn-clientも安定しませんでした。そしてブリッジ(softethervpn5-bridgeとsoftethervpn-bridge)も安定しません。
結局、間にWindowsのゲストOSをはさんでWindows版のSoftEther VPN Client (Ver 4.43, Build 9799, beta)を利用するのが一番安定しています。Windowsをルータに仕立てるのには、
- 日記さん ミニPCを高機能トラベルルータに仕立てる
- 日記さん 続・ミニPCを高機能トラベルルータに仕立てる
- MyPublicWiFi - Virtual Access Point, Turn your PC into a Wi-Fi Hotspot
引き続きMyPublicWiFiのMultifunctional Hotspotモードを利用します。
★OpenConnect
OpenWrtのOpenConnectサーバ(ocserv)は、少し設定にくせがあります。
ZeroTierやSoftEtherのようにレイヤー2接続するような設定がなく、このソフト自体でDHCPサーバまで担当してしまいます。そして同時に接続する回線の数だけOpenWrt上でデバイスの数が増えて、インタフェース設定などもその数やらないといけません。
スマホのクライアントとしてCisco Secure Client-AnyConnectを使うと、パスワードが保存されないので接続のたびにパスワード入力が必要になってめんどうなので、
F-DroidのOpenConnectアプリを使うことにしました。
このとき注意が必要なのが、OpenWrtのOpenConnectサーバ側の設定。
DNS serversの設定にOpenConnectサーバ自身のIPアドレスを入れていても、なぜかスマホからだとこのDNSが応答しません。別ルータからOpenConnectでつないでいるときには応答するのに。
あと謎なのが、OPPO Reno7 AだとちゃんとデフォルトゲートウェイとしてVPN回線が使われるのに、Rakutan Hand 5Gだと使われないということ。これは未解決のまま。
そしてよくわからないのが、Cisco Secure Client-AnyConnectアプリでつないだときの挙動。最初は問題なくつながったのに、一度OpenConnectアプリでつないでしまうと、その後Cisco Secure Client-AnyConnectアプリでつなごうとしたときには
Ciscoセキュアクライアント
セキュアゲートウェイから受信したアプリ単位のVPN構成が無効です。ネットワーク管理者までお問い合わせください。
というメッセージが出てつながらなくなってしまいました。
これはもう使わないのでいいんやけど。
★Windowsライセンス
ミニPCの1台目は、Microsoftアカウント経由で物理PCのライセンスを仮想OSに移すことができたんですが、2台目はなぜか同じ方法をやっても失敗。「あとでもう一度やってください」的なエラーだったんですが、OSの再インストールをしてもうまくいきませんでした。
結局2台目にはWindowsを入れないことに。
★PBR
接続先ドメインごとにVPNトンネルを経由させるかどうかを制御するのにPBRを使ったのですが、こちらややこしいので別の日の日記に。
ややこしいPBRの話を書きました。
コメント