SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
Raspberry Piで
Wifiルータを作る
2016-07-15
サイボウズ・ラボ
西尾泰和
今回の目的
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
ESP8266EX
Espressif 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
おさらい
HTTP
AT+CIPSTART=“TCP”,“www.google.com”,80
でGoogleのサーバの80番にTCP接続し
HTTPヘッダを送ればレスポンスが返ってくる
7
おさらい
ここまでのまとめ
Wifiのアクセスポイントに接続できる。
TCPでコネクションを張れる。
HTTPヘッダを送ってやれば
レスポンスが返ってくる。
8
おさらい
APにつながらないケース
AP接続後にDHCPでIPアドレスを得るのに
失敗している。
9
AT+CWJAP=“****”,“****”
WIFI CONNECTED(この後10秒以上)
WIFI DISCONNECT
+CWJAP:1
FAIL
理想と現実
理想:各種デバイスが既存のオフィスインフラ
(Wifiアクセスポイント)につながって
手軽に通信できる。
現実:DHCPに失敗してつながらない。
10
今回の目的(再掲)
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 MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o wlan1 -m state --
state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
22
インターネットに接続できた
23
AT+PING="www.google.com"
+3
OK
普通にTwitterができた
ESP8266からPINGが通った
予期せぬメリット
普段、ホテルや出先など「周りのネットワーク環
境が変わる」という状況でRasPiをいじるために
USBシリアル変換でシリアルコンソールに接続し
て使っている。
でもRasPiが固定IPでAPになるなら、PCからAPに
つないで、sshでログインするのもよいかも。
物理的なケーブルが必要なくなる。
24
補足
もちろんSSIDとパスワードは変更しました。
ついでにステルスSSIDにしておく:
ignore_broadcast_ssid=1
25

Contenu connexe

Tendances

OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
Toru Makabe
 

Tendances (20)

Apache OpenWhiskで実現するプライベートFaaS環境 #tjdev
Apache OpenWhiskで実現するプライベートFaaS環境 #tjdevApache OpenWhiskで実現するプライベートFaaS環境 #tjdev
Apache OpenWhiskで実現するプライベートFaaS環境 #tjdev
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
 
OpenStackをコマンドで攻める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月
OpenStackをコマンドで攻める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月OpenStackをコマンドで攻める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月
OpenStackをコマンドで攻める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
 
食べログのフロントエンドエンジニアってめっちゃ大変やねん・・・
食べログのフロントエンドエンジニアってめっちゃ大変やねん・・・食べログのフロントエンドエンジニアってめっちゃ大変やねん・・・
食べログのフロントエンドエンジニアってめっちゃ大変やねん・・・
 
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionThe Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
 
CDNのパフォーマンス比較/Cedexis
CDNのパフォーマンス比較/CedexisCDNのパフォーマンス比較/Cedexis
CDNのパフォーマンス比較/Cedexis
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
 
Protocol Buffers 入門
Protocol Buffers 入門Protocol Buffers 入門
Protocol Buffers 入門
 
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
 
WebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみたWebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみた
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
Python2.x の input 関数に RCE 脆弱性がある話
Python2.x の input 関数にRCE 脆弱性がある話Python2.x の input 関数にRCE 脆弱性がある話
Python2.x の input 関数に RCE 脆弱性がある話
 
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
 
競プロでGo!
競プロでGo!競プロでGo!
競プロでGo!
 

Similaire à Raspberry Piで Wifiルータを作る

Similaire à Raspberry Piで Wifiルータを作る (20)

Wifiにつながるデバイス(ESP8266EX, ESP-WROOM-02, ESPr Developerなど)
Wifiにつながるデバイス(ESP8266EX, ESP-WROOM-02, ESPr Developerなど)Wifiにつながるデバイス(ESP8266EX, ESP-WROOM-02, ESPr Developerなど)
Wifiにつながるデバイス(ESP8266EX, ESP-WROOM-02, ESPr Developerなど)
 
Raspberry Pi and WebIOPi
Raspberry Pi and WebIOPiRaspberry Pi and WebIOPi
Raspberry Pi and WebIOPi
 
