hgot07 Hotspot Blog

主に無線LANや認証連携などの技術についてまとめるブログです。ネコは見る専。

GL.iNet Mango / OpenWrtのWireGuard VPNをLinuxで受けてみる

GL.iNet GL-MT300N-V2、別名Mango使って、Linuxサーバ相手にWireGuardVPNを張ってみたので、その紹介記事です。

要点

  • オフィシャルのFirmware (現在OpenWrt 18.06ベース)では、Linux相手の設定は無理そう。
  • MangoにはOpenWrtのファームが焼けるので、そちらを使う。(今回、無線LAN機能は使わない用途)
  • カタログ値の50Mbpsは本当アクセラレータとかない、こんなちっちゃな筐体で、ご立派!

さて、このMangoですが、フリーWi-FiでもVPNで安全な通信ができるという触れ込みで、トラベルルータとして売られているものです。これ、中身がOpenWrtベースなので、前の記事に書いたように、色々と遊べそうです。

Mangoのウリの一つに、他のVPN方式よりも効率がよいとされる、WireGuardの対応が挙げられます。使ったことのある人なら分かると思いますが、OpenVPNは遅いし、高速化が難しいプロトコルです。L2TP/IPsecやIKEv2など、要するにIPsecを使うものは、CPU処理ではOpenVPNより若干速い程度にとどまります。IPsecアクセラレータを搭載した機器なら、かなりの速度が出せますが、それなりにいいお値段がします。

さて、比較的新しいプロトコルであるWireguard、Linuxに標準で組み込まれているし、OpenWrtでも対応していて、2020年現在、気軽に使えるようになっています。GL.iNetのカタログによると、MangoのWireguardの性能は50Mbps程度とのことです。MikroTik hAP acのL2TP/IPsecOpenVPNでは30~35Mbps程度だったので、期待できそうです。しかもこのMango、2,000円ちょっとで買えるというから驚き!

Mango routers are cute.

キュートなMango (2個も買ったの誰よ?)

 

下準備

MangoはOpenWrtベースですが、トラベルルータとして一般の人でも使いやすいように、簡略化されたGUIが搭載されています。一応、このGUIでも任意のVPNサーバに接続設定できそうに見えるのですが、どうも入力項目が足りていない感じ。製品のコンセプトとしては、既存のVPNサービスを使うのが前提のようです。

また、Advancedメニューに入るとOpenWrtの標準GUIであるLuCIが使えますが、色々試してみたものの、うまく動きませんでした。sshCLIからいじってもダメ。

というわけで、簡単設定のGUIとはおさらばして、サクッとOpenWrtの最新版ファームウェアに入れなおすことにします。執筆時点で19.07.5が最新版です。(前の19.07.4では、上りがパケ詰まりして、使い物になりませんでした)

ちなみに、Mangoのオフィシャルのファームウェアはこちらからダウンロードできます。

OpenWrtプロジェクトからのファームウェアはこちらから。

LAN側のアドレスが、Mango標準の192.168.8.1ではなく、192.168.1.1になるようです。オフィシャル版に戻したければ、本体のリセットボタンを使って、ファクトリーリセットからやり直せばOKです (RTFM……おやおや、口が悪い)。

初期設定といっても、Mangoのアドレスにブラウザでアクセスして表示されるLuCIで、管理者パスワードを付けて、使わない無線LAN機能をオフにする程度なので、面倒なことはないです (逸般人を除く)。

 

Linux側WireGuardサーバの設定

今回openSUSE 15.1を使っていますが、WireGuardのパッケージが提供されているLinuxディストリビューションなら、どれでもよいでしょう。

最初に公開鍵・秘密鍵ペアを作りますが、Mangoの利用者が自分自身なので、クライアント用の鍵ペアもサーバ上で作ってしまいます。.keyが秘密鍵、.key.pubが公開鍵です。

# cd /etc/wireguard
# touch server.key
# chmod og-r server.key
# wg genkey > server.key
# wg pubkey < server.key > server.key.pub
# wg genkey | tee client.key | wg pubkey > client.key.pub
 

/etc/wireguard/wg0.conf を作ります。wg0は適当な名前でOK。このファイルはchmod og-rしておくこと。中身はこんな感じです。<.>が適宜変更する部分。

[Interface]
PrivateKey = <サーバの秘密鍵>
Address = 172.30.4.1/24
ListenPort = 51820

[Peer]
PublicKey = <クライアントの公開鍵>
AllowedIPs = 172.30.4.34/32

この例では、VPNトンネルのサーバ側のアドレスを172.30.4.1、サブネットを24bit、クライアント側のアドレスを172.30.4.34としています。WireGuardでは標準で51820/udpを使うので、ポート番号にその値を入れてあります。

本当にこれだけなんです、信じてください!><

