2015年8月9日日曜日

Trema Day #7 Presented by APC に参加してきた

開催概要

他のかたのまとめ

感想

トレンドなのか、たまたまなのか、今回は無線関係のOpenFlowの話が多かった。 TremaがPure Rubyになったということで、いい加減、Trema入門します。 エーピーコミュニケーションズさんのすばらしい会場で、 懇親会まで準備いただいてありがとうございました!

OpenFlowで覚えるネットワーク

まとめると

ネットワークをあまり理解していない人に向けて、どのようにしたら 理解してもらえるか。どうやったらネットワークを理解している人を増やせるか という課題に対して、 Yellowケーブルなどのころからのネットワークの変化を OpenFlowを使って追体験することで、理解を深められるのではないか という 試み。

メモ

  • テクニカルな話ではない
− ネットワーク = コミュニケーションをする道具
  • 複数の人 で達成する
    • 情報のやりとりをやる
  • 必ず2点の「端点」がある
  • ゴール: 自分の頭の中にあるものが相手の頭の中になっている
    • 音声、紙
      • 日本語 とかいうルールがある
        • プロトコル
  • ネットワークのかたち
    • どんな情報を伝えるか
    • どこのだれに情報を伝えるか
    • 何を使って情報を伝えるか
    • メディア
  • mininet使うと簡単に試せる
  • 糸電話からLearning Switchへ
  • 同時に話すとCollisionが発生する
    • 共有メディアは人が増えるとしゃべれなくなる
  • 近代ネットワークの道
    • ブリッジ → スイッチ
    • スイッチになるとコリジョンが発生しなくなる
− スイッチにするには
  • KnownなARPテーブル
  • UnknownなARPテーブル → Learning Switch
  • よその部屋の人との会話
    • IPの話→Simple Router
  • L1とはL2というのを下から上に理解するといいのではと思っている
  • コリジョンドメイン、全二重と半二重、物理メディアの話は端よっている
  • OpenFlowを使おうとおもうと、面倒見る人がいない
    • ソフト屋

ニューTrema5つのポイント

まとめる

新しいTremaになった。 見た目は変わっていないが、中身はだいぶかわった。 OpenFlow1.3.4に対応し、Pure Rubyにして、 コントローラ連携がしやすくなって、テストフレームワークと ドキュメントが充実した。

メモ

  • OpenFlow1.3.4に対応
    • –openflow13 と足すとしゃべれるようになった
    • pioで対応
    • trema/pio を見るとわかる
  • Pure Ruby化
    • インストールが簡単
    • openvswitchを入れて、bundle install でできる
    • デバッグしやすい
    • pryとかでパケットインのところでそのときのスコープの変数とかが見える
    • pryだとmethodの補完もできる
    • show-sourceとかでmethodなので。
  • コントローラ連携
    • 既存のコントローラを組み合わせて高機能なコントローラを作ることができる
    • delegatorというのを使う
    • クラスの継承を使って機能を拡張するのも簡単
  • テストフレームワーク
    • テスト
      • INPUT とOUTPUTを定義するとできる
    • Cucumberでできる
    • Given When Thenでかける
  • ドキュメント
    • Cucumberの記述からドキュメントを生成するようにした
    ー その結果充実した
  • 協力のお願い
    1. バグ報告
    2. パッチのPR
    3. 新しいアプリ
    4. Trema本レビュー

OVS拡張の話(とPioの話)

まとめると

TremaのPacketParserであるPioに OVSで使われている Nicira拡張をいれたいという話。 Nicira拡張はOVSに限定されているが、 いろいろと使いやすいものがある。

メモ

  • PioはRubyのパケットパーサ実装
    • パケットのパースをするツール
    • パケットを作れるツール
    • PioがだんだんCoreの部分に近づいている
    • Pioの性能がTremaの性能に影響を与える
  • OVSのNicira拡張にいろいろと使えるものがある
  • OpenFlowのきついところ
    • 「Controllerに転送を書くんでしょ?」
    • 「そうだよ?」
    • 辛そう
  • 宣言的にやりたい
  • OpenFlow的にはpacket_inさせるな!というのが一般的だが。。
  • 簡単にかけます

QA

  • Q: Pioにいれるきがあるか?
  • A: 熟読してから決める(by @yasuhito さん)
  • Q: 使える実装はどれくらい?
  • A: OVSなら使える
  • C: 他のハードのスイッチはけっこうはまりそう?。
  • C: Nicira拡張なのでOVSなら使える

