Upload
nishio
View
3.304
Download
1
Embed Size (px)
Citation preview
今回の目的
Raspberry PiをWifiアクセスポイントにする。
DHCPサーバもRaspberry Pi上で動かす。
そしてそのネットワークへのアクセスを、既存のWifiにルーティングする。
その手順を一歩一歩確認しながらやることでネットワークの知識を深める。
2
前回のあらすじ
Wifiに接続できるチップESP8266EXについて解説した。
しかし会社のWifiに接続できなかった。
3
おさらい
前回の資料:Wifiにつながるデバイス(ESP8266EX, ESP-WROOM-02, ESPr Developerなど)http://www.slideshare.net/nishio/wifiesp8266ex-espwroom02-espr-developer
ESP8266EXEspressif Systemsの出しているWifiチップ
802.11 b/g/n、WPA/WPA2
Arduinoスケッチを書きこめる
4
http://espressif.com/en/products/hardware/esp8266ex/overview
おさらい
ESP-WROOM-02
ESP8266EXとアンテナとをセットにして日本の技適マークを取得した、日本で合法的に使えるWifiモジュール。
550円@秋月電子
5
http://akizukidenshi.com/catalog/g/gM-09607/
おさらい
APに接続してPING
AT+CWJAP=“ssid”,“password”
WIFI CONNECTED
WIFI GOT IP
OK
AT+PING=“www.google.com”
+6
OK
6
おさらい
APにつながらないケース
AP接続後にDHCPでIPアドレスを得るのに失敗している。
9
AT+CWJAP=“****”,“****”WIFI CONNECTED(この後10秒以上)
WIFI DISCONNECT+CWJAP:1
FAIL
今回の目的(再掲)
Raspberry PiをWifiアクセスポイントにする。
DHCPサーバもRaspberry Pi上で動かす。
そしてそのネットワークへのアクセスを、既存のWifiにルーティングする。
その手順を一歩一歩確認しながらやることでネットワークの知識を深める。
11
手順
• Raspberry Pi 3にWifiドングル追加
• IPアドレス固定
• hostapdでアクセスポイント化
• isc-dhcp-serverでDHCPサーバ化
• ルーティングの設定
12
Wifiドングル
BUFFALO 無線LAN子機WLI-UC-GNM
Raspberry Pi 2を買ったときにWifi化のために一緒に買ったWifiドングル
13
購入時にはまったく意識してなかったが「パソコン用の無線LAN子機として使える子機モードと、パソコンを無線LAN親機にしてゲーム機などを接続できる親機モードの2つのモードに対応」「インターネット接続状況を自動で判別してモード切替」とのこと。
https://www.amazon.co.jp/dp/B003NSAMW2/
IPアドレス固定
USBに刺すと/etc/network/interfacesに勝手に設定が書き加わって設定済みのAPにつなぎに行ってしまう。固定IPに書き換えておく。
終ったら ifdown wlan1で一旦OFFにする
14
#iface wlan1 inet manual
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface wlan1 inet static
address 192.168.10.1
netmask 255.255.255.0
アクセスポイント化
sudo apt-get install hostapd
/etc/hostapd/hostapd.confに設定を置く
15
interface=wlan1
ssid=MyPi
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=raspberry
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
サンプルはdriverの設定が含まれており、デバイスに合わせてどう設定すべきか?→「削除してもOK」という意見があり、試したら確かにその通りだった他のデバイスではhostpadへのドライバの追加などが必要かもしれない
参考文献
How to Set up a Raspberry Pi as a
Wireless Access Point
https://www.maketecheasier.com/set-
up-raspberry-pi-as-wireless-access-
point/
実行sudo hostapd -dd /etc/hostapd/hostapd.conf
(-dd: デバッグメッセージ多めで実行)
→アクセスポイント一覧で見えた
16
ESP8266でも一覧で見える:
AT+CWLAP
+CWLAP:(3,"MyPi",-41,"00:24:a5:a3:24:96",6,11,0)
接続しようとするとエラーになる:
AT+CWJAP="MyPi","raspberry"
WIFI CONNECTED
+CWJAP:1
FAIL
WIFI DISCONNECT
↑アクセスポイント一覧に見えているが接続はエラーになる
DHCPサーバ化
sudo apt-get install isc-dhcp-server
/etc/dhcp/dhcpd.confを編集:option domain-name,
domain-name-serverのコメントアウトauthoritative のコメント外す
17
DHCPサーバ化
/etc/dhcp/dhcpd.confに下記を追記:
18
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.10 192.168.10.20;
option broadcast-address 192.168.10.255;
option routers 192.168.10.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local-network";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
←先ほど設定した固定IPと整合するように注意
詳細はこちら
How to Set up a Raspberry Pi as a Wireless Access Point
https://www.maketecheasier.com/set-up-raspberry-pi-as-wireless-access-point/
DHCPサーバ化
/etc/default/isc-dhcp-serverを編集:
INTERFACES="wlan1”
↑参考文献では有線LANとWifiを想定しているけど今回はWifiが2つなのでこう変える必要がある
19
DHCPサーバ起動
sudo service isc-dhcp-server start
ESP8266で接続すると正しくIPが得られる:
20
AT+CWJAP="MyPi","raspberry"
WIFI CONNECTED
WIFI GOT IP
OK
AT+CIFSR
+CIFSR:STAIP,"192.168.10.11“
OK
PCから接続してみる
コマンドプロンプトでipconfigするとIPアドレスがDHCPサーバから配られているのがわかる
21
接続固有の DNS サフィックス . . . . .: local-network
リンクローカル IPv6 アドレス. . . . .: (略)
IPv4 アドレス . . . . . . . . . . . .: 192.168.10.13
サブネットマスク . . . . . . . . . .: 255.255.255.0
デフォルトゲートウェイ . . . . . . .: 192.168.10.1
GUI上は「インターネット接続なし」「制限あり」という表現になる
NAT(Network Address Translation)
wlan1と、インターネットに接続しているwlan0
との間でIPパケットの転送を行う
/etc/sysctl.confにnet.ipv4.ip_forward=1と加筆
IP転送を開始:sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
具体的に何をどこに転送するか指定:sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADEsudo iptables -A FORWARD -i wlan0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPTsudo iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
22
予期せぬメリット
普段、ホテルや出先など「周りのネットワーク環境が変わる」という状況でRasPiをいじるためにUSBシリアル変換でシリアルコンソールに接続して使っている。
でもRasPiが固定IPでAPになるなら、PCからAPにつないで、sshでログインするのもよいかも。物理的なケーブルが必要なくなる。
24