ブログ

WLANアクセスポイントから子機の通信状況を確認する方法

at_takuma.fukuda
2024年4月5日 17時45分

ArmadilloをWLANのアクセスポイントとして使用した場合に、接続している子機の通信状況を確認する方法を紹介します。

概要

Armadilloシリーズ製品にはアクセスポイントとしても使用可能なWLAN通信機能を有したものが多くあります。
このアクセスポイントにクライアントとして接続する機器が、
常時通信が必要なものである場合や死活監視が必要なものである場合、通信状態を常にモニタリングしておく必要があります。

手順説明

nl80211を通して、 クライアントとの通信に関する統計情報をWLANモジュールから取得することが出来ます。
nl80211を利用しているiwやhostapdを使って情報を取得することが出来ます。
ここではiwを使って確認する方法をご紹介します。

iwがインストールされている状態で、以下のようにコマンドを実行すると、アクセスポイントに接続されているクライアントの統計情報が表示されます。
*複数ある場合はすべてのクライアントの情報が順番に表示されます。

iw dev <ネットワークデバイス名> station dump

当社から配布しているDebianへはiwがプリインストールされていませんので、以下のようにインストールする必要があります。

apt update
apt install iw

Armadillo Base OSにはiwがプリインストールされているので、すぐにコマンドを実行することが可能です。
ただし実運用での利用を考えると、コンテナ内から実行することをお勧めします。
コンテナからホストOSのコマンドを実行することは出来ないので、コンテナ内にiwをインストールしましょう。
コンテナからiwコマンドでネットワークデバイスへアクセスするには、コンテナのネットワーク設定をhostモードとする必要があります。
コンテナ作成時にconfファイル内に下記を記載しておいてください。

set_network host

iwはalpineでもDebianでも使用可能です。
Debianの方がより多様なライブラリを使用することが出来ますが、alpineの方がコンテナおよびコンテナイメージのサイズを小さくできます。
必要に応じて使い分けてください。

機種ごとの動作の違い

iwコマンドで得られる情報は機種ごとに異なります。
より正確には、WLANモジュール毎に得られる情報が異なります。
例えば、信号強度を示す「signal」および「signal avg」の値については以下のように違いがあります。

    • Armadillo-IoT A6EおよびArmadillo-640(Armadillo Base OS使用の場合)
    • signal、signal avgどちらも取得可能。複数のアンテナの受信時の信号強度と平均値が表示されます。
    • Armadillo-IoT G4
    • signalのみ取得可能
    • Armadillo-IoT G3L
    • singnal avgのみ取得可能。signalは常に0が表示されます。
    • Armadillo-X1、Armadillo-IoT G3 (SparkLAN 製WPEB-265AXI(BT) [B33]搭載品)
    • signal、signal avg共に取得不能