Slide 1

Slide 1 text

Dive into wireless openflow! Hiroaki KAWAI

Slide 2

Slide 2 text

Wireless openflow? ● Openflow デモ(2008) – ネットゲームしながらノートPCがWifiローミング – http://archive.openflow.org/wp/2008/10/vide o-of-sigcomm-demo/ ● 現在 – ベンダ各社Wifi APにもopenflowを入れつつある ● 実は、組み合わせそれ自体は珍しくない

Slide 3

Slide 3 text

今からの話は これとは別物の話

Slide 4

Slide 4 text

ところで

Slide 5

Slide 5 text

Openflow 便利 ! ● 流れているパケットに手が届く ● 「見えるぞ!私にも敵が見えるッ!」

Slide 6

Slide 6 text

いっぽう無線は… ● 無線もパケット通信なのに! ● 「つながらない」 ● 「なんかよく分からないけど不安定」 ● 「なんか遅い…」 ● 「そもそも、どのAPに繋がってるの?」 ● etc., Windowsでradiotapできないんですよねー

Slide 7

Slide 7 text

というわけで ● 無線のパケットを観測できるツールが必要! ● われらがopenflowがあるじゃないか! ● これ使おうコレ – APに入っていれば、状況も見えてくる

Slide 8

Slide 8 text

Openflow 1.3 based ● Openflow 1.3 + experimenter での拡張 – Stratosphere experimenter ● “gopenflow” : PoC implementation – IEEE 802.11 – Bluetooth LE 6LoWPAN

Slide 9

Slide 9 text

デモ

Slide 10

Slide 10 text

デモ構成 ● 複数APを同一SSIDでデプロイ – SSID: stratos2 – PSK: hogehoge ● 管理画面 – http://alpha.local/ ● alpha.local = 192.168.23.1 Bonjourが有効なら DEMO

Slide 11

Slide 11 text

管理画面 : Current session DEMO

Slide 12

Slide 12 text

管理画面 : Current radio DEMO

Slide 13

Slide 13 text

現在のAssociationの電波状態 STA (You) AP DEMO

Slide 14

Slide 14 text

管理画面 : STA DEMO

Slide 15

Slide 15 text

STAを観測 STA (You) AP AP AP DEMO

Slide 16

Slide 16 text

管理画面 : AP DEMO

Slide 17

Slide 17 text

APが使用している電波の状態 STA (You) AP STA STA STA DEMO

Slide 18

Slide 18 text

管理画面 : Manage DEMO

Slide 19

Slide 19 text

AP切り替え STA (You) AP AP AP 指定したAPがOKを返すまで再試行する (順番によってはもう一度試さないとダメかも) DEMO OK

Slide 20

Slide 20 text

デバイスごとの癖 ● Windows – Background scanで動作する ● Mobile phone – すぐに sleep に入る ● iOS – 802.11kを期待していて、scanしない

Slide 21

Slide 21 text

Internal

Slide 22

Slide 22 text

Openflow 対応方法 ● Linux netdev = openflow port とした ● 無線NIC – cfg80211系ドライバ(今はこれが主流) – 物理インターフェースに netdev を複数作れる ● iw dev wlan0 interface add mon0 type monitor ● もちろん同時に出せる電波は一つだけ ● 何個作れるかはドライバ次第

Slide 23

Slide 23 text

cfg80211 netdev ● AP, managed, monitor など数種類ある ● monitor mode の場合 – ARPHRD_RADIOTAP – LWAPP frame + 拡張 OXM の形 – AP, managed と併用すると便利 ● これらは ARPHRD_ETHER になっていて、暗号等は kernel 側で処理される

Slide 24

Slide 24 text

cfg80211 netdev mon0 phy#0 wlan0 mon0 ethernet radiotap

Slide 25

Slide 25 text

cfg80211 netdev mode ● Monitor & AP 両方存在できるけど…!? – Physical port と logical port のような関係 – Tunnel encap と WPA encap は似ている – Openflow の packet ベース処理に乗せるには、こ うしたほうが相性がいい ● 暗号のステートを保持させる場所の問題 ● 802.1Q (VLAN) は stateless で push/popできる

Slide 26

Slide 26 text

Demo の裏側 ● 電波強度は packet_in の OXM match – STROXM_RADIOTAP_DBM_ANTSIGNAL – 値は radiotap “Antenna signal” – 仕様: https://github.com/hkwi/gopenflow/blob/mast er/ofp4_str_exp.md ● IEEE 802.11 MAC / ethernet MAC 変換規則 – 対応関係があるので、それを使って flow rule 生成

Slide 27

Slide 27 text

Demo の構成 phy#1 wlan0 mon0 hostap gopenflow eth0 Controller uplink monitor mode AP mode radius openflow

Slide 28

Slide 28 text

その他 ● Wifi controller 歴史の延長上にもある – トラフィック分散型(C-Plane分離) – もっとオープンに! ● 非ethernetなフレームを飛ばすとか?

Slide 29

Slide 29 text

おまけ

Slide 30

Slide 30 text

6LoWPAN ● Bluetooth LE – IPSP (IP support profile=6LoWPAN) – ノードが直接IPv6通信できる ● 考えることが少し減る – Border routerにopenflowが 入ると何かと嬉しい Node Border Router Uplink bluetooth Server

Slide 31

Slide 31 text

Any questions?