sdnソフトウェアスイッチlagopus for freebsd

11
SDNソフトウェアスイッチ Lagopus for FreeBSD Aug 7, 2015 Masaru OKI @masaru0714

Upload: masaru-oki

Post on 17-Aug-2015

532 views

Category:

Software


0 download

TRANSCRIPT

Page 1: SDNソフトウェアスイッチlagopus for FreeBSD

SDNソフトウェアスイッチLagopus for FreeBSDAug 7, 2015Masaru OKI @masaru0714

Page 2: SDNソフトウェアスイッチlagopus for FreeBSD

ソフトウェアスイッチ?

● いわゆるSW-HUBの機能をソフトで実現したもの○ 宛先不明パケットは全ポートに送信○ 宛先がわかるパケットは宛先のいるポートに送信

● “SDNソフトウェアスイッチ”の場合は少し違ってパケット転送ルールをソフトウェア制御できます○ パケットフィルタリングに近い○ パケットヘッダの書き換えなどもできるものがある○ ソフトウェア制御する「コントローラ」と組で使います○ 仮想環境と相性が良い(deployに合わせて設定等)

2

Page 3: SDNソフトウェアスイッチlagopus for FreeBSD

SDNソフトウェアスイッチの構成

大雑把にはこんな感じ

3

macihne

switchprocess

4321

パケット転送用Ethernet port

controller process

スイッチにパケット転送ルールを流し込む役割 (Ryu, Tremaなど)同一ホストで動かしてもよいルールは別途用意する必要あり

スイッチ本体単体では動かない

TCPやSSLで接続。OpenFlowプロトコルが代表的

Page 4: SDNソフトウェアスイッチlagopus for FreeBSD

SDNソフトウェアスイッチLagopus

● 総務省O3プロジェクトの一つ● NTTが開発、2014年7月にOSSとして公開

○ http://lagopus.github.io● x86 Linuxで動作するソフトウェアスイッチ● OpenFlow 1.3により制御される● DPDKという高速パケットI/Oライブラリを使用

○ DPDK自身はLinuxとFreeBSDに対応している

● 10GbEのパケット転送でwire rateの性能4

Page 5: SDNソフトウェアスイッチlagopus for FreeBSD

FreeBSDでLagopusを!

● 近日リリース予定のver 0.2でFreeBSD対応!● FreeBSD 10.1にてコンパイルと動作を確認● DPDKの環境準備がやや面倒

○ コンパイル時にカーネルソースが必要○ NICはboot時にDPDK用に割り当て○ 動作中に割り当ての追加や解除はできません

● lagopusのビルド方法や使い方はLinux版と同じ○ makeのかわりにgmakeを使います

5

Page 6: SDNソフトウェアスイッチlagopus for FreeBSD

DPDKのビルド

$ cd ~/src$ git clone git://dpdk.org/dpdk$ cd dpdk; gmake T=x86_64-native-bsdapp-clang config$ gmake$ sudo cp build/kmod/* /boot/modules/

6

Page 7: SDNソフトウェアスイッチlagopus for FreeBSD

FreeBSDでのメモリ・NICの設定

/boot/loader.confの内容に下記を追加。

# reserve 1 x 1G blocks of contiguous memory using configmem driver

hw.contigmem.num_buffers=1

hw.contigmem.buffer_size=1073741824

configmem_load=”YES”

# identify NIC devices for DPDK apps to use and load nic_uio driver

hw.nic_uio.bdfs=”2:0:0,2:0:1”

nic_uio_load=”YES”

7

Page 8: SDNソフトウェアスイッチlagopus for FreeBSD

Lagopusのビルド

$ cd ~/src$ git clone [email protected]:lagopus/lagopus$ cd lagopus$ ./configure --with-dpdk-dir=$HOME/src/dpdk$ gmake$ sudo gmake install

8

Page 9: SDNソフトウェアスイッチlagopus for FreeBSD

Lagopusとコントローラの起動(例)

コントローラの起動(単純なスイッチアプリを指定)

$ ryu-manager simple_switch_13.pyLagopusの起動

$ sudo lagopus -- -cff -n2 -- -p3

9

Page 10: SDNソフトウェアスイッチlagopus for FreeBSD

細かい設定の方法など

SDN関連の集会 Trema Day #7の資料に書きます

そちらをご参照ください (SlideShareで公開予定)DPDKのドキュメントやLagopusのドキュメントも

ご参照いただければと思います

10

Page 11: SDNソフトウェアスイッチlagopus for FreeBSD

最後に

FreeBSDをお使いの方もぜひお試しください!バグを発見しましたら githubのissueで報告を

パッチを作成しましたらgithubへpull-reqを質問等ありましたらLagopus User Communityまで

Lagopus 0.2を、よろしくおねがいします!

11