hgot07 Hotspot Blog

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

Passpoint対応の安価なアクセスポイントはどれか

Passpointを、あまり金をかけずに、大して面倒もなく触ってみたいという方のために、安価なアクセスポイントを紹介します。といっても、国内ではUniFi AP AC ProかAruba AP-200シリーズぐらいしかないという状況がここ300年ぐらい続いているのですが……。

さて、Passpoint、またの名をHotspot 2.0、残念ながらあまり流行ってる感じがしませんよね。Passpointがありがたいのは、

  • SSIDが統一されていないローミング環境で一貫した接続性が欲しい
  • 利用ポリシーが合致するところだけで端末を使いたい

といった場面ぐらいなので、一つの機関内に閉じている無線LANで活路を見出すのは難しいでしょう。ただ、以前書いたように、OpenRoamingではPasspointが必須なので、ある時急に立ち上がる可能性はあります。

hgot07.hatenablog.com

Passpointの設定については、こちら↓が参考になるでしょう。

booth.pm

それでは、おおまかなお奨め順に、紹介していきたいと思います。なお、現在PasspointとHotspot 2.0は同じものとして扱われており、業界では最近Passpointの名称を推進する方針になったのですが、歴史的経緯によりハードウェアベンダはHotspot 2.0の記載が多いです。適宜読み替えてください。

 

Ubiquiti UniFi AP

私がPasspointをいじり始めて、何か安いのがないか探していた頃に、GlobalReachの人から紹介されたのがUbiquitiです。当時は国内で技適が通っているものを入手するのが大変面倒だったのですが、現在では公式ストアもあり、買いやすくなりました。ただし、ごく一部の製品だけという問題は引き続きあります。

以下のモデルは、Passpointの動作が実機で確認されています。

  • AC Lite
  • AC Pro
  • AC Long Range (LR)

要するに、この世代のACシリーズだけということです。

この「実機で確認」というのがイヤらしいところで、メーカーはどのモデルが対応機種なのかを明言していません。ファームウェアをアップデートしたら突然使えなくなったという例もあるなど、どうも信頼性に欠けます。

国内で利用できるのは、技適のある AC Pro (UAP-AC-PRO) 一択となります。各国の規制に合わせたバリエーションがあるので、日本向けの製品を買いましょう。PoEインジェクター付きで、2万円しないで買えます。

(アマゾンなどで輸入業者から買うと、US版など、他の仕向地のモデルが届くことがあります。特に、US版はFrequency-lockedとなっているので、絶対に避けるべきです)

UAP-AC-PRO

UAP-AC-PRO (新旧パッケージ)

jp.store.ui.com

以下のモデルではPasspointが動かないことが確認されています。

  • nanoHD
  • Dream Machine (UDM)
  • UniFi 6 Lite (U6-Lite)

AC Proより新しく、コンパクトなnanoHDには期待していたのですが、非対応です。最近登場したWi-Fi 6対応機のU6-Liteは、99USDとか安いのでかなり気になっていたのですが、非対応との報告がorz

UDMは、元々Passpoint非対応だったのですが、最近のアップデートを当てたら [COMING SOON] の表示が!これ、Controller部分だけの可能性もあるのですが、内蔵APまで対応してくれることを期待。

UniFi APシリーズを使うには、コントローラが別途必要です。WindowsLinuxで、無償のUniFi Controllerを動かすこともできます。Cloud Keyというハードウェアデバイスを買って、APと同じネットワークにぶら下げておけば、これがコントローラになります。

また、コントローラが自宅のNAT裏にあっても、クラウドコントローラ https://unifi.ui.com/ 経由でアクセスできるようになり、出先からの管理も可能となります。この辺の説明が乏しくて、概要が分かりにくいですよね、Ubiquitiは。

UniFiシリーズのPasspoint設定はすべて、コントローラのGUIから行えます。Arubaと比べて、この辺はかなり楽です。

