RaspberryPiで複数のWiFiアクセスポイントで固定IPの設定を登録する
RaspberryPiを家で使用している時には固定IPで運用しているのですが、ハッカソンなどにいくと会場に設営されたWiFiに接続したり、個人持ち込みのPocketWiFiで運用したりとなり、最初にネットワークの設定で手間取ることが多くてRaspberryPiを使用した作品の制作から少し離れてしまうことが多くありました。(デモで機器が使えないのは正直キツイです)
そこで自宅でも、出先でも固定IPで使用できるようにしようと思いました。
参考にしたのは以下になります。ただ、少し古いためwheezベースになっていたので少し変更する必要がありました。
アクセスポイントの情報を取得する
この部分は1つのアクセスポイントであっても同じですが、設定する可能性のあるアクセスポイントすべての情報を取得します。 結果部分にはパスフレーズの暗号化されていないものも含まれていますが、不要なので削除して使います。
$ sudo wpa_passphrase 【SSID】 【パスフレーズ】 network={ ssid="【SSID】" #psk="【パスフレーズ】(入力値)" psk=【パスフレーズ(暗号化された値)】 }
使用する可能性のあるアクセスポイントの情報が取得できたら次のステップに進みます。
設定ファイルを編集する
今回編集するのは/etc/wpa_supplicant/wpa_supplicant.conf
と/etc/network/interfaces
の2つのファイルです。どちらもアクセスポイントが1つの時にも設定するファイルなのでそれほど気にしなくても良いかなと思います。
/etc/wpa_supplicant/wpa_supplicant.conf
の編集
以下で編集を行います。(可能であればオリジナルファイルのバックアップをとっておきます。)
$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
以下のように編集します。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="【家で使用する1つ目のアクセスポイントのSSID】" psk=【パスフレーズ(暗号化された値)】 key_mgmt=WPA-PSK priority=0 id_str="HOME" } network={ ssid="【外出時に使用する2つ目のアクセスポイントのSSID】" psk=【パスフレーズ(暗号化された値)】 key_mgmt=WPA-PSK priority=1 id_str="OUTSIDE" }
アクセスポイントが1つの時と異なるのはpriorityとid_strになります。設定値通り優先順位と設定の識別になります。id_strは家で使用する設定をHOME
、外で使用するPocketWiFiの設定をOUTSIDE
としました。
/etc/network/interfaces
の編集
以下で編集を行います。(可能であればオリジナルファイルのバックアップをとっておきます。)
$ sudo vi /etc/network/interfaces
以下のように編集します。実際にはauto lo
以下の行になります。
今回は家で使用するIPアドレス体系をを192.168.0.xとし、RaspberryPiのアドレスを192.168.0.200とし、外で使用するPocketWiFiのIPアドレス体系を192.168.179.xとし、RaspberryPiのアドレスを192.168.179.200としています。
interfaces(5) file used by ifup(8) and ifdown(8) # Please note that this file is written to be used with dhcpcd # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' # interfaces(5) file used by ifup(8) and ifdown(8) # Please note that this file is written to be used with dhcpcd # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d auto lo iface lo inet loopback iface eth0 inet dhcp auto wlan0 allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp iface HOME inet static address 192.168.0.200 netmask 255.255.255.0 gateway 192.168.0.1 iface OUTSIDE inet static address 192.168.179.200 netmask 255.255.255.0 gateway 192.168.179.1
複数のアクセスポイントを使う設定として特徴のある点は
/etc/wpa_supplicant/wpa_supplicant.conf
で設定したid_str
をiface
の設定として与えている部分とWiFiの設定ファイルの呼び出し部分を(旧)wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
から(新)wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
としている部分になります。
実験
設定画終了したので念のためリブートをしてみたところ、一応アクセスができるようになりました。ただ、両方のアクセスポイントがあると設定に時間がかかってしまうようです。(相当時間はかかるのですが、その後両方のアクセスポイントのIPアドレスが使えるようになるようです。) とはいえ、アクセスポイントが共存することはなかなか無いかなと思うのでこれで良しとします。
まとめ
一応、複数のアクセスポイントが固定IPでも使用できるように設定ができました。これで、少しはRaspberryPiの作成のハードルも低くなるかなと思います。 ただ、インターフェースにIPが複数割り当てられるのが気になります、これってどういう状況なんでしょうか。