ITmedia NEWS >

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

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

 ここまで準備編その1準備編その2と、メッシュネットワークから既存のホームネットワークへつながるゲートウェイとなるラズパイと、メッシュネットワークにブリッジとして接続し、ブリッジとしてメッシュネットワークにつなぐラズパイについて設定してきました。ここからは実際にPCから接続して確認していきます。

 まずは2台のラズパイの電源を入れます。そしてゲートウェイのラズパイへ、TeraTermなどのターミナルソフトでログインします。ログインしたら以下のコマンドを入力します。

$ sudo apt install iptables-persistent -y

 インストールの途中にメッセージが表示されますが、いずれも「はい」を選んでください。このコマンドでiptablesをインストールしたら、次のコマンドを実行します。

$ ifconfig

 そして以下の内容が表示されれば正常に動いています。「bat0」が表示されていない場合は、/etc/rc.localに「/home/pi/start-batman-adv.sh &」の内容が記述されているか確認してください。

bat0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1468
        inet 192.168.199.1  netmask 255.255.255.0  broadcast 192.168.199.255
        inet6 fe80::f1e8:b920:3a95:cdee  prefixlen 64  scopeid 0x20<link>
        ether b6:fb:9f:de:90:f6  txqueuelen 1000  (イーサネット)
        RX packets 57  bytes 2394 (2.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1  bytes 110 (110.0 B)
        TX errors 0  dropped 42 overruns 0  carrier 0  collisions 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.82  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::fed7:b320:764f:f01f  prefixlen 64  scopeid 0x20<link>
        inet6 240d:1a:8d4:8500:231a:25e5:4a64:820b  prefixlen 64  scopeid 0x0<global>
        ether b8:27:eb:51:6b:02  txqueuelen 1000  (イーサネット)
        RX packets 4445  bytes 348477 (340.3 KiB)
        RX errors 0  dropped 2  overruns 0  frame 0
        TX packets 119  bytes 14678 (14.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (ローカルループバック)
        RX packets 29  bytes 4779 (4.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 29  bytes 4779 (4.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::ba27:ebff:fe04:3e57  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:04:3e:57  txqueuelen 1000  (イーサネット)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 508  bytes 56697 (55.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 ここでは以下の内容について確認します。

  • bat0が192.168.199.1のアドレスであること
  • eth0にはルーターから割り当てられたIPアドレス(ここでは192.168.1.82)があること
  • wlan0にはIPアドレスが割り当てられていないこと

 続いて以下のコマンドで、デバイスのワイヤレスインタフェースを確認します。

$ iwconfig

 以下のように表示されます。

lo        no wireless extensions.
eth0      no wireless extensions.
wlan0     IEEE 802.11  ESSID:"call-code-mesh"
          Mode:Ad-Hoc  Frequency:2.412 GHz  Cell: FE:9E:13:0E:98:71
          Tx-Power=31 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
bat0      no wireless extensions.

 ここでは以下の2点について確認します。

  • SSIDが「/etc/network/interfaces.d/wlan0」で規定した「call-code-mesh」となっている
  • モードはAd-Hoc(アドホック)になっている

 続いてwlan0がメッシュネットワークでアクティブになっているか確認します。

$ sudo batctl if
wlan0: active

 続いて「sudo batctl n」と入力し、ゲートウェイにメッシュノードが表示されているか確認しましょう。

$ sudo batctl n

 すると以下のような内容が表示されます。

[B.A.T.M.A.N. adv 2021.3, MainIF/MAC: wlan0/b8:27:eb:04:3e:57 (bat0/ba:d1:69:83:e4:2f BATMAN_IV)]
IF             Neighbor              last-seen
        wlan0     b8:27:eb:33:d4:ad    0.920s

 続いてメッシュネットワークに参加させたいクライアントのMACアドレスとマシン名を「/etc/bat-hosts」に記述します。自分の使っているPCイーサネットアダプターが持つMACアドレスを知るには以下の手順が必要です。まずWindowsキーを押しながらRを押し、「ファイル名を指定して実行」に「cmd」と入力してコマンドプロンプトを立ち上げます。コマンドプロンプトが起動したら「ipconfig /all」と入力してEnterキーを押すと確認できます。MACアドレスは「物理アドレス」とある項目に書かれています。

ラズパイメッシュ 「物理アドレス」がMACアドレスを指す

 MACアドレスが分かったら以下の手順で記述します。

$ sudo nano /etc/bat-hosts

 空のファイルを立ち上げたら、以下の内容を記述しましょう。

b8:27:eb:8e:ec:6c   bi-raspimesh01
b8:27:eb:bd:4d:e5   bi-raspimesh02
b8:27:eb:01:d4:bb   bi-raspimesh03

 入力したら先ほどと同様に

$ sudo batctl n

 と入力してみましょう。以下のように表示されたら追加できています。

[B.A.T.M.A.N. adv 2017.3, MainIF/MAC: wlan0/b8:27:eb:8e:ec:6c (bat0/ba:bf:0a:fd:33:e5 BATMAN_IV)]
IF             Neighbor             last-seen
    wlan0       bi-raspimesh02      0.890s
    wlan0       bi-raspimesh03      0.660s

 次回はブリッジの構築に移ります。

Copyright © ITmedia, Inc. All Rights Reserved.