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.
Tremaでの Open vSwitch               Trema開発チーム              鈴木一哉 (@countone)                   2012/4/7Page 1
Agenda▐ Tremaとは▐ ネットワークエミュレーション         機能概要         使用例         仮想スイッチ         仮想ホスト         仮想リンク▐ まとめ▐ おまけ : kerne...
Trema 概要▐ Trema : C/Ruby でコントローラ開発をするためのフレームワーク      開発が容易 : 洗練された API, テストのためのネットワークエミュ       レータ      多くのサンプルアプリ     ...
ネットワークエミュレーション機能概要▐ 試験用の OpenFlow ネットワークを、開発マシン内に構築する機  能     仮想スイッチ : openvswitch (userspace) を使用     仮想ホスト : phost (tr...
使用例▐ ./trema run ./mycontroller.rb –c ./network.conf             network.conf   vswitch("sw1") {                          ...
仮想リンクの設定▐ 仮想リンク     Linux の Virtual ethernet device を使用▐ trema 上から仮想リンクを設定するコード     https://raw.github.com/trema/trema/d...
仮想スイッチの起動▐ 仮想スイッチ     Userspace で動作する test-openflowd (ver 1.2.2) を使用▐ trema から openvswitch を起動するコード     https://raw.gith...
仮想ホストの起動▐ 仮想ホスト     Userspace で動作する仮想ホストデーモン phost (Trema 同梱) を使用▐ Trema から phost を起動するコード     https://raw.github.com/tr...
まとめ▐ Tremaのネットワークエミュレーション機能     開発したコントローラを「すぐ動かしてみる」ための機能です     仮想スイッチとしてuserspaceで動作するopenvswitchを使用していま      す。▐ ネットワ...
おまけ : kernel-mode 版openvswitchとtremaを接続してみる                          routing switch                               trema   ...
openvswitchのインストール▐ ./configure --with-linux=/lib/modules/`uname -r`/build▐ make▐ make install▐ insmod datapath/linux/open...
仮想リンクの設定▐ ip link add name link0-1 type veth peer name link1-0▐ ip link add name link1-1 type veth peer name link2-0▐ ip l...
openvswitchの起動▐ ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock   --remote=db:Open_vSwitch,manager_opti...
openvswitchの設定▐   ovs-vsctl add-br ofs0▐   ovs-vsctl add-port ofs0 link0-0▐   ovs-vsctl add-port ofs0 link0-1▐   ovs-vsctl...
openvswitchの状態確認▐ ovs-vsctl list-br   ofs0▐ ovs-vsctl list-ports ofs0   link0-0link0-1▐ ovs-vsctl get-controller ofs0   tc...
trema routing switchの起動▐   gitclone https://github.com/trema/trema.git▐   ./trema/build.rb▐   gitclone https://github.com/...
Description の取得▐ (cd apps/show_description/; make)▐ TREMA_HOME=./trema ./apps/show_description/show_descriptionManufacture...
Topology の検出▐ TREMA_HOME=./trema ./apps/topology/show_topologyvswitch {datapath_id "0x11"}vswitch {datapath_id "0x10"}vswi...
Upcoming SlideShare
Loading in …5
×

Trema での Open vSwitch

14,050 views

Published on

Published in: Technology

Trema での Open vSwitch

  1. 1. Tremaでの Open vSwitch Trema開発チーム 鈴木一哉 (@countone) 2012/4/7Page 1
  2. 2. Agenda▐ Tremaとは▐ ネットワークエミュレーション  機能概要  使用例  仮想スイッチ  仮想ホスト  仮想リンク▐ まとめ▐ おまけ : kernel-mode 版openvswitchとtremaを接続してみる Page 2
  3. 3. Trema 概要▐ Trema : C/Ruby でコントローラ開発をするためのフレームワーク  開発が容易 : 洗練された API, テストのためのネットワークエミュ レータ  多くのサンプルアプリ  GPLv2 Page 3
  4. 4. ネットワークエミュレーション機能概要▐ 試験用の OpenFlow ネットワークを、開発マシン内に構築する機 能  仮想スイッチ : openvswitch (userspace) を使用  仮想ホスト : phost (trema original) を使用  仮想リンク : Linux の Virtual ethernet device を使用Page 4
  5. 5. 使用例▐ ./trema run ./mycontroller.rb –c ./network.conf network.conf vswitch("sw1") { routing switch datapath_id "0x1" } trema vswitch("sw2") { datapath_id "0x2" } host1 sw1 sw2 host2 vhost ("host1") vhost ("host2") link "host1", "sw1" link "sw1", "sw2" 開発マシン内で動作 link "sw2", "host2" Page 5
  6. 6. 仮想リンクの設定▐ 仮想リンク  Linux の Virtual ethernet device を使用▐ trema 上から仮想リンクを設定するコード  https://raw.github.com/trema/trema/develop/ruby/trema/link.rb  sudo ip link add name trema0-0 type veth peer name trema0-1Page 6
  7. 7. 仮想スイッチの起動▐ 仮想スイッチ  Userspace で動作する test-openflowd (ver 1.2.2) を使用▐ trema から openvswitch を起動するコード  https://raw.github.com/trema/trema/develop/ruby/trema/open- vswitch.rb  sudo ./test-openflowd netdev@ofs0 tcp:127.0.0.1:6633 --ports=trema0-0,trema1-0 --datapath-id=0000000000000001 --unixctl=/tmp/ofs0.ctl &Page 7
  8. 8. 仮想ホストの起動▐ 仮想ホスト  Userspace で動作する仮想ホストデーモン phost (Trema 同梱) を使用▐ Trema から phost を起動するコード  https://raw.github.com/trema/trema/develop/ruby/trema/phost.rb  sudo ./phost –i trema0-0 –D &Page 8
  9. 9. まとめ▐ Tremaのネットワークエミュレーション機能  開発したコントローラを「すぐ動かしてみる」ための機能です  仮想スイッチとしてuserspaceで動作するopenvswitchを使用していま す。▐ ネットワークエミュレーション機能のTrema内部での実現方法に ついて紹介しました。Page 9
  10. 10. おまけ : kernel-mode 版openvswitchとtremaを接続してみる routing switch trema Secure Channel link0-1 link1-0 ofs0 ofs1 link0-0 link1-1 link2-1 link2-0 ofs2 Page 10
  11. 11. openvswitchのインストール▐ ./configure --with-linux=/lib/modules/`uname -r`/build▐ make▐ make install▐ insmod datapath/linux/openvswitch.ko▐ mkdir -p /usr/local/etc/openvswitch▐ ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema Page 11
  12. 12. 仮想リンクの設定▐ ip link add name link0-1 type veth peer name link1-0▐ ip link add name link1-1 type veth peer name link2-0▐ ip link add name link2-1 type veth peer name link0-0▐ ifconfig link0-0 up▐ ifconfig link0-1 up▐ ifconfig link1-0 up▐ ifconfig link1-1 up▐ ifconfig link2-0 up▐ ifconfig link2-1 up Page 12
  13. 13. openvswitchの起動▐ ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,manager_options --pidfile --detach▐ ovs-vsctl --no-wait init▐ ovs-vswitchd --pidfile --detach Page 13
  14. 14. openvswitchの設定▐ ovs-vsctl add-br ofs0▐ ovs-vsctl add-port ofs0 link0-0▐ ovs-vsctl add-port ofs0 link0-1▐ ovs-vsctl set-controller ofs0 tcp:127.0.0.1:6633▐ ovs-vsctl set bridge ofs0 other-config:datapath- id=0000000000000010▐ ofs1, ofs2 についても同様に設定 Page 14
  15. 15. openvswitchの状態確認▐ ovs-vsctl list-br ofs0▐ ovs-vsctl list-ports ofs0 link0-0link0-1▐ ovs-vsctl get-controller ofs0 tcp:127.0.0.1:6633▐ ovs-vsctl get bridge ofs0 other-config {datapath-id="0000000000000010"} Page 15
  16. 16. trema routing switchの起動▐ gitclone https://github.com/trema/trema.git▐ ./trema/build.rb▐ gitclone https://github.com/trema/apps.git▐ (cd apps/topology/; make)▐ (cd apps/routing_switch/; make)▐ ./trema/trema run -c ./apps/routing_switch/routing_switch_null.conf -d Page 16
  17. 17. Description の取得▐ (cd apps/show_description/; make)▐ TREMA_HOME=./trema ./apps/show_description/show_descriptionManufacturer description: Nicira Networks, Inc.Hardware description: Open vSwitchSoftware description: 1.4.0Serial number: NoneHuman readable description of datapath: NoneDatapath ID: 0x10Port no: 2(0x2)(Port up) Hardware address: e6:26:c9:98:52:eb Port name: link0-0... Page 17
  18. 18. Topology の検出▐ TREMA_HOME=./trema ./apps/topology/show_topologyvswitch {datapath_id "0x11"}vswitch {datapath_id "0x10"}vswitch {datapath_id "0x12"}link "0x11", "0x10"link "0x12", "0x11"link "0x12", "0x10" Page 18

×