注意点として、UAP-AC-PROでPasspointを使うには、ベータ版の5.x系ファームウェアが要ります。リリース版の4.x系ではPasspointが動きません!

というか、以前の3.x系では動いていたのですが、コントローラが6.x系、APが4.x系に移行した際にPasspoint機能が外れてしまいました (オイコラ!)。6.x系コントローラでは3.x系APがエラーでつながらないので、5.x系に上げる必要があります。ベータ版は、https://community.ui.com/releases でダウンロードできます(要ログイン)。

 

Aruba

Aruba AP-200シリーズは、廉価モデルですが、Passpoint対応しています。AP-207は古いので、今買うならAP-203RやAP-203Hでしょう。2万円台で買えます。Aruba製品も仕向地によるバリエーションがあるので、必ずJPモデルにしましょう (くれぐれもアマゾンでUSモデルを掴んだりしないように)。

ちなみに、以前はIAP-200シリーズとして、スタンドアロンモデルに別の型番が付いていましたが、現在はAP型番に統一されています。AP-203R, HでAruba Instant OSが使えます。

コントローラに収容して使おうとすると、コントローラを買うのに加えて、AP一台ごとにサブスクリプションも必要になるので、ちょっと遊んでみるような値段にはなりません。

Aruba Instant OSで、Passpointまわりの設定はCLIで行う必要があります。ちょっと敷居が高いです。

Aruba Instant OnシリーズはPasspoint非対応ですWi-Fi AllianceのサイトではCERTIFIED Passpointになっているのですが、実際は設定項目がありません (ヒドイ)。

 

 

 

Cisco Meraki

廉価という観点から少し外れるので、入れるかどうか悩みましたが……。

確実かつGUIで容易にPasspointが使えるなら、多少高くてもよいという人向けです。Merakiの安いAPを探すことになります。

ただし、Merakiはライセンスの紐付けが厳しいため、中古で流れているAPに手を出すのは止めた方が無難です。Merakiのビジネスは、ハードウェアにはさほど価値がなく、サブスクリプションの方がメインと考えるべきです。

2018年頃はまだ青々としていたdashboardも、最近は随分安定して使えるようになりました。Passpointをビジネスでも使いたいと考えるなら、Merakiは1台ぐらいリファレンスに持っていた方がよいと言えます。

参考までに、私はMR18、MR33、MR36を使っています。

Meraki GoはPasspoint非対応です

 

MikroTik

hAP acなら、VPNでゲストネットワークを保護できて、リモート管理もしやすく、Remote AP (RAP)のように使うことができます。小規模店舗などのマネージドWi-Fiを構築するには最適かもしれません。ただし、Passpointのサポートがまだまだです。

一応、私が調べた限りで、Passpointの動作確認ができているのは、以下のモデルです。

  • hAP ac
  • hAP ac Lite
  • hAP ac2

このうち技適があるのがhAP acだけなので、これ一択ということになります。

冒頭に上げたPasspoint本に書かれているとおり、Passpointまわりの設定はCLIです。まだバグっぽいところも多くて、なかなか洗練されてきません。

最近のトラブルとして、iOS/iPadOS 14.xでPasspointによる接続ができないという問題があります。これについては、現在調査中です。

[2021/6/5追記] この問題は、RouterOS 6.48.3、6.47.10 (long-term)で修正されました。

というわけで、現時点ではあまりお奨めできないモデルに留まっています。RouterOS自体はおもしろいし、Passpoint以外でAPとして使うことはできるので、興味のある方はどうぞ。3万円ぐらいです。

他のAPと同様に、USモデルという極悪仕様の製品が出回っているので、掴まないように注意しましょう (USモデルはfrequency lockが解除できません)。MikroTik製品は、Intl(国際)版とUS版に分かれています。

 

life-seed.stores.jp

 

おわり

AMD Ryzen 7 PRO 4750Gで小型PCを組んでみる

