19
Wireless Openflow with stratosphere experimenter Hiroaki Kawai <[email protected]>

Wireless openflow with stratosphere experimenter

Embed Size (px)

Citation preview

Page 1: Wireless openflow with stratosphere experimenter

Wireless Openflowwith stratosphere experimenter

Hiroaki Kawai<[email protected]>

Page 2: Wireless openflow with stratosphere experimenter

2

Wireless openflow

Access point

Openflow controller

Uplink

Openflow switch

Page 3: Wireless openflow with stratosphere experimenter

3

無線コントローラ

● 同じ形をしている「無線コントローラ」● 一般的な導入目的

● 設定の集中管理● 電波のカバレッジ

● 重複よけ● 隙間をなくす

● 品質管理・ロードバランス● メタデータの送受信

コントローラ

Page 4: Wireless openflow with stratosphere experimenter

4

WirelessこそSDNしたい

● 移動体にこそ動的にネットワーク変更を与えたい● 無線コントローラ

● 仕様が閉鎖的● プログラムしにくい

● Openflowでアクセスできるようにしてみよう

Page 5: Wireless openflow with stratosphere experimenter

5

Wireless openflow

Access point

Openflow controller

Uplink

Openflow switch

一見普通のopenflow switchのように見える

Page 6: Wireless openflow with stratosphere experimenter

6

よ~く見ると、やっぱり特殊な部分がある

Page 7: Wireless openflow with stratosphere experimenter

7

Openflow port

● APはStationを区別できる● ただしMulticast/Broadcastは、無線で直接Multicast/Broadcast

Openflow switch

PC PC

AP

STA STA

GTKPTK

単純に STA = Port とすることもできない

Page 8: Wireless openflow with stratosphere experimenter

8

異なるFrame

SRC MACDST MAC ethtype

ADDR1 ADDR2 ADDR3 ADDR4FC ID Seq

一般形はこんな感じ

無線の受信・送信とペイロードの送信元・送信先の最大4つのアドレスが出現

RA=BSSID TA=SA DAFC ID Seq

APへのデータフレームBSSID = 無線のアドレス(RA ) = APのMACアドレスTA = 無線の送信アドレス(SA ) = STAのMACアドレスDA = STAが本来送りたかった送信先

こう変換してuplinkに送る= “integration service”

Page 9: Wireless openflow with stratosphere experimenter

9

異なるFrame

● 無線が有線と等価的に使えるのは、802.11がそう設計されていて、Integration serviceが働いているため。

● 実のところ、802.11は「Distributed system + 各種サービス」の形をしている

● 各種サービスも、このフレームで動作している● サービス用のフレームにもアクセスできると面白い

Page 10: Wireless openflow with stratosphere experimenter

10

現実問題

● Linux wireless netdev が出発点● 無線のnetdevとは?

● wext ioctl ベース(旧)● nl80211 netlink ベース(新)

Page 11: Wireless openflow with stratosphere experimenter

11

gopenflow PoC

● Port = netdev● それ以上は「実装依存」

● netdevの種類に注意● 他のプログラムが並行動作して構わない(むしろ頼る)

● kernel経由で情報は出し入れする● 同一phyにnetdevが追加されると、自動的にport追加

● 既存の ethernet frame 用 oxm との整合性を考慮● LWAPP(L2)でフレーミング● 802.11 match field の oxm を新設

→ stratosphere experimenterまだ実装初期なので実験的(将来変わるかも)

Page 12: Wireless openflow with stratosphere experimenter

12

Linux mac80211 basics

● 結局etherとして使えるように頑張る(monitor以外)● 暗号化もカーネル内部で処理される

● 一つのphyに対して複数のnetdevを作れる● チャンネルは各netdevの要求に応じて変化し続ける

● Mode● Managed● AP, AP_VLAN● Ad-hoc● WDS● Mesh● P2P● Monitor

Page 13: Wireless openflow with stratosphere experimenter

13

Managed

● 基本形。● APに接続するSTA側。● 一般的にplugするとudevから自動的に、このmodeのnetdevが用意される

● 動的な制御が必要で、SSIDやpassphraseはwpa_supplicantのようにnl80211経由で行う。

Page 14: Wireless openflow with stratosphere experimenter

14

AP

● Access pointを構築するときに使う。● 動的な制御が必要で、hostapdなどでnl80211経由で制御する。

netdev

STA STA STA

横向きのunicastのみapで制御できる。multicast/broadcastは無線的に届く。

Page 15: Wireless openflow with stratosphere experimenter

15

AP_VLAN

● APモードで異なるgroupを作るときに出現。● hostapdではdynamic_vlan機能を使って、vlan

taggingしてブリッジするような設定にしておくのが一般的。

● openflowでは好きに流れを変えればよいだろう。netdev

STA STA

netdev

STA STA

Page 16: Wireless openflow with stratosphere experimenter

16

Monitor

● RADIOTAPデバイス(非ether)● 実はRADIOTAPフレームでパケット送出もできる● 制御らしい制御はない

Page 17: Wireless openflow with stratosphere experimenter

17

その他

● Ad-hoc● IBBS● 実用上はP2Pで置き換えられていきそうな予感● iwで静的に制御できる

● WDS● 無線peerを作れるが、すぐに実用的に使えるわけではない。

● Mesh● 比較的すぐに実用的に使える

● P2P● AP, STAの役割を動的に決めるモード● HW(ドライバ)を超選ぶ● wpa_supplicant で動作させられる

$ iw dev wlan0 ibss join NetworkName 2412

$ iw dev wds0 set peer <MAC address>

$ iw dev mesh0 mesh join NetworkName

Page 18: Wireless openflow with stratosphere experimenter

18

gopenflow port

● Port は netdev● Ethernet frame● 802.11はLWAPP(L2)

● Pipeline field oxm STROXM_BASIC_DOT11=1 となる● lwapp自体のETH_SRC等は、初期値として802.11フレーム内部から設定される

● Set-fieldを使って802.11フレームを書き換えずに経路変更できる

● Monitor の活用● 単にethernet frameを送受信するだけでなく、802.11

distributed systemのプログラミング環境として使える● IoT的なHubとしても活用しやすいだろう

Page 19: Wireless openflow with stratosphere experimenter

19

Stratosphere expを使って何ができるか?

● Wifiセンサーデバイスへの対応は簡単になる● 802.11 multicast で気温のデータを広報とか● 物品管理とか

● Action frameを使って独自サービスを実装したり● ドローンの移動に合わせて経路を変えたり● 同じように BLE 6LoWPAN 対応できるとどうなる?● 他は?

● →BoF