「えだまめ」しているラズパイ

30年ぶりに半田ごて握ってラズパイ勉強中。

ラズパイでメッシュWiFiネットワークを構築する(4) NODEの準備

◯やりたいこと

(1)〜(3)で構築されたメッシュネットワークへ NODEを追加する。

◯やったこと

5. その他 NODEの作成

(2)と(3)で最低限のメッシュネットワークが構築できたので、メッシュネットにその他のノードを追加していきます。ノードはメッシュデバイスとしてパケットのリレーを担当しながら、センサーなどを装備してデータの発信や受信を行う事もできます。メッシュに参加するには wlan0一つがあればいいのでラズパイゼロで充分に活躍できます。

5-1. ラズパイの準備

ここではラズパイZeroへインストールする例で進めていきます。Zeroは(1)の要領で新規に準備したものでもいいですし、センサー搭載など既に何かが動作しているものでも構いません。既存動作中のZeroにいくつかインストールしてみましたが特に問題なく動いてくれています。
ホームネット側から wlan0に接続しターミナルソフトから sshで Zeroにログインしておきます。

5-2. batctl ツールのインストール

ゲートウェイの設定 3-2と同じ処理です。batctlの設定ファイルの内容が一般ノード用に変更になります。

sudo apt-get install -y batctl
nano ~/start-batman-adv.sh

・ファイル内容

#!/bin/bash
# batman-adv interface to use
sudo batctl if add wlan0
sudo ifconfig bat0 mtu 1468

# Tell batman-adv this is a gateway client
sudo batctl gw_mode client

# Activates batman-adv interfaces
sudo ifconfig wlan0 up
sudo ifconfig bat0 up

忘れずにスクリプトを実行可能な状態にしておきます。

chmod +x ~/start-batman-adv.sh

5-3. wlan0のネットワーク定義の設定

ゲートウェイ設定 3-3と全く同じ内容でファイル設定をします。

sudo nano /etc/network/interfaces.d/wlan0

・ファイル内容

auto wlan0
iface wlan0 inet manual
wireless-channel 1
wireless-essid call-code-mesh
wireless-mode ad-hoc
wireless-key 1234567890

5-4. batman-advモジュールのロード

echo 'batman-adv' | sudo tee --append /etc/modules

5-5. wlan0をDHCPプロセスの管理から外す

wlan0を DHPCの管理下から除外します。

echo 'denyinterfaces wlan0' | sudo tee --append /etc/dhcpcd.conf

5-6. 起動時実行スクリプトの定義

ここもゲートウェイ設定 3-6と同様の設定を行います。

sudo nano /etc/rc.local

ファイル内の exit 0 の前に

/home/pi/start-batman-adv.sh &

の1行を挿入しておきます。

5-7. ノードへのログイン

以上でノードの設定は終了です。ここで再起動しますが、再起動するとノードはメッシュネット上に移動しますのでホームネット側からのアクセスができなくなります。ブリッジで行ったようにゲートウェイを経由して sshの2段接続でログインします。
ちなみにゲートウェイにログインした時点で以下のコマンドを実行するとメッシュネット上で pingに反応してくれる IPアドレスの一覧を表示してくれます。

echo 192.168.199.{1..254} | xargs -P256 -n1 ping -s1 -c1 -W1 | grep ttl

「なんかいろいろ」さんより(https://orebibou.com/ja/home/201505/20150518_001/)

5-8. インターフェースの動作状況確認

ゲートウェイやブリッジで行ったように以下のコマンドで動作の確認ができます。

ifconfig
iwconfig
sudo batctl if
sudo batctl n

インターネットへの接続確認は

ping www.ibm.com -c 5

でルーティングとバックが正しく行われているかがわかります。

〜 続く 〜

◯ラズパイ不足…

最近は全くラズパイが手に入りません。アマゾンではかなりの値段で抱き合わせ販売が横行していますし、単品でも驚きの値段で売られています。まだまだこの状況は続く様です。そもそも日本の主要産業の自動車でさえ半導体が不足しているのに一般カスタマーに半導体が回ってくるのは夢のまた夢だとか。当面は在庫品でしのぐしかありません。
幸いウチにはラズパイゼロの豊富な在庫が。

ESPに手を染める前はセンサー類を全てラズパイゼロで動かしていたので、毎月1個、2個と買い足していったものが20個くらいあります。少々の能力不足には目をつぶり、動作能力に応じた利用法に知恵を絞って活用していくことにします。