通電しっぱなしのサーバ用途のPCを更新するため、絶対的に性能が高い割に消費電力が小さいCPUということで、今ならRyzenしかない!と選んだのがAMD Ryzen 7 PRO 4750G。実は2年前にRyzen 5 2400Gを衝動買いしていたのですが、なんだかんだで組み立てる前に(笑)世代交代が進んでいました。

よく出回っているベンチマークの話はしません。自分が必要としている固有ベクトル固有値計算が回ればOK。今回のサマリは以下のとおり。

  • TDP 65Wと省電力なのに鬼のようなシングルスレッド性能の4750G。マルチスレッドでもよく回る。
  • GIGABYTE B450 I AORUS PRO WIFIは5000シリーズまで行ける。B450のくせに。
  • クーラーはよく選ぶべき。
  • Mini-ITXは、ちっちゃくないよ!(実際大きい)
  • SilverStone SST-SG13B-Cは、まぁまぁ使える。

 

Ryzen 7 PRO 4750G

それで、その4750Gですが、BOX品ではなくて、トレイで出回っています。店によっては、マザーボードとセットでないと販売しないとか寝ぼけたところもありますが、流通上そんな制約はないようで、単体で買える店は簡単に見つかります。ドスパラの店頭で買いました。

 

マザーボードはB550?B450?

省スペースで行きたいので、最初はASRock DeskMini X300も眺めていました。

 

ちっちゃくて、いい感じなのですが、メモリがSO-DIMMになるのと、冷却の不安が少し。あと、今回はHDDもつなぐサーバ用途なので、見送りました。自宅用にも考えたのですが、もっと電力の小さいASUS PN50にしてしまったというのは内緒。

手元にPhenom II X4 910eで組んだMini-ITX機があるので、ガワを流用できるかと思ってMini-ITXマザーボードを色々と眺めていたら、B450、B550ともそれなりの値段がする……。運よく出会った中古品がこのモデル。

www.gigabyte.com

GIGABYTE B450 I AORUS PRO WIFIです。

普通、B450ではRyzen 5000シリーズに非対応で、B550だと今度は2000シリーズが落ちるという具合の製品ラインナップなのですが、このモデルはなんと「Athlon 200GEから5950Xまで行けてしまう」という神仕様。色々と遊べそうです。もちろんB550の製品群と比べたらPCIeやWi-FiEthernet周りは弱いですが、どうせMini-ITXで拡張性低いので、がんばらない。

 

仮組み、そして熱ダレ……

手元にあったケース、KEIAN KT-CUBE-ITX01に、とりあえず収めてみます。クーラーは同じTDP 65Wの910eから奪ってきたものを装着。

BIOS POSTでコケる_(゚。3」∠)_

どうやらBIOSのバージョンが4750G対応のF60まで上がっていないらしい。2400Gを手元に残しておいて助かった……。

気を取り直して、ケースのカバーを開けたままで、いざベンチマーク開始!

結果は前の記事に書きました。シングルスレッドでは、3950Xと同程度という、鬼CPUでした。4並列にしてもそれほど性能は落ちない

hgot07.hatenablog.com

ところが、カバーを閉じてみたら、まさかの熱ダレ……_(゚。3」∠)_

シングルスレッドでは大丈夫そうでしたが、4パラにしたら4.4GHzほどだったクロック周波数がみるみる下がって3.0GHz付近に。これはまずいですよ。

今どきのCPUは、温度に応じてこまめに周波数スケーリングが働くので、焼き鳥(死語)になる前に性能低下となって現れます。おもしろいです。Linuxだと、grep MHz /proc/cpuinfo | sort -rn とかで観察できます。

910eのクーラーはヒートシンクがアルミ製だったので、もしやと思って銅製のクーラーに交換してみたら、きちんと性能が出るようになりました。こんなこともあろうかと残しておいたOpteron 180マシン、ドナーになってくれてありがとう🙏

クーラーはよく選ぶべきです。でないと、気付かないうちに性能が落ちていたりして、もったいない。

 

ケースを交換してみる