いろいろなデバイスでOpenVNetを動かしてみようとした

まとめると

OpenVNet(OVS, Trema, MySQL など)を 次世代携帯型データセンター(Android 2.x)で 動かそうと頑張ったが、そこまでいかなかった。。 という 死闘の記録。

メモ

  • Edge Overlayのおさらい
    • Hostに仮想Switchがのるタイプのネットワーク
    • OpenStack Newtronとの親和性
  • 次世代携帯型データセンター
    • rbenvでrubyのコンパイルが1日で終わる。
    • Tremaのコンパイルも1時間
    • rootをとる必要がある
    • けっこう辛い
  • デモ
    • OVS, Tremaはなんとか動いたが。。
    • 無理矢理アラインメント変更したから。。

Dive into wireless openflow!

まとめると

無線LANとOpenFlowについての考えは珍しくはないが、 無線LANベンダによって、ロックインがあるため、いろいろ難しい面もある。 Raspberry Piを使った実装のデモを使って、効果の説明があった。

メモ

  • 無線とOpenFlowの組み合わせは珍しくはない
  • 無線はいろいろわからない(見えない)
  • 今回作ったやつはラズベリーパイで動いている
  • 効果
    • 状態を監視できる
    • APの電波でどちらを優先するか などの制御ができる
    • デバイスごとの癖がわかる
  • 実装
    • Linux netdev = openflow portとした

QA

  • Q: 無線LANの標準はあるのか?
  • A: 標準にしてもいいがONFとしてどうなっているかはわからない
  • C: 個人的には標準化したほうがよいかという気持ちはある

「Lagopusで遊ぶ(仮)」 あらため「Lagopusで試すFirewall」

  • @hibitomo さん
  • スライドはNot Yet

まとめると

FirewallのACLをLagopusで実装してみる試み。 ポートのRangeを実装するところはLagopusなら力業で実現できる(はず)。 ちょうどLagopusが新しくなって動いていないが、すぐに直るはず。

メモ

  • ACLのポートレンジのところは、最大26万ルールにおさまる!!
  • Lagopus →100万ルール いける(はず)
  • priorityを気をつける必要がある

QA

  • Q: テストツールは?
  • A: RyuのテストツールでJSONをいれればできるので、これでいける?

(仮題)Dockerコンテナのネットワーク周りについて

まとめると

DockerではネットワークまわりがいまHot。 docker 1.8 experimentalではいろいろ遊べる。 RunCを使えば、dockerが入らないようなシステムでも コンテナを簡単に作れる。

メモ

  • Trema関係ない
  • いまDocker Networkに力入れている
  • コンテナの周りのツール いろいろある
  • きょうの話
    • libnetwork
      • コンテナのネットワーク
    • RunC
  • libnetworkの話
    • 言葉の定義
      • SandBox → コンテナのこと
      • Endpoint → vethとかのこと
    • libnetwork driverがdocker0作成したりする
    • libnetwork driver
      • bridge デフォルト
      • overlay VXLANでトンネルをはる
    • overlay driver
      • docker 1.8-experimentalから利用可能
    • swarmはいまはネットワーク周りまだ管理していない
    • consulでやっている
    • docker create network overlay のようにやる
    • docker service publish h1.test ってやる
    • service とIPアドレスが対応している
    • /etc/hostsに書かれている
    • network driver だとarpがこない
      • broadcastとかはdocker側で管理している
    • 今後はlibnetworkを中心に発展していきそう
  • RunCの話
    • ホワイトボックススイッチ
    • Cumulus Linuxなど
      • Debian 7ベース
    • dockerを入れるにはいろいろ問題があって。。
    • そこでRunC
    • Open Container Projectに準拠させた
    • dockerのような常駐デーモンがいない
    • docker export でtarにして、それをrootfsにして、そこでruncを走らせるとコンテナが動く

QA

  • Q: vxlanはdocker間だけ?
  • A: 現状はdocker間だけでしかvxlanは通信できない
  • Q: どうしてスイッチ上でコンテナを動かしたい?
  • A: スイッチ上でアプリが動けばいろいろやりたい。アプリの配置を簡単にしたい
  • Q: dockerのネットワーク切り替えはできる?
  • A: 一応できるけど、ホスト名では解決できない

LT

ぜんぜんかけていないので、あとで追記します。きっと。。

LT SDNに夢見た無線AP~

LT 無線LANコントローラーからSDNへの移行可能性と拡張性の模索

  • @SRCHACK さん

LT Lagopus 0.2

0 件のコメント:

コメントを投稿