USB LTE ドングルを過去色々試してみた(*1)けれど、実は最適解はこうなんじゃないかという気がしてきたので、一度メモにまとめる。
Routerboard と Android スマホを USB ケーブルで繋ぐ。「USB テザリング」を有効にすると、Routerboard からは lte1
として見える。
設定項目
- Quick Set
- Country は japan にする
- Password をセットする
- SSID, Password, WPA2 をセットする
- Firewall > Filter Rules
- Add New で lte1 からの input を drop するルールを加える
- それを ether1 用の同様のルールの下に入れる
- Firewall > NAT
- エントリの Out.Interface を lte1 に書き換える
- IP > DHCP Client
- Add New で lte1 を加える
解説など
やりたかったことは、こんな感じ。
- 10-20 人ぐらいに対して、uplink が LTE な無線環境を提供したい。
- なるべくコンパクトなシステムで。
WiFi部分は MIMO を使いたかったので、Raspberry Pi で組むことはできない。Routerboard などのデバイスを使いたい。
LTE USB ドングルは製品ごとに仕様が違うので、routerboard がサポートしていない限り使えない。その上、日本の LTE USB ドングルは技適の問題もあって、サポートが追加される見込みがない。LTE バンドも予想以上に頻繁に追加されてきた経緯もあるので、実質的な LTE USB ドングルの製品寿命も短く、サポートリクエストを出すのもためらわれる。
そんな背景で色々考えていると、Android が比較的安価になってきた。Android の USB テザリングは RNDIS という接続方式で、routerboard は RNDIS をサポートしている。これが結構よい感じ。routerboard からは LTE の種別として見える。この最小構成で試してみるけど、負荷が高そうであれば Rasperry Pi を間に追加して masquerade をオフロードすれば良さそう。単純な NAT 箱であれば、初期設定しておけばポン付けで使える。
Raspberry Pi で LTE USB ドングルを終端していたときは、比較的よく切断されるので、mmcli の再接続オペレーションが作業負荷だった。パケット通信量の計算も結構大変なので、Android に備わっている機能を活用したほうが、ずっと楽。SIM 契約での通信料は LTE 網でのもので、netdev のカウンタ値とは全く異なるので大変。
*1) こんな感じで。