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を触ってみてちょっとはまったこととか

877 views

Published on

Trema Day #9 Presented by APC - connpass http://trema.connpass.com/event/31144/

Published in: Technology
  • Be the first to comment

  • Be the first to like this

最近のTremaを触ってみてちょっとはまったこととか

  1. 1. 最近のTremaを さわってみて ちょっと はまったこととか 2016/07/02 Tremaday#9 @stereocat 1
  2. 2. @stereocat SIerでネットワークエンジニア …的な何か。 IHAnet ASN#64594 2
  3. 3. 3 [増補改訂版]クラウド時代のネットワーク技術OpenFlow実践入門 (SoftwareDesignplus):高宮安仁,鈴木一哉,松井暢之,村木暢哉,山崎 泰宏:本:Amazon.co.jp https://www.amazon.co.jp/%E5%A2%97%E8%A3%9C%E6%94%B9 %E8%A8%82%E7%89%88- %E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E6%99%82 %E4%BB%A3%E3%81%AE%E3%83%8D%E3%83%83%E3%83%8 8%E3%83%AF%E3%83%BC%E3%82%AF%E6%8A%80%E8%A1%9 3-OpenFlow%E5%AE%9F%E8%B7%B5%E5%85%A5%E9%96%80- Software-Design/dp/4774179833/
  4. 4. 4 よし! じゃあ何か やってみようか!
  5. 5. 前回のアレ 5 Trema Day #8 Presented by APC - connpass http://trema.connpass.c om/event/22500/ http://www.okinawaop enlabs.org/wp/wp- content/uploads/17_13 00_4_Hagiwara.pdf
  6. 6. 前回のアレ 6 veth veth eth eth eth REST OFC Test Node (Network Namespace) OFS (OVS) OFS テスト 対象 OpenFlow Patch Flow Rule Generator config Linux/Mininet Target
  7. 7. Target • Trema本の patch_panel アプリをベースにする。 • oolorg の flow rule generator が生成するフロールー ル (JSON) を受け取れるREST APIをつくる。 • L2のコントロールができるようにコントローラの機能を 拡張する。 • REST作るついでに、patch の可視化もしよう – Topology discoveryしてOFS間結線情報をとる。 – Patch port間の対応関係をグラフ化する。 7
  8. 8. Target 8 GitHub-oolorg/ool-l1patch-dev:OkinawaOpenLabsL1Patch NWTestProjectScript https://github.com/oolorg/ool-l1patch-dev
  9. 9. 参考: 系譜 9 oolorg/ool-l1patch-dev https://github.com/oolorg/ool-l1patch-dev stereocat/patch_panel https://github.com/stereocat/patch_panel/tree/l1patch-api-build yasuhito/net_tester https://github.com/yasuhito/net_tester trema/patch_panel https://github.com/trema/patch_panel nmasao/OFPatchPanel-SDNHackathon2014 https://github.com/nmasao/OFPatchPanel-SDNHackathon2014 Ryu OFC + WebUI. L1-based patch panel Ryu OFC + Flow Generator + Mininet apps L1/L2-based patch panel Trema OFC + CLI Frontend L1-based patch panel Trema OFC L1/L2-based patch panel and Patch Visualization
  10. 10. 10 はまったこと
  11. 11. 11 はまったこと ……を 話そうと思った んですが。
  12. 12. 12 …と思うんだけど 知 識 が 追 い 付 か な い こ う い う こ と できねえかな…
  13. 13. 13 自 分 で 自分のイメージを ある程度形にでき るだけのスキルと 知 識 が ほ し い ! !
  14. 14. 14 クソコードでも い い か ら 形にして見せら れることが大切
  15. 15. はまったこと 15
  16. 16. 16 Original Patch Panelを動かす Tremaのセットアップ サンプル実行 Ruby環境整備 RVM rbenv bundler gemバージョン依存 Linux security (sudo secure_path) OVS/Trema 相性問題?
  17. 17. 17 REST APIつくる! REST? HTTPと HTTPサーバ Web Framework Rack Grape Test Cucumber RSpec そもそもの テストシナリオの考え方 Phut機能 (vlan) Rack::Test
  18. 18. 18 Patch Panelの フロー操作機能拡張 Ruby Match/Action APIドキュメント Trema/Pio packet binary 操作実装 Flow Table Debugging Flow table dump packet dump ethernet typeなどの プロトコル仕様 OpenFlowプロトコル仕様 マルチテーブル テーブル設計
  19. 19. Patch情報の可視化 19
  20. 20. 20 フロー情報を内部で記憶 ポート間map情報を生成 RESTでポート間情報を JSON出力 D3.jsの Hierarchical Edge Bundle Patch情報の可視化 D3.js JavaScript CSS3 HTML5 CORS データモデリング DB Webアプリのお作法
  21. 21. 物理トポロジ情報の取得と可視化 21 stereocat@dev02:~/patch_panel$ ./bin/trema run lib/patch_panel.rb -c patch_panel_patterns.conf PatchPanel started. Topology started. #switch_ready dpid=1 #switch_ready dpid=2 #switch_ready dpid=3 Port 0x1:3 added: 3 Port 0x1:1 added: 1, 3 Port 0x1:4 added: 1, 3, 4 Port 0x1:7 added: 1, 3, 4, 7 Port 0x1:5 added: 1, 3, 4, 5, 7 Port 0x1:6 added: 1, 3, 4, 5, 6, 7 Port 0x1:2 added: 1, 2, 3, 4, 5, 6, 7 Switch 0x1 added: 0x1 Port 0x2:3 added: 3 Port 0x2:1 added: 1, 3 Port 0x2:4 added: 1, 3, 4 Port 0x2:2 added: 1, 2, 3, 4 Switch 0x2 added: 0x1, 0x2 Port 0x3:3 added: 3 Port 0x3:1 added: 1, 3 Port 0x3:2 added: 1, 2, 3 Switch 0x3 added: 0x1, 0x2, 0x3 Link 0x2-0x3 added: 0x2-0x3 Link 0x1-0x2 added: 0x1-0x2, 0x2-0x3 Link 0x1-0x2 added: 0x1-0x2, 0x1-0x2, 0x2-0x3
  22. 22. 22 物理トポロジ情報の取得と可視化 Trema/Topology LLDP仕様 Patch Panel フローテーブルとの整合性 LLDPフィルタ (OF1.0)
  23. 23. 実機環境テスト 23
  24. 24. 24 みんな いろいろ試して 教えてください!!

×