Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,770 views

Published on

SDNソフトウェアスイッチLagopusがFreeBSDに対応しましたので、紹介します。

Published in: Software
  • Be the first to comment

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

  1. 1. SDNソフトウェアスイッチ Lagopus for FreeBSD Aug 7, 2015 Masaru OKI @masaru0714
  2. 2. ソフトウェアスイッチ? ● いわゆるSW-HUBの機能をソフトで実現したもの ○ 宛先不明パケットは全ポートに送信 ○ 宛先がわかるパケットは宛先のいるポートに送信 ● “SDNソフトウェアスイッチ”の場合は少し違って パケット転送ルールをソフトウェア制御できます ○ パケットフィルタリングに近い ○ パケットヘッダの書き換えなどもできるものがある ○ ソフトウェア制御する「コントローラ」と組で使います ○ 仮想環境と相性が良い(deployに合わせて設定等) 2
  3. 3. SDNソフトウェアスイッチの構成 大雑把にはこんな感じ 3 macihne switch process 4321 パケット転送用Ethernet port controller process スイッチにパケット転送ルールを 流し込む役割 (Ryu, Tremaなど) 同一ホストで動かしてもよい ルールは別途用意する必要あり スイッチ本体 単体では動かない TCPやSSLで接続。 OpenFlowプロトコルが代表的
  4. 4. 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
  5. 5. FreeBSDでLagopusを! ● 近日リリース予定のver 0.2でFreeBSD対応! ● FreeBSD 10.1にてコンパイルと動作を確認 ● DPDKの環境準備がやや面倒 ○ コンパイル時にカーネルソースが必要 ○ NICはboot時にDPDK用に割り当て ○ 動作中に割り当ての追加や解除はできません ● lagopusのビルド方法や使い方はLinux版と同じ ○ makeのかわりにgmakeを使います 5
  6. 6. 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
  7. 7. 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
  8. 8. Lagopusのビルド $ cd ~/src $ git clone git@github.com:lagopus/lagopus $ cd lagopus $ ./configure --with-dpdk-dir=$HOME/src/dpdk $ gmake $ sudo gmake install 8
  9. 9. Lagopusとコントローラの起動(例) コントローラの起動(単純なスイッチアプリを指定) $ ryu-manager simple_switch_13.py Lagopusの起動 $ sudo lagopus -- -cff -n2 -- -p3 9
  10. 10. 細かい設定の方法など SDN関連の集会 Trema Day #7の資料に書きます そちらをご参照ください (SlideShareで公開予定) DPDKのドキュメントやLagopusのドキュメントも ご参照いただければと思います 10
  11. 11. 最後に FreeBSDをお使いの方もぜひお試しください! バグを発見しましたら githubのissueで報告を パッチを作成しましたらgithubへpull-reqを 質問等ありましたらLagopus User Communityまで Lagopus 0.2を、よろしくおねがいします! 11

×