RaspberryPiで複数のWiFiのアクセスポイントで固定IPの設定を登録する

RaspberryPiで複数のWiFiアクセスポイントで固定IPの設定を登録する

RaspberryPiを家で使用している時には固定IPで運用しているのですが、ハッカソンなどにいくと会場に設営されたWiFiに接続したり、個人持ち込みのPocketWiFiで運用したりとなり、最初にネットワークの設定で手間取ることが多くてRaspberryPiを使用した作品の制作から少し離れてしまうことが多くありました。(デモで機器が使えないのは正直キツイです)

そこで自宅でも、出先でも固定IPで使用できるようにしようと思いました。


参考にしたのは以下になります。ただ、少し古いためwheezベースになっていたので少し変更する必要がありました。

www.1ft-seabass.jp


アクセスポイントの情報を取得する

この部分は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_strifaceの設定として与えている部分とWiFiの設定ファイルの呼び出し部分を(旧)wpa-conf /etc/wpa_supplicant/wpa_supplicant.confから(新)wpa-roam /etc/wpa_supplicant/wpa_supplicant.confとしている部分になります。


実験

設定画終了したので念のためリブートをしてみたところ、一応アクセスができるようになりました。ただ、両方のアクセスポイントがあると設定に時間がかかってしまうようです。(相当時間はかかるのですが、その後両方のアクセスポイントのIPアドレスが使えるようになるようです。) とはいえ、アクセスポイントが共存することはなかなか無いかなと思うのでこれで良しとします。

まとめ

一応、複数のアクセスポイントが固定IPでも使用できるように設定ができました。これで、少しはRaspberryPiの作成のハードルも低くなるかなと思います。 ただ、インターフェースにIPが複数割り当てられるのが気になります、これってどういう状況なんでしょうか。

/* -----codeの行番号----- */