ITmedia NEWS > STUDIO >

ラズパイでメッシュネットワークを作成する 準備編その1名刺サイズの超小型PC「ラズパイ」で遊ぶ(第62回)

» 2022年05月05日 07時00分 公開
[岩泉茂ITmedia]

 家庭向けネットワーク製品──いわゆる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 Raspberry Pi Imagerで書き込む
Raspberry Pi Raspberry 「Raspberry Pi OS(other)」を選んで「Pi OS Lite」を選択

 Raspberry Pi Imagerでは、Raspberry Pi OSの最新バージョンを選択するとOSをインストールするときにSSH動作の可否、ホスト名の決定、ロケールなどが設定できるようになっています。画面の右下の歯車アイコンをクリックして、以下のように設定しましょう。全てが終わったら「SAVE」をクリックして保存します。設定が終わったら「WRITE」をクリックして書き込みましょう。

Raspberry Pi 右下の歯車アイコンをクリック
Raspberry Pi ホスト名を入力してSSHを使えるように指定
Raspberry Pi ユーザー名とパスワード、Wi-Fi情報の入力
Raspberry Pi Wi-Fiの国情報を「JP」にし、ロケールも「jp」とする

 OSのセットアップが終わったら、Raspberry Piにセットして起動します。起動したらTeraTermなどのアプリで「ホスト名.local」と入力してラズパイに接続してコンソール画面を起動します。

Raspberry Pi ホスト名.localでアクセスする
Raspberry Pi ユーザー名とパスワードを入力する
Raspberry Pi ラズパイのコンソール画面が表示される

 起動したら以下のコマンドでシステムを最新のものにアップデートします。

$ sudo apt update && sudo apt upgrade -y

 続いて設定ツールでロケールを指定します。以下のコマンドを入力します。

$ sudo raspi-config

 設定ツールが起動したら、以下の項目について変更します。

  • 「5 Localisation Options」で「L1 Logale」を選び、スペースキーを押して「en_GB.UTF-8 UTF-8」のチェックを外し、「jga_JP.UTG-8 UTF-8」を選ぶ
  • 次の画面で「ja_JP.UTF-8」を選ぶ
Raspberry Pi 「5 Localisation Options」を選ぶ
Raspberry Pi 「L1 Logale」を選ぶ
Raspberry Pi 「en_GB.UTF-8 UTF-8」のチェックを外し、「jga_JP.UTG-8 UTF-8」を選ぶ
Raspberry Pi 「ja_JP.UTF-8」を選ぶ

 ここまで設定したらラズパイを再起動します。

$ sudo reboot

 再起動したあとは日本語環境になっており、日本語で表示されます。

Raspberry Pi 日本語環境になった

メッシュネットワークの設定

 ではここからは、メッシュネットワーク構築のための設定をしていきましょう。まずは「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

 ここでは以下の内容を指定しています。

  • Wi-Fiのチャンネルを1に
  • SSIDを「call-code-mesh」に

 この値はメッシュネットワークを構築する際に、全てのデバイスで同じである必要があるので注意してください。

 続いて以下のコマンドを入力して、起動時に「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.