Linuxの環境によってFirewallの設定が様々なのが面倒くさいところです。各自の環境に合わせて、クライアントのアドレスに対してポート51820/udpを開けましょう。

クライアントのトラフィックをすべてサーバ経由でインターネットに通したい場合は、IP ForwardingとIP Masqueradeも有効にしておかないといけません。これらの設定は、Linux箱をNAPTルータとして設定するときと同じです。

WireGuardのサーバを立ち上げて、ついでにシステムブート時にも立ち上がるようにしておきます。

# wg-quick up wg0
# systemctl enable wg-quick@wg0

ip a や ip route を実行して、WireGuard用のインタフェース(wg0)や経路ができていることを確認します。引数無しでwgコマンドを実行すると、コネクションの状態が見えます。

 

Mango側WireGuardクライアントの設定

OpenWrtのファームウェアを入れただけでは、WireGuard関係のパッケージが入っていません。System>Softwareメニューで、Update lists...をクリックすると、しばらくしてパッケージリストが更新されます。wireguardをキーワードに検索してみると、関連のパッケージが並ぶので、それっぽいもの()をInstallします。手元ではこんなものを入れてあります。

WireGuard関連のパッケージを追加

WireGuard関連のパッケージを追加

Network>Interfaceメニューに入り、WireGuard VPN Clientのインタフェースを追加します。名前は適当なもので構いません。

WireGuard VPN Clientのインタフェースを追加

WireGuard VPN Clientのインタフェースを追加

下図のように、必要な項目に入力していきます。

Private Keyは、クライアントの秘密鍵(client.keyの内容)です。

IP Addressesは、クライアント自身のVPNトンネルに付加するアドレスです。

まだSaveはクリックしないで!

WireGuardの設定

WireGuardの設定

Firewallゾーンの設定で、WANが含まれるゾーンを選択します。

Firewallゾーンの設定

Firewallゾーンの設定

Peersのタブの中で、サーバを追加します。

Public Keyはサーバの公開鍵(server.key.pubの中身)をコピペします。

Preshared Keyはここでは不要。

Allowed IPsに、トンネルのサーバ側のアドレスを入力します。Mangoに接続された端末から、すべてのトラフィックVPN側に流したい場合は、ここに0.0.0..0/0を追加します。Route Allowed IPsにチェックを入れます。これで、WireGuard VPNが接続された状態では、default routeがVPN側に切り替わりることになります。

Endpoint Portは、サーバがListenしているポート番号です。

Persistent Keep Aliveは、お奨めの25にしておけばよいでしょう。

WireGuardサーバ(peer)の設定

WireGuardサーバ(peer)の設定

はい、もうSaveをクリックしていいですよ!

Mangoにsshでログインして、/etc/config/networkを除いてみると、こんな感じの行が追加されているはずです。

config interface 'wgvpn'
option proto 'wireguard'
option private_key '<秘密鍵>'
list addresses '172.30.4.34/32'

config wireguard_wgvpn
option description 'wgvpn'
option persistent_keepalive '25'
option endpoint_port '51820'
option route_allowed_ips '1'
option public_key '<サーバの公開鍵>'
list allowed_ips '172.30.4.1/32'
list allowed_ips '0.0.0.0/0'
option endpoint_host '<サーバのIPアドレス>'

WireGuardのクライアント機能が立ち上がっていれば、wgコマンドを引数無しで実行して、何か表示されるはずです。

VPNトンネルのサーバ側アドレスに対してpingを実行し、応答を確認します。

サーバ側からも同様に、クライアント側アドレスに対してpingを実行し、応答を見ます。双方が正しく応答するようならば、VPN接続が正しく確立されています。この状態でrouteを見ると、defaultがwgvpnデバイスを向いているはずです。

 

どんな経路なの?

WireGuardはL3 VPNで、L2はできません。

当記事の設定によると、Mangoに接続された端末は、MangoのDHCPサーバによってプライベートアドレスを振られます。端末のトラフィックはMangoのNAPTを経由してから、VPNトンネルに流れます。サーバ側で再度NAPTを経由してから、インターネットに出ていくことになります。

 

それで速度は?

WireGuard/Mangoの速度

WireGuard/Mangoの速度

ぎゃぼ……

80Mbps程度の自宅VDSL回線からSINET経由で出て行ったものですが、50Mbps出ていますね。

参考までに、WireGuardをオフにして、MangoのNAPTだけでインターネットに出て行った場合はこんな感じ↓

NAPT/Mangoの速度

NAPT/Mangoの速度

2,000円ちょっとのハードウェアで、これぐらいのことができるようになったんですねぇ (感動)。

ちなみに、GL.iNetからは他にも色々とOpenWrtベースの製品が出ているのですが、他のモデルでも同様に使えるだろうと思います。GL-AR750 (Creta)でも同様の設定で動作確認済みです。

 

おわり

 

GL.iNet Mango for connecting gadgets to WPA2 Enterprise Wi-Fi (or eduroam)

GL.iNet GL-MT300N-V2, also known as Mango, is a tiny travel router featuring VPN. I've figured out how to configure it as a repeater connecting WPA2 Personal devices to WPA2 Enterprise Wi-Fi. It means you can connect your gadgets to eduroam network even if only Personal (PSK) is supported on the devices. (Note that you can do the same using the AP feature on your smartphone.)

GL.iNet GL-MT300N-V2 (Mango)

GL.iNet GL-MT300N-V2 (Mango)

Mango routers are cute.

Mango routers are cute.

Disclaimer

The information here is provided "AS IS" and there's no warranty at all. If you try the same, please do it at your own risk.

It is assumed that you are famililar with UNIX and have ever used vi editor. If you haven't touched any, please STOP here and gives up.

You'll have to give up the GL.iNet easy menu, and use LuCI GUI + CLI instead. An Ethernet cable with RJ45 is needed because the Wi-Fi becomes temporarily unavailable during the configuration.

Mango is a cheap device and supports only 2.4GHz band.

Preparing for reverting the system

You probably need to know how to revert the box to the factory default. Please refer to the user manual. For a shortcut, press the reset button for more than 10 sec and reboot.

TIPS: If you want to take back the GL.iNet user interface after the factory reset but the browser is forced to use LuCI, accessing http://192.168.8.1/index or clearing the browser's cache would solve the problem.

 

Burning the latest OpenWrt firmware

Mango is based on OpenWrt. I tried the current official firmware relase openwrt-mt300n-v2-3.102.bin but could not see how to configure it for WPA2 Enterprise. The official firmware can be found at:

You can find newer OpenWrt firmware for Mango (GL-MT300N-V2) here:

I grabbed the version 19.07.4 (openwrt-19.07.4-ramips-mt76x8-gl-mt300n-v2-squashfs-sysupgrade.bin) and burnt it in the box. The firmware can be installed easily by dropping the firmware file in the system update menu of Mango.

It's strongly recommended "NOT" to keep the configuration.

It seems the firmware from the OpenWrt site uses IP address 192.168.1.1 instead of the Mango's default 192.168.8.1.

 

Initial configuration

The first step is to configure Mango so that it acts as a repeater as usual. The LuCI of the current version doesn't have WPA2 Enterprise option in the Network>Wireless menu. So, the device should be configured using a WPA2 Personal network with a Pre-Shared Key (PSK). You can use any dummy network, e.g. home Wi-Fi. The connection is simple; click "Scan" and type in the PSK in the Network>Wireless menu.

The downlink Wi-Fi on the LAN side also needs to be configured. This can be easily done by clicking "Add" in the radio0 line and choose "Access Point" mode. (You may skip this part if you want to connect your device by Ethernet cable instead of Wi-Fi.)

The firmware is using wpad-basic, a simplified version of wpad. This needs to be replaced with the wpad package that supports WPA2 Enterprise. In the package menu, opkg list needs to be updated first. Then, wpad package can be easily installed after wpad-basic has been removed.

 

WPA2 Enterprise configuration for WWAN interface

The CLI can be accessed by using an SSH client. For example,

# ssh-keygen -R 192.168.1.1   (if another known key is already installed)
# ssh root@192.168.1.1
 

Typing in "ifconfig" will show two IP addresses; one for the LAN on Mango, another obtained from the upper network by DHCP.

WWAN interface can be disabled in the Network>Interfaces menu of LuCI.

At the bottom of the configuration file /etc/config/wireless , two wireless interface configurations exist. The first one is for the LAN, and the next one is for the WAN which is currently configured as WPA2 Personal mode. The WAN configuration needs to be modified. For example, the LAN and WAN configurations would look like: 

config wifi-iface 'default_radio0'
option device 'radio0'
option mode 'ap'
option ssid 'OpenWrt'
option wpa_disable_eapol_key_retries '1'
option key '<PSK>'
option encryption 'psk2+ccmp'
option network 'lan'

config wifi-iface 'wifinet2' option ssid 'eduroam'
option device 'radio0'
option mode 'sta'
option network 'wwan'
option encryption 'wpa2'
option eap_type 'peap'
option auth 'EAP-MSCHAPV2'
option identity '<userID@realm>'
option anonymous_identity '<anonymous@realm>'
option password '<password>'
 

Of course, the <PSK> is the PSK already configured. The fields in < > need to be fixed accordingly. This example assumes using PEAP and won't work for EAP-TLS or EAP-TTLS.

In this example, the server authentication is omitted. It should be configured afterwards in order to keep enough security. 

See also: OpenWrt Project: Wi-Fi /etc/config/wireless

Mango will be connected to the WPA2 Enterprise network sometime after restarting the WWAN in the Network>Wireless menu.

It is recommended to reboot Mango to see if the configuration is persistent.

Simply feed 5V via USB and you are connected.

LuCI Network>Wireless menu

LuCI Network>Wireless menu



Performance

My test shows >20Mbps using an eduroam network fast enough.

 

Need 5GHz?

I haven't tried it yet but GL.iNet GL-AR750 (Creta) and some other models support 5GHz band as well and would work.

 

www.amazon.com

 

 

IdeaPad Duet Chromebookはいいぞ

「いよぅ!、Honeycombじゃないか。長いこと見かけなかったけど、元気そうじゃないか。随分立派になって……、ぇ、Android(ヒト)違い?」― というぐらい、Androidっぽいです。普通の人は気づかないぐらいではないかと。

買う前に散々迷ったのですが、買っていじってみて、予想外によかったので、紹介します。ざっくりとメリット、デメリットを見たい人は、記事の末尾に飛んでください。

Chromebookは、廉価なハードウェアの製品ばかりのせいで、安かろうショボかろうのイメージが付いてしまった感がありますが、ChromeOSってこんなにAndroidと親和性高かったっけかと驚きました。最近廉価品ばかりでロクな製品が出ないと言われているAndroidタブレットよりも、こちらの方をメインにして売り込んだらどうなの、メーカーさん?

まぁ、最後の一押しがこの記事で、とにかく軽量に仕上げられることが決め手でした。

 

なぜか安くなってびっくり

ネットと店頭の価格を比べて、店頭でも(ポイント還元すれば)ほとんど違わなかったので、ヨドバシへGo!

店頭で「これください!」と言ってから、カウンターで支払い……、あれ、なんか妙に安かったけど、モデル番号間違っていない?(あわてて化粧箱の型番を確認) で、店員に聞いてみたら、キャンペーン中でChromebookが一律1万円引きになっているとのこと。NaNと!

ポイント還元分を引くと、実質3万円ちょっとで買えました。

後で調べてみたら、Amazonの限定モデル(注意事項あり、後述)にも¥9,900 OFFクーポンがついていて、あちこちで連動して値引きされていたようです。

 

型番違いがあるので注意!

私が購入したのは、型番がZA6F0038JPのもので、店頭モデルや通販ではこれになるようです。

ところが、Amazonで "IdeaPad Duet" で検索すると、Amazon限定モデルというのが出てきて、なぜか妙に安い。普通、何かお得なのかと考えるじゃないですか?ところが、これはそうじゃなくて、単にストレージ容量が半分(64GB)の廉価版でした。

型番はZA6F0024JP。あまりヘビーに使わない人は、64GBでもよいのかもしれません。ちなみにこれ。

 

「64GBでどれぐらい使えるの?」という人のために、参考までに情報を出しますと、初期設定後にtwitterクライアントやKindleなどのアプリを入れて、ちょこっと遊んだ程度で、30GBほど埋まっているようです。ChromeOSではLinux (Debian 10)をオプションで有効にできるのですが、これが8GB弱ほど持っていきます。よって、Linuxを有効にすると37GBほど使われているといった状況でした。

というわけで、写真や電子書籍は軽く使う程度という人なら64GBでも足りるかもしれませんが、多めに使いそうな人は128GBモデルにしておいた方が無難だろうと思います。数千円の違いなので。

 

MOFT Xで大変身

先のASCIIの記事にあるとおりなのですが、標準添付のスタンドが重くて、動きも固いので、折角軽い本体の魅力を大幅にスポイルしています。標準アクセサリに拘る人も、ぜひこればかりは諦めた方がよいでしょう。

要するに、MOFT Xは「買い」です。MOFTにはサイズ違いがあるので、10インチクラスの方を買いましょう (8インチではなくて)。

このMOFT X、薄くて軽量、スタンドとしてしっかり立つし、タブレットの片手持ちハンドルにも抜群なのですが、一度貼り付けると剥がしにくいのが難点かと。覚悟して貼り付ける必要があります。ロゴや型番、シリアルなども隠れてしまうので、予め写真を撮っておくとよいかも。

IdeaPad Duet 背面

IdeaPad Duet 背面

IdeaPad Duet 型番等

IdeaPad Duet 型番等

MOFT Xを取り付けた状態でこのとおり、軽量10インチAndroidタブレットの出来上がり。

IdeaPad Duet + MOFT X

IdeaPad Duet + MOFT X

キーボードの接続部は、マグネット入りのコネクタと、やわらかい素材でできています。そのせいで、閉じた状態でタブレットとキーボードがピッタリ固定されず、少しずれてしまうのが残念。

あと、タブレットとして立てる場合はよいのですが、キーボードを付けた状態ではコネクタが本体下に潜り込む形になるため、右側が少し浮いてしまうという微妙な欠点があります。リジッドなヒンジならよかったのかもしれませんが、そうすると重量増になりそう。

IdeaPad Duet + MOFT X

IdeaPad Duet + MOFT X

 

ペンは収容できない

そう、これ!

どこの製品も軒並みそうなんですが、ペンをスマートに収容できないのが、タブレットの価値を落としているよなと思うわけです。感圧式のペンが格納できるなら最高でしょうが、そこまで頑張らなくても、せめてスタイラスぐらいは本体にくっついてほしい。

キーボード接続部のフレキシブルなヒンジには、電線が入っているので、ここにペンをひっかけるのは破損の危険性があるでしょう。どうしましょうかね?

 

メリット・デメリット

初期設定からちょこちょこいじった程度ですが、まずはメリットから。

  • ほぼほぼAndroid 9相当のタブレットとして使える。Google PlayからAndroid用アプリも導入可能。面倒なAPIを使っていないアプリならだいたい動きそう。
  • 安く買えるのに、10.1型IPS液晶(1920x1200)、10点マルチタッチ対応パネル搭載。(FullHDにも満たないしょぼいChromebookは猛省するように)
  • 重量も動作も軽い。デタッチャブルで、ちゃんとタブレットとして使える。
  • 使い慣れたtwitterクライアントが使える。ツイタマ+使えました(・∀・)ノ
  • KindleAcrobatが普通に使えるので、電子書籍や論文読みにもよさそう。
  • Linux (中身はDebian 10) のCLIが使える。Xも動くらしい。 (ChromeOSの設定でLinux (beta)を有効にするだけ)
    ChromeOS側の一部ディレクトリもマウントでき、ファイルのやり取りが可能。 (まだしょぼいシェルしか使えないiPadOSとは違う)
  • aptが普通に使えて、GCCも入る(
  • 付属のUSB Type-C - ヘッドホン変換でも、そこそこ音がよい。(ギスギスしたイヤな音が出にくいのがよい)
  • USB Type-Cで充電できる。
  • WPA2 Enterpriseに対応しているので(今では当たり前)、eduroamも大丈夫。eduroam CATも使える(はず)。
  • (追記予定)

気になるデメリットはこんなところ。

  • タブレットなのでグレアなのは仕方ないとしても、素材がやわく、反射防止が不十分。
  • ペンの常用が考えられていない。
  • 軽い分、ボディの強度に不安がある。学校向けに、オプションでバンパーが付けられるとよい。
  • 添付のスタンド、お前はダメだ。
  • LTEモデルがない。
  • メインメモリが4GBしかない。
  • カメラが遅い (モーションに弱い)。
  • 内蔵スピーカーがシャカシャカ。
  • USB Type-Cの端子が一つしかなく、しかもUSB 2.0。
  • もしかしてPasspoint非対応? (ChromeOSのせい?)
  • (追記予定)

参考:Lenovo IdeaPad Duet Chromebook 製品仕様書 ZA6F0038JP | レノボジャパン

 

ソフトウェア周りについては、別記事にしようと思います。

 

おわり

OpenRoamingの近況 - 2020/11

Passpointが登場してから早や n千年、City Wi-Fi Roamingから4年、Cisco OpenRoamingが出て1年半、WBAに譲渡されてやっと国際ローミングが動き出すかと思ったら、2021H1までpilotとのこと。Wi-Fi業界って、意外に動き悪いんですね……。

まともに始めなさいよ!

というわけで(?)、近況報告です。

現在、幾つかのベンダやキャリア、ISP、都市Wi-Fiなどが参加表明しており、2020年内に基地局が動き出しそうなグループが20程度あるようです。具体的にどこかは書けませんが。

とりあえず、実際に利用できるようになった(らしい)ところを公開情報で拾うと、以下のとおり。

news-blogs.cisco.com(2019/10/30)

wballiance.com(2020/10/21)

cityroam.jp(2020/10)

[2020/11/25 Blogpost追記]

wballiance.com

完全なリストがないのと、進捗が明確に伝わってこない(大抵は風呂敷)ので、本当の順位は分かりませんが、広域での基地局の展開は日本のCityroamが3~4番手のようです。💪💪💪

Cityroamの参加事業者が、基地局に順次OpenRoamingを設定しているところなので、対応エリアが増えるまで少し待ちましょう。

 

どんなアカウントが使えるのか、現在の状況をまとめてみたのがこちら↓

結論から言うと、携帯電話会社やBoingoみたいな大手はまだ準備中です。キャリアのSIM認証が観光地にとっては非常に魅力的だっただけに、コロナ禍と併せて、ちょっと厳しい感じです。キャリアの動きが悪いのは、社内での調整にてこずっている可能性があります。何しろ、実際のサービス品質はともかく()、何かにつけて品質やユーザエクスペリエンスにうるさく、パートナーに注文が多い業界なので。

Google PixelでAndroid 11を使っている場合、OpenRoamingのサービスエリアに入ると、Googleアカウントでサインアップできるメニューが出てきます。この機能でOpenRoamingのプロファイルを端末に仕込めばOK。

Android 11でOpenRoaming

Android 11でOpenRoaming
(写真はpirosapさん提供, 札幌学院大学)

Android 10では、Cisco時代のOpenRoaming appが使えますが、デモ用なので、利用できないサービスエリアが少なくないでしょう。WBA OpenRoamingとも違う仕様で作られています。

play.google.com

Android 10でOpenRoaming

Android 10でOpenRoaming
(東北大学サイバーサイエンスセンター)

iOSでは、GlobalReachのプロファイルが使えます。これもデモ用なので、エリアによっては利用不可になっていることがあります。

osu.globalreachtech.com

国内で使う場合は、OpenRoamingによる接続ではなく、基地局に設定されたGlobalReach用のPasspointプロファイルの方で接続されることが多いと思います。実際、その方が安定しています。

なお、iOS 13.xではそれなりによく動いていたPasspointですが、iOS 14になってからつながりにくい問題があるようで、調査中です。

 

おわり

 

Windows 10でPasspoint対応の子機が必要ならこれ、TP-Link T2U Nano。

安価に安定したPasspointを試したいならこれ、Aruba AP-203H, R。

 

OpenRoamingに接続してみる

OpenRoamingって、誰が、どこで、どうやって使えるの?

あっ、はい、それですよね……(汗

例えば、Cisco OpenRoaming appを使って、試すことができます。今回、これを使ってのテストの様子を紹介します。

前にOpenRoamingの記事を書いてから、いつの間にか136日も経っていましたorz (仕事しろ←)

hgot07.hatenablog.com

実はCityroamWBA OpenRoamingに参加してから少し間をおいて、8月末にやっとOpenRoamingの認証連携ネットワークに接続できました。実を言うと、OpenRoamingは2021年半ばまでトライアルの位置付けとのことで、運用に関わる細かい仕組みやルールは、この期間に作っていくみたいです (おそいぞ、コラ)。そんな中で、とりあえず実証実験用の環境をなんとか構築できたところです。

OpenRoamingでは、参加する携帯電話会社やプロバイダのアカウントが利用可能になる予定ですが、実際にOpenRoaming用のPasspointプロファイルの発行まで漕ぎ着けた事業者はまだ数えるほどのようです (ぇー)。事業者にとっても新しいシステムなので、内部での調整に時間がかかっているのかもしれません。

さて、本題のCisco OpenRoaming appですが、こちらで入手できます。Android 10以降が必要です。
[2020/11/2追記] とある情報筋によりますと、ビルド番号QQ3A.200605.002以降が必要とのことです。

play.google.com

このアプリ、現在のバージョンは1.1です。そして、WBAに移管される前のCisco OpenRoamingの仕様で作られているため、WBA OpenRoamingに対応する新しいサービスエリアでは、たぶん利用できません。

ΩΩΩ<な、なんだってー!!

実際は、Passpoint接続で利用するRoaming Consortium Organization Identifier (RCOI)にCisco時代のものが埋め込まれていて、WBAで定義された新しい方とマッチしません。それじゃどうするのかと言いますと、基地局に古いRCOIを追加してあげれば繋がるようになります (ぉーぃ)。

というわけで、はいっ!

 

OpenRoaming @ 東北大学サイバーサイエンスセンター

OpenRoaming @ 東北大学サイバーサイエンスセンター

前述のアプリが何をやっているのかというと、以下のような感じです。

GoogleAppleは自前でPasspoint用プロファイルを配布していないので、アプリ上で利用者がソーシャルログインを試みます (GoogleではOAuthらしい)。認証に成功したら、その利用者に紐づいたPasspointプロファイルがCiscoのIdPで生成され、端末にインストールされます。

OpenRoamingの利用者認証は、端末にインストールされたプロファイルを用いて行われます。プロファイルには"google.openroaming.net"というレルムが埋め込まれているので、端末からの認証リクエストはこのレルムを頼りにCiscoのIdPまで届けられます。

さて、すぐに分かったと思いますが、プロファイルの発行元はGoogleAppleではありません。このため、例えばネット上で利用者が悪事を働いたりした場合に、そのインシデント対応をどうするかが、課題として残っています。技術としては「動く」のですが、プロファイル(アカウント)発行とインシデント対応についての責任体制の開発も必要ということです。もしインシデント時に利用者の追跡が困難となるようならば、この方式のプロファイルを受け入れてくれる通信事業者は限られてくるでしょう。

それで、一般の人たちも試せるの?

東北大学サイバーサイエンスセンターの裏で、試験用の基地局が使えます。色々と実験中なので、たまに落ちていたりしますが……。

また、Cityroamの一部の基地局でも、近いうちに試験電波を出せるように調整中です。

 

おわり

書評:「無線LAN技術 最強の指南書」(日経BP)

[2021/5/27追記] この本には、後継とも言える新しい本があります。
書評:「これ1冊で丸わかり 完全図解 無線LAN入門」(日経BP) - hgot07 Hotspot Blog

 

無線LAN」とタイトルに含まれる本は数多あれど、初心者向けの、価値があるのかすら分からないレベルのものばかり目につきます。ホテルはだいたい無線LAN完備になり、カフェなどの店舗でもフリーWi-Fiが提供され、大学のキャンパス無線LANの導入・運用に携わる人々も少なくない昨今、無線LANシステムの構築側のノウハウが重要なはずですが、その点についてまとめられた本は、なかなか見当たらないのです。

たまたま見かけた拾い物ですが、いい感じの本があったので、紹介します。(ムック本なのでおそらく再販されず、物理本が高騰しているので、気を付けて。定価2,400円(税抜)ですよ)

 

無線LAN技術 最強の指南書

無線LAN技術 最強の指南書

  • 発売日: 2019/10/03
  • メディア: Kindle
 

 

# えっと……、「最強の指南書」 なんて書かれたら、かえって胡散臭いから、スルーするところだったじゃないですか。

 

第1部と第2部は、他にもありがちな解説なのですが、無線LAN構築に携わる人なら手元に置いて損はない内容でしょう。特に、「11axなんて高速性で盛り上がっているけど、チャネルボンディングで運用しにくい大規模システムでは速度出せないし、無意味なんじゃないの」とか斜に構えている人は、知識のアップデートをした方がいいです。

公衆無線LANの認証方式についても、うまくまとめられています。ただし、EAPや、特にPEAP周りの説明がちょっと怪しいので、他の文献で補足した方がよいです。

さて、私は以前、こんな記事を書きました。

hgot07.hatenablog.com

技術に詳しい人ならば、原因が分かったらその逆を探って、システムを改善することができるでしょう。ただ、ある程度の現場経験がある人でも、問題解決の糸口が分からないとか、話ばかりでデータがないじゃないか!ということはあると思います。今回紹介した本は、そういうことに応えられるものだと思います。

第3部は、無線LANシステムの構築の話です。サイトサーベイの方法も書かれているので、大規模システム構築の実践に役立つでしょう

個人的に、本書で最も価値があると思ったのは、第4部第1章「試してわかった!無線LANの素朴な疑問」です。無線LANの仕組み上、おそらくこうなるんだろうなぁとぼんやり頭で考えていたことが、実機やシミュレータを用いて得られた実験データによって裏付け、および、解説されています。想像した通りの挙動もあれば、新たな発見もあるでしょう。

ただ欲を言わせてもらえば、どの調査項目も「そこもうちょっと掘り下げてよ!」という感じがあり、満足度8割といったところです。あぁ、その先は自分でやれってことですね、ハイ……。

測定ツールの具体的な使い方については書かれていません。というか、本職の人が使う高価なものばかりで……orz

一般的なスタジアムでは、1APあたり300~500席をカバーしているところ、楽天生命パーク宮城では120席に1APという高密度にしているという話は、具体的な数値を初めて知りました。現行システムの前は、ビームフォーミング型の基地局を導入して、キャパシティ不足で失敗したんですよね、たしか。

 

おわり

Insta360 GOで遊んでみる

My new gear! というわけで、ヨドバシで見かけて衝動買いしてきました、Insta360 GO。小さいは正義!

Insta360 GO

Insta360 GO

2019年発売なので、今頃感はあります。

ポイント

  • とにかくかわいい。
  • 尖った製品で面白いとはいえ、人柱上等!の人以外にはお奨めできない。
  • 画質は普通のアクションカメラには遠く及ばない。
  • 色々と不安定。なぜかうごく。

どんな製品?

既に色々とレビューが上がっているので、検索してみてください(投げやり)。

公式によると「20グラムのボディでブレない瞬間を」だそうです。とにかくかわいい。このサイズで手ブレ補正が効くのは凄い (というかおそらく本体側で処理していない)。

www.insta360.com

えっと、実売2.2~2.6万円ぐらいで、ちょっと高いんでないかい?というのが率直な印象。これでスパイカメラ並みのゴミだったら絶許。

 

 

画質は……

公式のビデオが綺麗すぎる気はしますが……。

5千円~1万円ぐらいで、胸ポケットに入れられるようなスパイカメラが売られていますが、アレ酷いですよね。画角が狭い、画質はノイジー、屋内や夜間ではブレブレで全然使い物にならない。すぐ目の前の人の顔が一瞬でも映っていればラッキーという程度のゴミです。

それに懲りて、ウェアラブルに使えるカメラを探していたのですが、GoProをぶら下げて歩くのは物々しいし高いしで困っていたのですが、そこで目に付いたのがこのInsta360 GOというわけです。

他のレビューにもありますが、いわゆる普通のアクションカメラと比較するのは可哀想なレベルです。粒子ノイズは多いし、ブレも多め。しかし、前述のスパイカメラの類に比べたら各段に良いです。何よりも、広い画角でもそこそこ綺麗に映っているのがすごい。しかも、強力な手ブレ防止が効くのがすごくて、撮影中にカメラを回転させても画像が回らなくて最初「ぇ?」と思いました。

サンプルは他の記事が充実しているので、そちらをご覧ください(投げやり)。


Insta360 GO (time-lapse mode test)


Insta360 GO (normal video test)


Insta360 GO (night scene test)

「このサイズなら」という条件付きですが、なかなか熱いガジェットだと思います。

 

実際熱い……

本体が熱くなるので、最初は初期不良で火を噴くのではないかと、かなり驚きました。裏側はアルミブロックなのですが、ファイル転送のためにPCに接続しつつ、充電も一緒に進むと、手で持っていられないほど熱くなります。実際、放り投げてしまいました(汗

 

撮影時間が短い

どうも熱問題が全体の仕様に悪影響を及ぼしているのではないかと勘ぐりたいほど、撮影時間が短いです。

まず、普通速度の動画は60秒間が最長です。えっ!?

後述するアプリで長さを設定できるのですが、5秒から60秒まで、プリセットされた長さしか選べません。それより、この時間では、ちょっと歩いただけで、すぐ終わってしまうではありませんか。

長時間撮影したい場合は、タイムラプス、ハイパーラプスで撮影するしかありません。それでも最長5分しかありません。どうしろと……

要するに、60秒とかタイムラプスで5分とかで足りる用途なことを確認してからでないと、買ってはいけません。

 

色々とイマイチ

本体はめっちゃ小さくてかわいいのですが、付属する充電ケース(バッテリ内蔵)が微妙に大きくて扱いにくいのが残念。

充電ケース

充電ケース

蒲鉾状のゴムが付属していて、これをひっくり返してLightningプラグに挿すと、このとおり。使い方合ってる?

充電ケースを立たせた状態

充電ケースを立たせた状態

充電ケースの他に、色々とアタッチメントが付いてきて、一通りの使い方に対応できるようになっています。ウェアラブルカメラで使うなら、鉄板パネルを使って、本体の強力なマグネットでシャツを挟むのが一番すっきりするでしょう。すぐ落としてしまいそうなので、社外品の紐付きのケースを調達予定。

[2020/10/5追記] というわけで、届いたのがこれ。紐の先にもマグネットが付いていて、本体に強力にくっつきます。左がInsta360 GOに付属の板ですが、これでシャツを挟むよりも、落としにくいかと。

GEEME Insta360 GOシリコン保護ケース

GEEME Insta360 GOシリコン保護ケース

 

インタフェース

AndroidiOSWindows 10と、一通りの環境で使えることになっていますが、iOS以外は色々と微妙な感じです。本体だけでは接続できず、必ず充電ケース経由になります。

iPhoneなどは、充電ケースのLightningプラグを直接挿すことができますが、iPhoneにカバーを付けている場合は奥まで入らないことがあります。

Androidスマフォでは、このような接続ができず、USB-Cで接続するための尻尾(付属品)が要ります。

PCの場合は、付属するUSB-AまたはUSB-Cのケーブルで接続することになります。

ケーブルや充電ケースを持って歩く羽目になるのがつらいところ。せめて本体にMicroUSBのプラグが付いていたら、本体と変換コネクタだけで済む機会が圧倒的に増えたはずなのに。スマフォがあるなら充電パックも必要ないし。

 

アプリ

この製品はiOS専用と思った方がよいというレビューがありますが、その通りです。iOSAndroid向けにアプリが提供されています。カメラのモード設定などはBluetooth接続で可能ですが、動画の転送は有線接続が必要です。要するに、本体だけではその場で動画を確認できず、充電ケースが要りますorz

Windows 10 (64bit)用のアプリも提供されていますが、これがちょっと微妙です。手元のPCの一つでは、画面が崩れて、使い物になりませんでした。また、USB接続がかなり不安定で、外部ドライブとしてなかなか認識されません。根本的にドライバの作りがおかしい印象。

 

……とまぁ、こんな感じなので、有効活用できる人は限られるでしょう。改良版が出てくることを期待します。

 

おわり