さて、これで万事解決かと思いきや……、負荷をかけると微妙にうるさい_('、3」∠)_ KEIANのケースに付属してた電源も質があまりよくないのですが、どうもCPUの排熱がうまくいっていない予感。

格安に上げる予定だったところ、これでは気が散って仕方ないので、ケースを変えるという作戦に出てみる。Mini-ITXのケース、小さいくせに結構お高いんですね……。

安めで、Mini-ITXの貴重な1スロットを潰さないケースを探して、行き着いたのがこれ、SilverStone SST-SG13B-C

 

USB-C端子が付いているのですが、マザーボード側が非対応なのが残念。

このケース、拡張スロットの穴が二つあって、2スロット厚のGPUも挿せるようです。あと、電源がSFXではなく通常のATXなところもおいしい。

さて、手際よく()マザーボードを移植して……、ぇ、クーラーがPSに干渉する;;

電源に干渉するクーラー

電源に干渉するクーラー

選択肢は二つ。

  • 前のケースに戻して、静かでファンの強そうなSFX電源に交換してみる。
  • 高さの低いクーラーに交換する。
  • 前のケースに戻して、カバーを開けたまま運用する。

(アレ?)

とりあえずヨドバシで薄型クーラーを適当に見繕ってきて、取り付けてみたの図。

狭い

狭い

狭い!

一応、6cm程度の隙間はありますが、4cmのものを取り付けてこれ。空気の流れが心配です。

ちなみにこのクーラー(IS-40X)、ちょっと失敗でした。マザーボードの裏からとめる化石時代のタイプだったのでゲンナリ。まだそんな製品が存在していたんですね。せっかく組付けたマザーボードを泣きながら外して、付け直す羽目になりました。

ケーブルが邪魔

ケーブルが邪魔

古い電源ユニットを流用したので、ケーブルがめっさ邪魔です。

これでカバーを閉じて、yes >/dev/null & を8個走らせてみましたが()、4.2GHz程度で安定しているので、大丈夫でしょう。

以前のKEIANと比べると、横幅が2cmほど広いです。奥行はKEIANの方が曖昧3cm長い。

意外にちっちゃくないMini-ITX

意外にちっちゃくないMini-ITX

小さい印象のあるMini-ITXですが、箱に詰めてみると、意外に小さくないです。むしろ最近のメーカー製PCの方がずっと小さい。

このケース、ちょっとヤワな感じで、ネジ山を潰しがちなので注意が必要です。パンチングメタルだらけなので、真空管アンプみたいにも見えます。Connection Machineみたいにするのも楽しそうです。

 

おわり

AMD Ryzen 9 5950Xを試してみた

さて、通電しっぱなしのPCなので、絶対的に性能が高い割に消費電力が小さい、TDP 65W以下のCPUが私は好きなのですが、それで最近組んだのがRyzen 7 PRO 4750GのPC。4750Gは、本当に効率のよいCPUですね。GPU使わないなら、外付けのGPUが不要なところも電力的に嬉しいです。

ところが、手元の数値計算用のプログラム(中身はほぼ固有値計算)の実行に時間がかかるので、敬遠していたハイエンドCPUも味見したくなってしまいました。アーキテクチャが凄いと話題のZen 3が気になり出したら、なかなか止められない……。品薄でもあったものが少量流れてきたことから、気が付くと店舗目指して高速を飛ばして(誇張)いました。

寒い冬だし、暖房も兼ねてていいよね?

Ryzen 9 5950X

Ryzen 9 5950X

クーラーが付属していないので、10万円も払ったのにまるで空箱を渡されたみたいな微妙な気持ちw

こんな高いCPUを買うなんて、Opteron (Socket 940)以来のトキメキを感じます。

 

換装、そして起動しない_('、3」∠)_

最近組んだ4750Gマシンですが、早速5950Xに挿し変えてみます。

マザーボードは、あまり吟味したわけではなくて、たまたま中古で安く買えた ASUS TUF GAMING B550M-PLUS (WI-FI) です。GPUを追加しないといけないので、手元にあったGTX 1660 Superを追加。

見てくださいこの大きなファン

見てくださいこの大きなファン

5950XのTDPは105Wなので、往年の130Wクラスと比べてそんなに大きなクーラーが要るとは思えないのですが、とりあえず様子見です。(クーラーをデカくするより、熱気を効率よく排出する仕組みの方が重要なのに、(micro)ATXとタワー型筐体はその辺が色々とダメ)

サクサクと換装が済んで、恐る恐る電源を入れてみたところ、正常にブート画面が出て一安心……もつかの間、openSUSE Leap 15.2がブート中に刺さる!_('、3」∠)_

 

openSUSEは起動しない

マザーボードファームウェアは最新版に更新済み、openSUSE Leap 15.2のソフトウェア一式もアップデート済みなのに、"broken BIOS?"とかぬかしやがりました。画面に色鮮やかなノイズも出て、嫌な予感がします。

ちょろちょろ検索してみた結果、これを発見。

forums.opensuse.org

どうやら、カーネルがZen 3をまだサポートしていない予感。CPUを戻していじりなおすのも面倒だし、幸いにもメイン機ではないので、15.3 alphaに上げて様子を見よう、そうしよう!

というわけで、15.3 alphaにアップデートしてみたら、すんなりブートしました。ふぅ……

 

4750G vs 5950X

こんなこともあろうかと、ベンチマーク結果を少し残しておいたので、表にまとめてみます。ちまたによくあるベンチマークプログラムではなく、先に書いた手元のプログラムです。ベクトル化できない、if文の多いコードです。

[2021/5/10] 様々なRyzenをとっかえひっかえしていたら、表が大きくなってきたので、結果を以下のエントリ↓ に分離しました。

hgot07.hatenablog.com 

 

 

 

 

おわり

Adding (more) Wi-Fi to GL.iNet Brume/Creta/Mango

I write this since I've noticed that it isn't so easy to find a Wi-Fi dongle that really works on GL.iNet routers / OpenWrt.I've got some potential applications using multiple wireless devices.

The information here is provided "AS IS", without warranty of any kind.

Please see also the following thread.

forum.gl-inet.com

Tested routers and firmware

GL-MV1000 (Brume): genuine 3.105 (based on OpenWrt 19.07.0)

There's a variant, GL-MV1000-W with wireless capabilities. (We cannot use this model in Japan until it passes the tests of technical standards conformity certification.)

GL-AR750 (Creta): OpenWrt 19.07.5

GL-MT300N-V2 (Mango): OpenWrt 19.07.5

 

Tested adapters and the results

TP-Link AC600 Archer T2U Nano

I wanted to use this tiny dongle. I've tried various Realtek drivers but none works.

Support for rtl8812au devices isn't good and needs some improvements.

 

TP-Link AC600 Archer T2U Plus

This adapter works on Brume only. No driver has been found for Creta and Mango whose architectures are different.

An additional kernel driver is required. Please see the thread

https://forum.gl-inet.com/t/adding-wi-fi-to-mv1000-brume/9610/46

and grab kmod-8811au_4.14.151 2020-4-30-1_aarch64_cortex-a53.zip there.

I don't want to recommend this product for the use with Brume. I wonder why this driver hasn't been included in the official repository. Other drivers for rtl8812au don't recognize this adapter.

After successful installation of the driver and rebooting, iw phy shows a new wireless device.

iw phy

Here's an adapter view. :-)

T2U Plus attached to Brume.

T2U Plus attached to Brume. (smaller dongle is T2U Nano that doesn't work)

 

Netgear AC1200 A6210

This adapter works on Brume/Creta/Mango. This is probably one of the best recommended model although it's a bit old and the size would matter.

The router recognizes this adapter after installing kmod-mt76x2u package.

iw phy shows the new wireless device. Then, rm /etc/config/wireless; wifi; wifi config will create a new configuration file.

iw phy

A6210 attached to Brume.

A6210 attached to Brume.

 

A6210 attached to Mango.

A6210 attached to Mango.

 

Buffalo WI-U2-300D

This adapter works on Brume/Creta/Mango.

The router recognize this adapter after installing kmod-rt2800-usb package.

This is an old and domestic model in Japan.

 

TP-Link AC1300 Archer T4U

No luck at all.

 

TP-Link AC600 Archer T2U v3

This isn't recognised.

T2U v3 is based on rtl8812au according to the following database. However, no 8812-related driver from the company or OpenWrt recognizes this dongle. (Why?)

 

Linksys WUSB6100M

No luck at all.

 

 

 

 

 

 

 

 

Hope you grab a device that works.

Android 11からは無線LANのサーバ証明書の検証を無効にできない / 対策は?

Android 11の2020年12月のアップデートより、802.1xを使う無線LANの設定で、CA証明書を「検証しない」設定ができなくなりました。eduroam方面から悲鳴が聞こえてきそうです。状況と対策を説明します。

通称1X認証 (Passpointでも使用) では、セキュリティ確保のために、サーバ証明書の検証を有効にすることが強く推奨されていました。この件については、以前の記事に書きました。

hgot07.hatenablog.com

サーバ証明書の検証を行わなかったとしても、PEAPなどではMSCHAPv2のチャレンジ・レスポンス方式によって、"そこそこの"セキュリティはありました。そこに甘んじるのは止めようということです。

 

状況

まずは、事前に出た情報から。

www.reddit.com

www.securew2.com

eduroam方面では、Jiscからもアドバイザリが出ています。

community.ja.net

こんなこともあろうかとPixel 3を入手しておいたので、Android 11をアップデートしてみます。まずはアップデート前のビルドRP1Aでスクリーンショットを確保。

Android 11 RP1A

Android 11 RP1A

「検証しない」の選択肢がありますね。

では、アップデート後のビルドRQ1Aの様子を。

Android 11 RQ1A

Android 11 RQ1A

おうふ……、選択肢が無くなっています。これではRADIUSサーバを立てた初心者がおおいに困りそうです。

(個人的には、いくらセキュリティ向上のためとはいえ、試験&トラブルシューティングできる選択肢まで潰してしまうのは、やりすぎな気がしています。最近のGoogleさんは加減を知らないような)

 

利用者側の対応

無線LANサービスの利用者としては、サービス提供者の指示通りに設定するしかありません。無線LANのプロファイルの設定方法は様々ですが、概ね以下の方法があるでしょう。

  • サービス提供者のウェブサイトなどからダウンロードしたプロファイルを用いて自動設定。(eduroam CATやPasspoint、OpenRoamingなど)
  • SSIDを手動選択して、ID/パスワードを手入力。

前者では、検証に必要なCA証明書の情報が自動的に設定され、必要に応じてCA証明書の安全なダウンロードまで実行されます。利用者が注意すべきところは、プロファイルをダウンロードするサイトの正しさだけです。

後者では、これまで「検証しない」を選択できていたところで、いずれかのCA証明書を選択し、ドメイン名を入力する必要があります。端末に組み込まれていないCA証明書が必要な場合は、サービス提供者から何らかの安全な方法でCA証明書を入手して、端末にインストールする必要があります。面倒ですね……。

というわけで、eduroamではeduroam CAT (Configuration Assistant Tool, 🐈) の利用が推奨されています。

 

事業者側の対応

認証に使うRADIUSサーバ(IdP)に、正規のサーバ証明書を導入する必要があります。正規のといっても、広く利用されている認証局(CA)から取得した証明書ばかりではなく、事業者の自己署名によるCA証明書でもよくて、要するに、RADIUSサーバに付属するサンプル証明書などではダメということです。期限切れはもちろんアウトです。

eduroam JPならば、UPKIの証明書も利用できて、多くの端末で「システム証明書を使用」を選択するだけで済むでしょう。利用者には、ドメイン名としてSANを通知する必要があります

注: 公的なCAの証明書を用いる場合、サーバのEAP-TLSの設定には十分な注意が必要です (FreeRADIUSの説明を参照)。EAP-TLSを使わないなら、無効にしておく必要があります。

eduroamの場合は、eduroam CATの利用が推奨されています。

公衆無線LANや社内無線LANでは、プロファイルを利用した自動設定の仕組みを用意するのが好ましいでしょう。

(LEの証明書も使えるはず……ボソ)

 

[2021/1/5追記] 新記事です↓

www.xda-developers.com

 

おわり

 

PoEとのつきあいかた - MikroTik&Ubiquiti編

やったこと

Passive PoEのMikroTik hAP acに、802.3af/atのPoEスイッチから給電した。これだけ。

 

基地局やIoTデバイス(っぽいもの)を複数並べ始めると、ACアダプタやACケーブルが邪魔になって、PoE (Power over Ethernet)が欲しくなるものです、ものです。

どういうわけか、我が家にもMikroTik hAP ac (無線LANルータ)やUbiquiti UAP-AC-PRO, Cloud Key, Aruba AP-207, Meraki MR18など、PoE対応の機器が急に増えてきました。hAP acだけはPoEインジェクタで給電していたのですが、ゴロンとしたインジェクタ内蔵電源だけでも邪魔で、しかも一台しかつなげない。UbiquitiのためにPoE対応のスイッチを買ってみたものの、どうせならhAP acにも給電したい……その方がすっきりする、PoEスイッチ導入するぞ、と意気揚々だったのですが、問題発覚

スイッチは802.3af/atに対応しているしっかり者。一方、hAP acのPoE InはPassive型で、ネゴシエーションできないのでスイッチから給電されない!

一口にPoEと言っても、802.3af/at、Passive型、48V系/24V系、それ以外()と、なかなか混沌としていて、困ったものです。

Passive型は、手抜きと言えばそうなのでしょうが、機材内部をpassthroughして別のEthernetポートにも給電できるという、自由度の高さがあります。電圧やトータルの電力には気を付けないといけませんが。

さて、ここでまたインジェクタを挟むのは邪魔なので、どうしようかと100年ほど悩んでいたのですが、気が付いたら簡単なことでした。PoEスプリッターを使う。hAP acには幸いなことにDC入力端子があり、11~57Vと幅広いレンジに対応しています。世の中、良くしたもので、802.3afでネゴった上で電圧変換、12VとEthernetに分離してくれる、ありがたいPoEスプリッターが市販されていました。救世主とはまさにこのこと。hAP acのところに噛ませるだけで問題解決です。

 

あぁ、すっきりした! (外付けのACアダプタがデカいけど)

すっきりしたスイッチ周り

すっきりしたスイッチ周り

PoEスイッチは特に吟味したものではなく、安かったTP-Link TL-SG1005Pです。(さすがにNTPクライアントは入っていないでしょう)

 

hAP acにはPoE OutのLAN側ポートもあるのですが、こちらは使わないので問題なし。

PoEスプリッターには、GbE対応と10/100Mbpsだけの製品があるので、気を付けて。ちなみに、写真手前は10Gtek製の100Mbpsまでのものw

PoEスプリッター

PoEスプリッター

 

それにしても、UAP-AC-PROやCloud Keyはきちんとネゴしないと給電できないし、同じUbiquitiでもUAP-AC-LITEはPassive型の24Vだし、本当に面倒くさい。MikroTikは、hAP acがIn/OutともにPassive型、hAP ac liteもPassive型だけど28Vまでしか入れられない。hEX PoEはInがPassive型でOutが802.3af/at……なにこれorz

事故らないように遊びましょう(・∀・)ノ

 

[2020/12/16追記] MikroTik CRS112-8P-4S-INという製品があって、PoE+ IEEE 802.3at/af and 24 V Passive PoE対応という変態ぶり。写真ではファン付きに見えるので、家には厳しいかも。

 

おわり

 

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)でも同様の設定で動作確認済みです。

 

おわり