ysdyt.net for tech memo

Raspberry Piに固定IPを割り振る

以前、wimaxを使ったネット接続の無線化について書きましたが、次はIPアドレスの固定化について。IP固定化とかじゃなくとにかく有線から無線での接続さえできれば良いという人はこちら

ちなみに今回はwimaxではなく、フレッツ光の回線を使って設定しています(wimaxも有料オプションで固定IPが振れるそうですが詳しくは知らない)。

無線LAN機器接続の確認

何はともあれまずは無線LAN機器が接続されているかを確認。

1
2
3
4
5
% lsusb                                                                                   [~]
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0411:01a2 BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070]

自分はBUFFALOの無線LAN子機を使っていて、それが4つ目にきちんと認識されているのでok

アクセスポイントのスキャン

1
% sudo iwlist wlan0 scan | grep ESSID

実行すると、現在捕まえられるWi-Fiのネットワーク名(SSID)一覧が表示される。接続したいネットワーク名が存在するか確認。

接続情報の設定書き込み

上記で確認した接続先ルーターのSSIDとそのパスワードを以下のようにファイルに書き込む。 この時、zshなど他のshellで操作してると「権限がない」みたいなエラーを出されるかもしれない。その時のためにbashにログインし、権限を変更してから wpa_passphraseの1文を実行する

1
2
3
% sudo bash  # bashでrootユーザにログイン
root% chmod 660 /etc/wpa_suoplicant/wpa_supplicant.comf #権限の変更
root% sudo wpa_passphrase "接続先のSSID" "接続先のパスワード" >> /etc/wpa_supplicant/wpa_supplicant.conf

この結果 /etc/wpa_supplicant/wpa_supplicant.confファイルの中身に以下のような情報が入っていればok

1
2
3
4
5
6
7
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="接続先のSSID"
        #psk="接続先のパスワード"
        psk=数字とアルファベットの羅列が入ってる
}

中にpskが2つ書かれていて、そのうちの一つがコメントアウトされている。 2つ目のpskは接続先のパスワードがハッシュで鍵化されているもの。どちらでも同じ内容を指すのでどちらか一方だけコメントアウトしてればok。ここでは鍵化されたpskを使った。

/etc/wpa_supplicant/wpa_supplicant.confの編集

固定化IPを設定するため、上記のファイルを編集して以下の状態に書き換える。

1
2
3
4
5
6
7
8
9
10
11
12
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="接続先のSSID"
        proto=WPA2
        key_mgmt=WPA-PSK
        pairwise=TKIP CCMP
        group=TKIP CCMP
        #psk="接続先のパスワード"
        psk=数字とアルファベットの羅列が入ってる
        scan_ssid=1
}

いろいろ別のブログを見てみると、pairwiseやgroupに”CCMP”と設定する方法もあるそうだが、自分の場合は”TKIP CCMP”でうまくいった。また、proto=RSNとしているものもあるが、同じくproto=WPA2でうまくいった。

/etc/network/interfacesの編集

続いて、/etc/network/interfacesファイルを以下のように編集する。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
auto lo
iface lo inet loopback

iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet static # "manual"もしくは"dhcp"となっていれば"static"に変更
address 192.168.1.101 #2~254までの使いたい固定IPアドレスを書く(ここでは101とした)
netmask 255.255.255.0 #接続するネットワークの設定に合わせる。だいたいこれでokのハズ
gateway 192.168.1.1 #接続するネットワークの設定に合わせる。だいたいこれでokのハズ

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf # wpa-roamをwpa-confへ変更
iface default inet dhcp

#ここから下の設定は関係ないので放置
auto wlan1
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

ここまで設定出来たら、イーサネットインターフェースの再起動を行い、設定を有効化する。

1
2
% sudo ifdown wlan0  # WiFiの接続を切る
% sudo ifup wlan0   # WiFiを接続する

このときに、can't read /etc/network/interfacesなどと出たら、上記ファイルの記述が誤っていないか確認する。

固定IPで接続できているか確認する

上記までの手順でネットに接続できていれば、固定IPアドレスが取得できているはずなのでIPアドレスを確認。

1
% ifconfig wlan0

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

1
2
3
4
5
6
7
wlan0     Link encap:イーサネット  ハードウェアアドレス xx:xx:xx:xx:xx:xx
          inetアドレス:192.168.1.101 ブロードキャスト:192.168.0.255  マスク:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:3799 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:687 エラー:0 損失:0 オーバラン:0 キャリア:0
      衝突(Collisions):0 TXキュー長:1000
          RXバイト:1046888 (1022.3 KiB)  TXバイト:88642 (86.5 KiB)

このinetアドレスの値(英語環境では inet addrの値)が設定したIPアドレスになっていればok。 これで一応、IPは固定出来てる。ここまで正しく設定できれば、後は再起動してもWiFiで固定IPの設定が維持されるはず。

後はネットアクセスできるかpingで確認してみる。テキトーにyahooにアクセスしてみる。

1
2
3
% ping www.yahoo.com
PING fd-fp3.wg1.b.yahoo.com (106.10.139.246): 56 data bytes
64 bytes from 106.10.139.246: icmp_seq=0 ttl=50 time=72.299 ms

64 bytes from~~ というのがどんどん流れていけば接続もok

グローバルIPアドレス?

これで(家の中の)同じネットワークに繋がってるPCからssh pi@192.168.1.101 でログイン出来るようになったのだけど、家の外からラズパイにsshは出来ない。 それにはどうやらグローバルIPアドレスなるものを割り振らないといけないらしいのだが、それはまた次回に。

・参考
/etc/network/interfacesファイルの設定にかなりハマってたのですが以下のページが大変参考になりました。多謝!

Raspberry PiのWiFi設定-DHCPから固定IPアドレスまで最速版 http://tkamada.blogspot.jp/2014/07/raspberry-piwifi-dhcpip.html

Raspberry Piで複数Wifiで個別の固定IPを指定する方法
http://www.1ft-seabass.jp/memo/2015/03/23/raspberry-pi-wifi-multi-static-ip/

Raspberry Piの設定【有線LAN(イーサネット)・無線LAN(WiFi)設定】
http://yamaryu0508.hatenablog.com/entry/2014/08/15/001312

Comments