家庭向けネットワーク製品──いわゆるWi-Fiルーターでもアクセスポイント型ではなく、メッシュネットワークを構築してシームレスなネット環境を作る製品も増えてきました。
しかしメッシュネットワーク対応の製品は、アクセスポイント形式の製品よりもまだ高価です。以前「ラズパイを無線LANルーター化する 〜アクセスポイント編〜」「ラズパイを無線LANルーター化する 〜ブリッジモード編〜」でルーターやアクセスポイントとして利用する方法について紹介しましたが、ラズパイでもメッシュネットワークを構築することは可能です。
そこで今回はその発展系という意味で、GitHubに掲載されている内容を元に、ラズパイを使ったメッシュネットワークの構築についてご紹介していきます。
それではメッシュネットワークを作り上げるための準備から行っていきましょう。今回使うラズパイですが、無線LAN側はアクセスポイントの構築に使いますので、有線LANにケーブルをつないでの作業となります。このためRaspberry Pi 3BやRaspberry Pi 4のように、有線LANポートが用意されているラズパイを合わせて2台使います。
インストールするRaspberry Pi OSですが、デスクトップを含まないRaspberry Pi OS Liteを使用します。microSDメモリカードを用意したら、Raspberry Pi Imagerでインストールしましょう。OSは32ビットでも64ビットでも構いません。今回は筆者の家での余剰在庫となっていたRaspberry Pi 3B+を使用しました。ネットワークはRaspberry Pi 4/Raspberry Pi 3 B+/Raspberry Pi Zero Wなどでも構築できますが。64ビットOSはRaspberry Pi 3以降でないと動作しません。
Raspberry Pi Imagerでは、Raspberry Pi OSの最新バージョンを選択するとOSをインストールするときにSSH動作の可否、ホスト名の決定、ロケールなどが設定できるようになっています。画面の右下の歯車アイコンをクリックして、以下のように設定しましょう。全てが終わったら「SAVE」をクリックして保存します。設定が終わったら「WRITE」をクリックして書き込みましょう。
OSのセットアップが終わったら、Raspberry Piにセットして起動します。起動したらTeraTermなどのアプリで「ホスト名.local」と入力してラズパイに接続してコンソール画面を起動します。
起動したら以下のコマンドでシステムを最新のものにアップデートします。
$ sudo apt update && sudo apt upgrade -y
続いて設定ツールでロケールを指定します。以下のコマンドを入力します。
$ sudo raspi-config
設定ツールが起動したら、以下の項目について変更します。
ここまで設定したらラズパイを再起動します。
$ sudo reboot
再起動したあとは日本語環境になっており、日本語で表示されます。
ではここからは、メッシュネットワーク構築のための設定をしていきましょう。まずは「batctl」というツールをインストールします。
$ sudo apt install batctl -y
インストールしたら、設定用のファイルを作成します。
$ 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
記述したらCtrl+X → y → Enterキーで保存します。続いてファイルのパーミッションを変更して、実行できるようにします。
$ chmod +x start-batman-adv.sh
続いてネットワークの設定を追加します。
$ sudo nano /etc/network/interfaces.d/wlan0
nanoが起動したら以下の内容を記述します。
auto wlan0
iface wlan0 inet manual
wireless-channel 1
wireless-essid call-code-mesh
wireless-mode ad-hoc
ここでは以下の内容を指定しています。
この値はメッシュネットワークを構築する際に、全てのデバイスで同じである必要があるので注意してください。
続いて以下のコマンドを入力して、起動時に「batman-adv」がロードされているかを確認します。
$ echo 'batman-adv' | sudo tee --append /etc/modules
続いて以下のコマンドを入力して、DHCPプロセスが無線LANインタフェースを管理しないように設定します。
$ echo 'denyinterfaces wlan0' | sudo tee --append /etc/dhcpcd.conf
最後に、先ほど作成したスクリプトが起動時に実行されるように、/etc/rc.localに設定します。最後の行の「exit 0」とある前の行に以下の内容を入力しましょう。
ここまでできたらいったんシャットダウンします。次回はゲートウェイとブリッジを構築します。
ラズパイの時計をGPSモジュールと同期させる 初期設定編
Nゲージの模型をラズパイで動かす “らずてつ”その1――鉄道模型とラズパイをつなぐ
部屋の二酸化炭素濃度を測定しよう ラズパイでCO2センサーを作る
550円の「Raspberry Pi Pico」でIoT その1:気温と湿度、気圧を測定する
ラズパイで「Windows 10 on ARM64」を動かす(オーバークロック編)
ラズパイで「Windows 10 on ARM64」を動かす(インストール編)
ラズパイで「Windows 10 on ARM64」を動かす(事前準備編)
ラズパイ一体型キーボード「Raspberry Pi 400」レビュー 特例制度のWeb申請で“技適なし”を回避した
ラズパイ一体型キーボード「Raspberry Pi 400」の性能は? ベンチマークテストで従来モデルと比べた
ラズパイで気温と湿度を測定、LINEで通知を受け取る 〜前編〜
ラズパイを無線LANルーター化する 〜アクセスポイント編〜
本格的な撮影が楽しめる公式カメラモジュール「Raspberry Pi High Quality Camera」を試す
ラズパイで新型コロナウイルス解析に参加する 〜Ubuntu Serverの構築編〜Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR