◯やりたいこと
(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
でルーティングとバックが正しく行われているかがわかります。
〜 続く 〜