** ※本記事は2015-02-16-raspbian-wheezyをベースに記事を書いています。 **
いろいろ試行錯誤しましたが、Raspberry Piで複数Wifiで個別の固定IPを指定する方法がわかったのでメモしておきます。
用途としては、家のWifiで普段は使っているが、外で開発するときにWimaxやテザリングなどの別のWifiで作業したいときを想定しています。
まず単独Wifiで固定IPを仕込む場合
こちらはGoogleで調べてみるとかなり出てくるので設定しやすかった。
- tkamada_の日々: Raspberry PiのWiFi設定-DHCPから固定IPアドレスまで最速版
- 一番参考にした記事、設定がほぼそのまま使える
- Raspberry Pi B+をセットアップして無線LAN接続してみる – 照る照る坊主の青空
- GUIを併用した記事、わかりやすい。
これでバッチリ家のWifiが繋がった。
複数Wifiで個別の固定IPを指定する
上記の設定がうまくいった上で探してみると全然設定がネット上で見つからない。
いろいろ進めていく上で、以下の仮説がでてきた。
- /etc/wpa_supplicant/wpa_supplicant.conf はWifiの接続設定を司る
- その接続設定レベルでIPを固定できなくもないがwlan0との設定が小難しくなる挙句に文献が少ない→つまり難しい
- /etc/network/interfaces はネットワークの切り替えや管理をしている
- こちらで固定IPを指定してやるのが妥当
こんなかんじ。
ヒントとなる記事を見つけた
しかしながら、そうなるとwlan0に2つのwifiの設定を置くことになり、どう設定していいのかわからなくなってしまう。
おそらくWifiの接続設定であるwpa_supplicant.confと、ネットワークの切り替えや管理をしているinterfacesでの何か共通のつなぎがあるんじゃないかと思ったわけだが、ヒントとなる記事を見つけました。
こちらで、RaspiConfというwpa_supplicant.conf側でのid_strという設定値があり、interfacesでの接続設定にも同名のRaspiConfを利用している記述があります。
こちらの記事を元にいろいろ試行錯誤
試行錯誤しなんとか、うまくいきました。
普段設定している設定を書くのが一番わかり易いのですが、さすがにそのまま書けないので
- SSID1Wifiは家のWifiの設定として使うもので、ネットワークの範囲は192.168.1.1~192.168.1.255。
- 固定IPは192.168.1.100にしたい。
- SSID2Wifiは外部で使うWifi。独自のネットワークの範囲を持っており192.168.20.1~192.168.20.255。
- 固定IPは192.168.20.30にしたい
という仮定で以下にサンプルを置いておきます。
/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="ssid1-????????" psk="????????" priority=0 proto=RSN key_mgmt=WPA-PSK pairwise=TKIP auth_alg=OPEN id_str="SSID1Wifi" } network={ ssid="ssid2-????????" psk="????????" priority=1 proto=RSN key_mgmt=WPA-PSK pairwise=TKIP auth_alg=OPEN id_str="SSID2Wifi" }
/etc/network/interfaces
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 SSID1Wifi inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 iface SSID2Wifi inet static address 192.168.20.30 netmask 255.255.255.0 gateway 192.168.20.1
ポイントは以下。
- 単独Wifiだとwpa-confでうまくいくようだが、Wifi切り替えの場合はwpa-roamのほうで動作した.
- 詳しくはこのあたりにwpa-confにされた記事ですが、wpa-roamの役割にも触れています。
- 単独Wifiと同様だが、それぞれ固定IPはネットワークアドレスの範囲に合わせる。コピペして移植すると範囲間違ってて泣く。
- Wimax端末など家のWifiとは範囲が違ったりするのでよく確認しましょう。
- ネットワーク系はしくじると直接見に行かないといけないので、モニタ・キーボード・マウス必須。
まとめ
いかがでしたでしょうか。これで外で開発したりするときにも対応しやすくなり、さらに言えば、事前に新しいWifiの設定を把握しておけば、前もって設定をしておいてから現場で接続を試すことも可能ですね。
ちなみに、ここまで確信を得た上で、改めて「id_str Raspberry Pi」と調べてみると、これだよ!っていう海外のいろいろな記事が出てくる体たらくですが、今回の気付きと着地はこれで良かったということにします!
それでは、よきRaspberry Pi Lifeを!