家庭向けネットワーク製品──いわゆる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」とある前の行に以下の内容を入力しましょう。
ここまでできたらいったんシャットダウンします。次回はゲートウェイとブリッジを構築します。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR