というわけで、まずは GL.iNet GL-MT2500A (Brume 2) の紹介を軽く。
製品ページの写真を見ると Mango ぐらいに錯覚しますが、結構大きいです。また、金属筐体なので、ずっしりと重い印象です。これ、ポケットVPNルータではなくて、VPNセキュリティゲートウェイの位置付けなんですね。初代 Brume GL-MV1000 よりはずっと小さいし、パワフルになっています。
型番に A の付かない、プラスチック筐体のモデルもあったのですが、Amazon では入手できなくなっています。もしかすると放熱対策かもしれません。
中身は MediaTek MT7981B @1.3GHz で、Beryl AX (GL-MT3000)と一緒です。ただし、 Wi-Fi 機能が省かれています。外付けアンテナでも良いので Wi-Fi に対応していたら、携帯用になったかもしれません。それだと Beryl AX と差が無くなるのでしょう。
なお、Beryl AX はファン内蔵で、負荷をかけない限りあまり回ることはないのですが、ファンがあるということはホコリが溜まるということです。据え置きでメンテナンスフリーにするなら Brume 2 の方が安心かもしれません。
ファームウェアは枯れてない
執筆時点の純正ファームウェアは 4.7.0 で、BETA版が 4.7.4 です。試しにBETA版を入れてみたら、LuCI のソフトウェア管理がうまく動かないという、致命的な問題がありました。要するに、opkg update がエラーになります。そのうち直るでしょうが、もう少しちゃんと作ってほしいところ。あと、OpenWrt 21.02 ベースなのは大いに不満です。
色々と新しいことを試したかったので、OpenWrt 版のファームウェアも試してみました。24.10.0-rc7 に GL-MT2500 用があったので、早速入れてみました。ところが様子が何かおかしい……。WAN 側のインタフェースが動いていません!手動でアドレスを付けようとしてもエラーになってしまいます。まだ青々としていますねぇ。
U-Boot を使って純正ファームウェアに戻そうとしたら、これまた問題を発見。アップロードまではできるのですが、いざファームウェアを焼こうとすると、衝撃の UPDATE FAILED のメッセージが!ここで死を覚悟しました。
検索してみると、同症状の方がいて、対策もありました。どういうわけか、Firefox ではうまくいかないとのことです。Chrome を使ったところ、うまく焼けました。
OpenVPNクライアントの設定
気を取り直して、OpenVPN のクライアントとして設定してみます。準備として、LuCI の OpenVPN 機能をインストールします。openvpn-openssl は既に入っています。再起動すれば OpenVPN 関係のメニューが生えているはずです。
LuCI の起動は、他のモデルと違っていて、https://192.168.8.1:8080 のようにポート番号を 8080 にする必要がありました。
Software メニューからパッケージを入れてもよいし、ssh でログインして CLI から
# opkg update
# opkg install luci-app-openvpn
としてもよいです。
OpenVPN サーバの設定は、ネットに色々とあるので、割愛します。必要なのは、サーバ証明書 (ca.crt) とクライアント証明書・鍵ペア (client.crt, client.key) です。.ovpn ファイルを作って設定する方法もありますが、私は PKCS #12 (.p12) 形式のファイルを作って、手動で設定しました。
参考までに、Linux 上で PKCS #12 形式のパスフレーズ無しのファイルを作るには、こうです。OpenSSL 3.xの場合は -legacy オプションを付けます。
# openssl pkcs12 -legacy -export -in client.crt -inkey client.key -out client.p12 -passin pass:"<パスフレーズ>" -passout pass:""
あとは、LuCI からちまちまと設定を入れていけばよいのですが、CLI からやりたい人のためにザックリと()
設定ファイル /etc/config/openvpn の中に、このように書きます。
config openvpn 'my-ovpn'
option float '1'
option client '1'
option reneg_sec '0'
option dev 'tun'
option verb '3'
option nobind '1'
option persist_tun '1'
option persist_key '1'
option remote_cert_tls 'server'
list remote '<VPNサーバのIPアドレス>'
option pkcs12 '/etc/openvpn/cert/client.p12'
option ca '/etc/openvpn/cert/ca.crt'
option port '1194'
option proto 'tcp-client'
option enabled '1'
この例では OpenVPN でトンネルを掘っており、1194/tcp で通信するように設定しています。
末尾にある option enabled '1' が重要で、これがないと、LuCI のメニューで Start をクリックしても、OpenVPN が立ち上がりません。option comp_lzo の行がある場合、値が '0' でも動かなかったりするので、削除します (OpenVPNで comp-lzo はdeprecated)。
OpenWrt で忘れがちな設定の一つに、どの zone に所属させるかというものがあります。OpenVPNを起動してから、ifconfig などで見ると、おそらく tun0 が生えていると思います。/etc/config/network に追加する内容はこのとおり。
config interface 'tun0'
option proto 'none'
/etc/config/firewall の wan zone セクションに、tun0 デバイスを追加します。こんな感じです。
config zone
option name 'wan'
option output 'ACCEPT'
option mtu_fix '1'
option input 'DROP'
list device 'tun0'
list network 'wan'
list network 'wan6'
option masq '1'
option forward 'REJECT'
OpenVPNクライアントの性能
下り400Mbps、上り90Mbpsぐらい出る、自宅の光回線から、RTT 18.5 ms ほど離れたところにある Linux 箱の OpenVPN サーバに接続してみました。
カタログ値では 150 Mbps ですが、それよりもやや良好な結果です。Wi-Fi 6 基地局のバックホールとして使うには物足りないですが、フリーWi-Fi用途ならなんとかなりそうです。
Wi-Fiを生やしてみる
Wi-Fi 機能がないのが少し残念なので、ちょっと試してみました。
手元にあった Wi-Fi 6E 対応の NETGEAR A8000 を挿してみましたが、残念ながら該当するドライバがありません。残念!
代わりに NETGEAR A6210 を挿してみたところ、kmod-mt76x2u パッケージの追加で認識させることができました。しかし、Beryl AX などの内蔵 phy と違って、あまり設定の自由度がありません。安定性もイマイチです。
というわけで、Wi-Fi 機能は諦めましょう。
おしまい