RaspberryPiでWebサーバーを建てよう
RaspberryPiでWebサーバーを建てようRaspberryPiでWebサーバーを建てよう
RaspberryPiでWebサーバーを建てよう
 
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャンWPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
 
Raspberry Pi勉強会(前編)-京大機械研究会
Raspberry Pi勉強会(前編)-京大機械研究会Raspberry Pi勉強会(前編)-京大機械研究会
Raspberry Pi勉強会(前編)-京大機械研究会
 
Raspberry Pi用のコンテナをクラウドでビルドする方法
Raspberry Pi用のコンテナをクラウドでビルドする方法Raspberry Pi用のコンテナをクラウドでビルドする方法
Raspberry Pi用のコンテナをクラウドでビルドする方法
 
WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料
 
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
 
Rpi users201312
Rpi users201312Rpi users201312
Rpi users201312
 
ESP8266をはじめよう
ESP8266をはじめようESP8266をはじめよう
ESP8266をはじめよう
 
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
 
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
 
20200504 raspberrypi handson_junbi
20200504 raspberrypi handson_junbi20200504 raspberrypi handson_junbi
20200504 raspberrypi handson_junbi
 
OpenStack QuickStart - Icehouse
OpenStack QuickStart - IcehouseOpenStack QuickStart - Icehouse
OpenStack QuickStart - Icehouse
 
WebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリWebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリ
 
Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座
 
Hue Notebook
Hue NotebookHue Notebook
Hue Notebook
 
さくらのVpsつかってます
さくらのVpsつかってますさくらのVpsつかってます
さくらのVpsつかってます
 
Osc2013 tokyospring
Osc2013 tokyospringOsc2013 tokyospring
Osc2013 tokyospring
 
Dd wrt
Dd wrtDd wrt
Dd wrt
 

Plus de nishio

Plus de nishio (20)

量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミング量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミング
 
夏プロ報告
夏プロ報告夏プロ報告
夏プロ報告
 
ITと経営
ITと経営ITと経営
ITと経営
 
部分観測モンテカルロ計画法を用いたガイスターAI
部分観測モンテカルロ計画法を用いたガイスターAI部分観測モンテカルロ計画法を用いたガイスターAI
部分観測モンテカルロ計画法を用いたガイスターAI
 
交渉力について
交渉力について交渉力について
交渉力について
 
If文から機械学習への道
If文から機械学習への道If文から機械学習への道
If文から機械学習への道
 
組織横断型研究室構想
組織横断型研究室構想組織横断型研究室構想
組織横断型研究室構想
 
2017首都大学東京情報通信特別講義
2017首都大学東京情報通信特別講義2017首都大学東京情報通信特別講義
2017首都大学東京情報通信特別講義
 
強化学習その5
強化学習その5強化学習その5
強化学習その5
 
良いアイデアを出すための方法
良いアイデアを出すための方法良いアイデアを出すための方法
良いアイデアを出すための方法
 
強化学習その4
強化学習その4強化学習その4
強化学習その4
 
強化学習その3
強化学習その3強化学習その3
強化学習その3
 
強化学習その2
強化学習その2強化学習その2
強化学習その2
 
強化学習その1
強化学習その1強化学習その1
強化学習その1
 
線形?非線形?
線形?非線形?線形?非線形?
線形?非線形?
 
機械学習キャンバス0.1
機械学習キャンバス0.1機械学習キャンバス0.1
機械学習キャンバス0.1
 
首都大学東京「情報通信特別講義」2016年西尾担当分
首都大学東京「情報通信特別講義」2016年西尾担当分首都大学東京「情報通信特別講義」2016年西尾担当分
首都大学東京「情報通信特別講義」2016年西尾担当分
 
勾配降下法の 最適化アルゴリズム
勾配降下法の最適化アルゴリズム勾配降下法の最適化アルゴリズム
勾配降下法の 最適化アルゴリズム
 
Wifiで位置推定
Wifiで位置推定Wifiで位置推定
Wifiで位置推定
 
ESP8266EXで位置推定
ESP8266EXで位置推定ESP8266EXで位置推定
ESP8266EXで位置推定
 

Dernier

The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 

Dernier (8)

The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 

Raspberry Piで Wifiルータを作る