大Trema day (Trema day #6) 参加メモ
大Trema dayに参加してきました。今回は信学会NV研共催ということで場所は東大・本郷です。
例によって聞きながらのメモなので内容的に怪しげなところがあるかもしれませんのでご容赦を。修正点あれば適宜突っ込みください。
SDN編
NV 研究会の OSS やハンズオンへの取り組み (東大, 中尾先生)
- 今週はSDN week, NV研究会主催イベントを昨日やっていた*1
- NW仮想化、SDN, NFV, OSSの動きの活発化
- 学会という立場ではあるが、ハンズオン・チュートリアルの試みをしようとしている。
- 第1回はTrema共催。大学の場を借りて、学生にも教育をしてほしい。
- 今日はNVのチュートリアル・ハンズオンセッションで1回目。今後チュートリアルセッションを企画している。Trema, Lagopus, vNode, Ryu, Flare, Contrail, など
- NV研究会で検索してみてください。
NV研究会の紹介
- 時限: 通常の学会とちょっと違う。
- いま旬な技術について、必要に迫られて、フットワークの軽い枠組みで研究を行う。
- 査読なしで論文募集、次は9月で、東北大学。
- 「学会」とあまり固くとらえずに、メールで応募して気軽に参加を。
- 時限研では論文なし、スライドだけでも発表できます(フォーマットは整えてもらわないといけないけど)
- 企業・学会関係者の参加者が集まる場で発表ができる。
中尾研
- Nakao-Lab で検索してみてください。
- Flareというスイッチを作っている。メニーコアプロセッサ+Linux
- リソースコンテナ上でOpenFlow実装したり。
- コア数-スループットのグラフ, 6core/10Gbpsのスイッチが実装できてる(OF1.3 on Flare, Packet:1514B, 100万フロー)
- ryu/trema との連携、コントローラとデータプレーンを両方拡張可能にするという活動をしている。
信学会は非常に硬いのだけど、時限研はそうではない。OSSとの共同活動などもやっていきたい。
データで見るTrema (高宮さん)
資料: データで見るTrema
- Question? Trema day 初参加の方(挙手)
- ほとんどTrema day初参加
Tremaの紹介とか。
- Trema
- データ
- Tremaを開発したのはつ? 2011/04にリリース
- 今までのリリース回数は? 56 (tag)
- "OpenFlow" trends (google trend)
- OF0.8.9, 1.0(2010), Trema公開(2011/04),
- Trema, 33000件くらいダウンロードされてる, gemランキング4000/79200...上位5%くらい (trema -- BestGems)
- 主な活用事例
- 開発コミュニティ
- Stargazed count at github
- OF framework 4強: ryu, floodlight, pox, trema
- Trema Day
- Ryuの人とかFloodlightの本書いたりした人たちが、Tremaという枠にとらわれずに集まって話をしてくれてる。
- 参加者推移
まとめ
- 地道に開発進めてます。
- Trema day とかやってます。
- これからは各方面の連携、NV研含め、学術あるいは企業とも一緒にやっていきたいです。
SDNを使った映像伝送 〜W杯の8Kライブビューイング〜(NTT未来ねっと研究所, 北村さん)
プロフィール
- 最近はクラウドの中で映像制作をやってしまおうとかそういうのをやってる。
- 映像制作のリモートコラボレーションとか。
W杯の8Kライブビューイング
- NHKがやっている8K、スーパーハイビジョン(HD16面)の伝送のところをやるのでタッグを組んでる。ワールドカップブラジルのを日本へ転送。1か月くらいブラジルに拘束されていました。
- ブラジルから日本は、地球半周。ジッタ、誤り訂正やマルチパスなどの技術を使ってなるべく映像が落ちないようにする。
- 8K/60P (TVだと30P, 単純に倍のフレーム), H.264+誤り訂正つけて300Mbpsとか。
- サッカーのフィールド全体を撮れる
- ネットワーク
- ブラジル〜日本の経路
ブラジル -- relay node -- RNP PoP --(US)-- Distribution Centre (tokyo) -+- PV site +- PV site +- PV site
-
- アマゾン川とか地形的な制約が…
- これをさらに冗長・マルチパス
- RNP, redclare, internet2, gemnet/sinet4 ほとんどパブリックネットワークを使って伝送実験。これだけだと不安なのでさらに new linkをつけてルートを3つ作ってる。
- 組み合わせがいっぱいある。どの経路を使うか。経路A/B: 2本の線、誤り訂正とかつけて、両方を受けて、よかったほうのデータを使う。経路Cはシングルパス。3種類。3重なんだけど、ネットワークとしては2,2,1で5本の系統がある。物理線とか系統が被るので独立で5本というわけではないが…。
- 映像の転送システム
- 暗号化、誤り訂正を入れてIPでながす。
- 6月上旬からいってきた。
NWの課題1
- パブリックネットワークなので不安定。特にブラジル国内。テレビ局が再送信とかしてるので試合が始まると一気にトラフィックが増える。強豪国とかだとすごいけど日本の試合はあまり増えなかったりして逆に安心したり。
- 5本用意したけど、ネットワークのパスどう切り替えるか。ネットワーク側で切り替えられるのがいい。エンドユーザから触れられるネットワーク、SDNでコントローラベースでパス変えられるようなことができるとうれしい。OpenFlow SDN あたりが現実的ではないかと思っている。
- OFS を使ったパス切り替えの検証
NWの課題2, ネットワークの状況を知る
- ネットワークの中身がわからない。
- ブラジルの人は英語が通じない…。言葉が通じても、最初は絶対に大丈夫だ・気にするな・まだ時間はあるとか言われる。
- ブラジルのネットワークは1日に1回どこかでファイバカットがあるくらい。トラックが突っ込んだとか。
- 設定も400Mbps用意したとか言われてやったら出ない。実は双方向で合計400だったとか。
- NFVとか高価なものじゃなくても、ネットワークを利用者側から触れるようになっているのがいいのでは。
NWの課題3, 既存のNWにどうSDN入れ込むか
- 既存のルータの下にぶら下げるだけだとパケットが届かない。
- 現場ではまだSDN懐疑的。テストベッドサブネットにしか入れてくれない…
- コントロールプレーンを物理的に確保するのが難しい。国際NWだと物理船別れて引けない。Data/Control を同じ物理線に乗せないといけなかったり。既存のスイッチと一緒に動かすと意外な反応があったり…(結構怖い)
Q&A
- 混んでる時と混んでないときの差、その辺の計測結果とかは?
- jitterはわりとばらつき、パケロスについてはドバっと落ちる時があったりする。回線が切り替わったり。秒単位とか。
- 遅れ、誤り訂正入れてる影響? 映像ストリームを30秒くらいためてる。映像再生時間は変わらない。30秒ためて訂正符号かけて、受信側でも30秒くらいためて再生。なので(映像の)NW遅延としては30秒とかあるが、映像見ている人にとってはずっと滑らかに映像が見えている。誤り訂正、ビット誤りはない。届いたパケットは正しい。届くか届かないか。Bit irretional channel*2 bit が届けば正しいし、届かなければ誤ってる。処理もシンプルだし、性能も出る。
- 全滅の可能性、帯域を取っておく(予約とか)?
- 商用網つかえばできただろうけど、今回は実験的な位置づけ。国内ならJGN/Sinetを使うようなイメージ。申請はするけど、確保されるわけではない。半パブリックなネットワークをつかっていた。
- FIUに設置した図の中、Prestaって何?
Maturing of OpenFlow and SDN through deployments(NEC/Stanford Univ, 小林さん)
参考: Maturing of OpenFlow and Software-defined Networking through deployments
プロフィール
- 2003-2004, 2007-2012, Stanford Univ. at Prof. Nick McKeown Group
- 2012-2014, ON.LAB
歴史
- 2007末, OpenFlow "Viros"*3開始
- 2009年頭, MIT tech Review called "SDN", 名前については不評だった。
- 2010頭, OF/1.0.0
- 2011頭, ONF設立
- たった4年で10人くらいの小さなグループで始めたものがインダストリーに移った。
フェーズ
phase.1(2008), OF PoC
- クライアントとVMモビリティのデモ
- フローをドラッグアンドドロップしてパスを変える。
- OFv0.8.2, HP, NEC, Juniper, Cisco, OFC:NOX), stanford, jgn, internet2 をつないで実験。
phase.2(2009), Slicing and Scaling SDN deployment
- スライスと拡張性、9台のスイッチ、30個のAP, スライスして複数の実験を行う
- スライス: 物理ポートでOF/legacy VLANを分けるもの → FlowVisor
- FlowVisor: packet header に応じて異なるOFCへふりわけ。
- OF/0.9.0
phase.3(2010), GENI, 全米に広げる。
- 10+ Univs by NLR & Internet2
- OF/1.0.0, 商用化開始
- C-Plane, FlowVisor + PlanetLab + オーケストレータで複数プロジェクトが実験できるように。マルチDCオーケストレータの走りみたいなことをやっていた。
- NW全体の負荷分散、サーバとネットワークのパス選択を同時にできる。
phase.4(2011-), Production deployment
- Research Groupの中で日々の業務を(バグの多い)環境の中で使う。
- Researcherがビルの管理者に渡してプロダクションをやった。StanfordのCIS/CISX Building, Packard Building
- 14switch, 30+AP
- measurementに力を入れてる。flow setup delay (reactive flowでやってた), ping RTT, とか。時間コリレーションとるとどこら辺が怪しいのかが見えてくる。
- Measurement infrastructure
- Conribution to OF spec
- flow_mod (最初は消してから入れるとか、フロー足すとカウンタがリセットされるとかだった)
- controller failover (v0.9)
- barrier message
- など。使ってみて足りないものを入れていった。
何を学んだか? (1)
- spec はシンプルなほうがいい。複雑なものだったら4年でこんなに使われるようにはならなかっただろう。
- "Viros" Nov 2007, 11pages, v0.8.2 で18pages, v1.0.0 42pages, vendor extension も入れたがらなかった。
- 短いスペックについては解釈の問題がおきる。リファレンス実装による提示。ベンダは作りやすかった。インタオペラビリティも。
- 開発ツールとかも重要
何を学んだか? (2)
- SDN Design
- reactive flow は実験にはやりやすい。が、ボトルネックに。reactive flow は design としてはどうだったんだろう?
- トポロジディスカバリはどこが担保すべきか?
- in-band control/oub-bound control, in-band, 話はあったが非常に難しい。鶏卵問題、カスケードした現象が起きる。
- out-of-band, 管理VLANつあけばいい、DC/CampusとかではOutで問題なかった。
何を学んだか? (3)
- Hybrid or pure?
何を学んだか? (4)
- Living with legacy network
結論
- Research/Production を両方サポートするのは大変。
- Researcher は production trafficがほしい(リアルな実験をしたい)
- 見た目でアピールする実験をやるのはクリティカル。新しい技術なのでできないことはいっぱいある。見たい人のイマジネーションをとらえて、先のイメージを想起させないといけない。そのためにビジュアルに訴えるデモは非常に大切。ただ、作るのは大変。
- Research/NW Admin/Vendor の間にいいコミュニケーション。お互いの欠点を教えて直していく。それができたので短い時間でMatureだった。
Q&A
- ログ取得と相関、ツールとか?
- 相関は目視で。ログについては…前は手作業、今はTime Series DBというので。大量高速処理できる。
- テスト
- OFが信頼できなかったので、多ポートのあるLinuxはことか持ってきて頑張った。
- OF仕様の肥大化?
- OF仕様のオプションになってるところ、バージョンアップも差分的に変わってる。「バージョンいくつ対応」といってるけど対応していないように見えるところがある。それをどう使いこなせばいいんだろうとか、使いこなしの勘所とかあったりするのでしょうか?
- ないです。だから大変だと思います。オープンで単一のI/Fと言っていたけど、スイッチごとにCapability違う。可能性があるとしたら、Marchant Silicon Chip を使ってるのを OF 用のチップ作ってる会社がある。それがでてくると、インタフェースがシンプルになって中のインプリをうまくスケールするように…。そうなればコントローラはシンプルにできるんじゃ。そういうのが出てこないと難しいかなと。
- Nicira はハード触らずにソフトだけにして、思い通りにコントロールできる方向にした。ハードが出ないと、当初イメージしていたPureでシンプルな世界の実現は難しいのかな。
- OFの情報、どこに何があるのかわからないことが。Extensionの追加、EXT-No.とか。「こういうことで困ってるよ」とかって話は公開されていたりするのか? なぜその Extention が出たか、とかその提案とか。
- ONFなので参加企業だけ。ONF内部的にはあるかもしれないけど。
Clickを始めよう(東大, 山本先生)
Click?
- Click Modular Router で検索してみて
- パケット処理を小さな単位(element)を連結してプログラミング
- element はいま500個くらい公開されてる。組み合わせて複雑なパケット処理。
- 自分でも element 作れる。
- MIT, Eddie Kohler が開発 (2000年), USではNW研究によくつかわれている。
- 中尾研究室ではまずこれを学習
- 実NWに利用できるのか?
Clickをさわってみよう
test.click
FromDevice(eth0) -> Print(ok) -> Discard
ポートの種類
- push: source からパケット転送をイニシエート
- pull: destination からパケット転送をイニシエート
- agnostic: push/pull可能
ethernet switch
arp 機能なし ip router
(arp機能あり)ip router
GUIツールでコンフィグ自動生成
vNODEプロジェクト、仮想化基盤にClickを利用。Click config を自動配置・実行させる。
- D-Planeの性能, FLAREというスイッチを開発。x86 + NPU(many-core NP), 最初のバージョンは36core
- 10G 32port のものを最近は開発している。
- メニーコアをスライスで仮想化して異なるパケット処理を1台のマシンで実行
性能
- ip forwarding, 3coreでほぼ10Gbps
- switch, 2core
- openflow, 5coreくらいで10G, 100Mフローでもいける。
まとめ
- clickで仮想スライスのデータプレーンをプログラミング
- GUIツールでネットワークプログラム
- Flareで物理NW危機並みのスループット確保
- flareスライスにclickでOF実装(OF1.3でやってる)
- tremaでflare openflowを制御
QA
- click学生向け教育って結構大変じゃない?
- 学生にもよるけど、かかる人だと1か月2か月とか。NWの知識があればそんなにかからない…エレメントの理解ができれば。
- Flareを個人で使いたいと思ったらどうしたらいい?
- お金があれば…。無理であれば、共同研究とかそういう形でやれればFlare貸出とかできるかも。いまそういう形で企業数社と話を進めていたりする。興味あれば中尾先生にコンタクトを。
- NWデバイス、FDBとかの実装ってどうする?
- 共有メモリや個別のメモリ空間もあるのでその辺を使って。16-32GB位までの目盛がボードにある。NPはひとつのLinuxとして見える。
- Flare, 中尾ラボのパンフ、Wifiの記載があったんだけどそういうのも作っている?
- Click, 大学とか学術系で見るが、インダストリで使ってる事例はある? インダストリに入らない理由とかがある?
- 事例はあるらしいが私もよく知らない。文献だとNAT Boxとかそういうのあはる。(インダストリに入らないのは) 専用のチップがあったからあまりやらなかったんだろうけど、これからNFVとか汎用チップで実装していく方向に進むと広がるのでは。
- Flare, NP/CPU, パケットの転送は全部NPでやる? CPUに上がる?
- click, 実行時にパケット流しながら指示を入れて反応見るとかできる?
- ダイナミックな変更は無理か。中のパラメタとかは書き換えることはできる。
- モジュール(エレメント)の動的なつなぎかえとか、Trial and Error がリアルタイムにできると面白いなと。
入門編
Trema ハンズオンチュートリアル(つかうのはTremaEdge) (NCLC, 大柴さん)
自己紹介
- ruby and python
- pica8
- 大くんのSDN開発話|NCLC
今日の内容
- TremaEdgeのつかいかた。
- Sinatra, PIO を使うために fork したものをつかっています。
github.com/proshiba/trema-edge
今日のゴール
- TremaEdgeでL2SWをつくる
- ついでにパケット精製、WebAPIの定義、DB操作といったフレームワークやライブラリを紹介。
OpenFlowの基本
- C/D分離
- 集中コントローラ
- フローテーブル
- v1はデバイスについてひとつ。match-action
- v1.3では複数テーブル。複数テーブルを扱う[テーブル間の連携]ためにインストラクションというフィールドが増えた。match-instruction
- スイッチでは何ができるのか。
- TremaEdgeの特徴
- ハンドラ
Tremaベースのアプリ作成をやってみよう
- 起動
- Hello Trema!
参考
- パケットライブラリ Trema::PIO
- Sinatra
- get/post
- DB操作: ActiveRecord, RoRでおなじみのO/R Mapper
注意事項
宣伝(pica8)
- L2/L3とOpenFlow両方対応している。
- Trident2搭載モデル予定
- コントローラ接続検証, ryu/trema/floodlight, OF1.0/1.3で接続テスト済み
- CrossFlow
- テーブルミスした場合にL2/L3の機能で処理をすることができる。
- 必要なところでだけOFのルールを入れることができる。
- フローエントリ数の増加
- ExactMatch(OF1.0), P5101 290000 エントリ, P3290 36000 エントリ, 今年9月くらいのバージョンで。
Q&A
- CrossFlow, 最初にOFのマッチ→l2/L3マッチという順序は固定? OF仕様を逸脱?
- 順序は固定。OF仕様とは異なる動き。OFで実現できないからL2/L3というわけではない。OFCでやることもできるけど、全部をコントローラで作るのは大変。ある程度既存のL2/L3に任せていいのであれば任せてしまってよいのでは、というのがコンセプト。
- CrossFlow, 挙動としては action=normal というのと関連ある?
- この先 action=normal としたらL2/L3に渡すというのがつけられるのかもしれないけど、いまのCrossFlowでは全然別の機能。単純にフローエントリに対してマッチミスがあった場合にL2/L3にわたす。
- Crossflow, pica8すべての製品で実装?
- Broadcomのスイッチでも似たようなのがあったと思うけど。全部のスイッチでできるわけではない。action=normal をいれたとしてもL2/L3としてちゃんと動くように実装されてる製品はあまりない。
Trema編
OpenFlow実用実験事例 (丸紅OKIネットソリューションズ, 板橋さん、玉川さん)
OpenFlowの実用実験
- 2010-2011あたりから技術動向調査とかやってる。
- 技術習得したい
- 社内ネットワークを一部借りてテストベッドをやろう。
- 自生して技術を、と思うけど、開発周りの話になると弱いのでどうしようかな。
- サンプルベースにカスタマイズしながら学習しよう
- どうせやるならうまく社内の環境とつながるような。最低でもL3でやりたいよね。
- コアのL3SWは評価用にいろいろ買った。安価なPica8の機材でやろう。万が一で、L2/L3としても使えるというのもあり。
スケジュール
- 2013年中、段階的にL2スイッチ実装, L3昨日実装, 冗長化、というながれで。
- いま移転直後で止まっちゃってる…将来的にはもうちょっと侵食していきたい。
移行の流れ。
- phase.0, 構築前, wan-router -- core-L3SW -- floor switch (L2)
- phase.1, フロアの一部分を引き出してpica8, L2スイッチとして実装。ブリッジ相当の機能がちゃんと動くか。
- phase.2, WAN-router の下にOFSを移動。L3スイッチとして動くかどうか。ルーティングやTag VLANの実装、DHCP Relay、スタティックルートの機能
- phase.3, OFSの冗長化(コアL3として冗長化)
- というところでいまとまってる
- これから、従来の基幹ネットワークをOFS L3の方へ移行させちゃいたい。
コントローラ開発
- OFCフレームワークの選択
- Tremaにした: 日本語ドキュメント、サンプルコードや情報が多い。取りつきやすい。
- 開発環境、Win7 PCの上に仮想サーバおいてやってる。
- テストできたら実験環境へ。
- Tremaは随時アップデートしてなるべく新しいバージョンで。
開発の進め方
- SimpleL3Switchとかをベースに機能追加
phase.2
- dhcp relay agent
- Tag VLAN
- これはそんなに難しくない。
- シミュレータとVLAN TAGの扱いが違うところがあった。(tagged frame が tag はずれた状態で packet-in ?)
phase.3
現状の課題
- 信頼性の向上
- 完璧じゃない。切り替わりにかかる時間とかも。
- 運用
- コントローラ、コードのメンテとかをどうするか
- 全フロア適用すると10倍近いノードがぶら下がる。負荷とかどうなるか?
- OF1.3対応考えないと。
Q&A
- 情シス部門との調整、説得ってどうやったの?
- トップダウン。やりたいことを経営層に先に承認もらった。情シスが従わなければいけない状況を作った。
- 経営層の口説き落とし方を…
- 当時、SDN/OpenFlowってバズってた。上が非常に興味を持っていた。会社くっついてインフラ刷新したときに、OpenFlowとか意識した選定をせよという指示もあり、経営層がそういうマインドを持っていたので、割と通りやすい状況だった。エンジニア側の思いに対してもともと理解があって前向きに判断してもらえた。裏は少数精鋭、3〜4人くらい。経営層が協力的……、「一部の領域に入れた」というのは、経営層が使ってるNWも含めてデプロイしている。
- メンテナンス、運用やトラブルシューティング、それらの引き継ぎやトランスファーってどうしてる?
- 現状策がないというのが正直なところ。ある程度開発者がバックアップしながらやれることを渡していく。マニュアルの話なのかオペレーション一緒にやるのか、形としてはいろいろあるけど、少しずつ移行。
- テスト環境, Tremaでテスト環境, 実際デプロイして機器つないだ環境でのテスト。テストコードってパケットパターン作ってチェック。現実ではいろんな機器つなぐと予想外の動きが。テストやデバッグどうしたんだろう?
- 開発環境では、プログラム使用に関するテスト。
- テストベッドでは社内の様々なノードに対してPing等の津新流して実際回るかどうか、一般的なネットワーク構築時のテストを一通りやってる。
- 実環境で動かしたときのトラブルとか事象とかってどういうところ?
- L2冗長化、ポートステータス通知とかの応用で考えたんだけど、やってみたら必ずしも通知が来ないことが。
- コード公開する予定ってあったりする?
- 今のところないけど検討します。
そのほか
できる! Trema-Switch(Stratosphere, 川井さん)
資料: できる!trema-switch
自己紹介
- apache とか好き。Webやってた。OSS好き
- IIJ側からストらトスフィアに。技術開発部しかない。10人しかいない。
- なんでTrema?
- Interop Tokyo 2013, OmniSphere1.0, Buffalo G301N を Trema-Switch/OpenWRT に書き換えて使ってた。
Trema-Switch
- trema-edge に同梱
- OF1.3 software switch
- うれしいことに C で書かれている。
- netdev が port になる
ほかの実装
- ovs: C実装, kernel module or netdev
- cpqd ofsoftswitch13, C実装, netdev, OpenWRT対応
- indigo(IVS: Indigo Virtual Switch), floodlight: C, netdev
- Linc: Erlang, netdev
- Lagopus: C, dpdk
いろいろ実装、特徴がある。Trema-Switchは?
- テストスイッチとしてのポジション
Trema-switchのビルド
- rake trema_switch
- gccのコマンド一発でもビルドできる。超簡単。
- OpenWRTへのフィードとか超簡単。
- github.com/iHiroakiKawai/trema-openwrt
- 一部自前パッチが必要。uClibc に足を引っ張られて…
Trema-switchの起動
- 起動も簡単。netdev つかうのに sudo
- ファイルにログとかゴリゴリ書くとつらい。イメージ死ぬ。syslogとstdoutに飛ばす。
Trema-switch
- いまはだいぶできる子になった。Ryu Certificationやるとかなり好成績で出る。NGなる項目は、CPU足りない・テストケース不備のところ。
- テストスイッチかくあるべし。
- Ryu Certification で OK 900 項目以上いくような(ソフトウェア)スイッチはそうそうない。ハードウェアスイッチはもっと悪い。
- PoCはTrema Switchでやって実際の環境持っていくときに泣く泣く機能落とす感じ。
安価なOFS, OpenWRTの敷居が高い?
- RasPi
- Intel NUC
- 普段使いでもtrema-switchを。
trema-switchの開発
- コミット数推移
Flags, ビルド用にいくつかフラグがある。
- WITH_PCAP
- libpcap対応にできる。パケット吸ったり吐いたりをpcapでやれる。pcap的に最適な方法を選択してくれる。
- ポータビリティ(trema switch はわりとLinuxべったりなコードたくさんあるからどこまでかというのはあるが)
- USE_PCAP_IMMEDIATE_MODE
- 比較的新しいlibpcapで使える。pcap_set_immediatemode()
- TPACKET_V2/V3の特性の違い、V2は即時応答性重視, V3はスループット重視。
- 削ってもいいかなと思いつつ。
- GROUP_SELECT_BY_HASH
- Bucket SELECT: ランダムではなくetherフレーム情報に基づいて振り分け。out-of-order をなるべく発生させない。
こんな感じでビルド
シグナル
- 内部状態の確認ができる。
- SIGUSR1: flow table dump
- SIGUSR2: group table dump
and more (相談
- OpenWRT feedメンテナンス事情
- trema-edgeにリリースがないので常にHEAD, そろそろリリースしない?
- テストスイッチなのでOF仕様満たしたい。まだおわってないところ
- controller meter, queue, tunnel port, ポートの動的追加削除, role, AsyncConfig, SSL
- performance tuning
- thread safety
拡張の名前空間ほしいな…
- OSSのexperimenter IDとかないかな? 誰かのれん分けできない?
Trema/Trema-edge統合?
- まだまだ先は長い。次の本出すって話、統合進めつつ書こうかな。本が発売されることには統合されている…両方共倒れにならなければ。(高宮さん)
そんなこんなで Gopenflow
- hkwi/gopenflow · GitHub
- Go lang で実装しはじめた。pthreadもう嫌…
- とりあえずなんでもたいおうする方向で。
- pcap netdev のあとで dpdk も対応したい。
- パフォーマンスも見る。
- pcapリンクすればwindowsでも動く
- 現状, ryu cert OK(981)/ERROR(10)
ところで、関西でSDN勉強会とかしませんか? というネタふりだけしておきます。
Q&A
- スイッチの certification, テストスイッチとしては現実の環境を模擬できるように、特定の機能を落とせるようにするのがいいのでは?
RISE: OpenFlow testbed on JGN-X (NEC/NICT 石井さん)
自己紹介
JGN-X
- Japan Gigabit Network, 1999年にはじまったテストベッドサービス。2-5年に1回くらいテーマ別に更新
- 次世代NW, Future Internet
- JGN-Xウェブサイト
RISE
- OpenFlowのテストベッド, JGN-Xで提供しているサービスの一つ。
- 研究計画とか申請ベースでテストベッド使ってもらう。
- テストベッド自体の技術的なチャレンジ
- OF広域展開(2009からノウハウためつつ、2011からサービス開始
トポロジ
RISEで苦労した点
- すぐループ
- ARPは地味だけど大切。IPパケットのエントリ書くけどARPのエントリ書いて無くて動かないとか結構ある。L2の知識がないとつかうのは大変。
- 原因はどこにあるのか?
- ログとかいろいろ集めてチェック、スイッチのフローエントリのぞいたり。今はある程度手順として確立。
- 既存の機器がおかしくなる
- レガシスイッチとかもあるので。
Tremaを使った活動
- interop tokyo shownet demo
- 2012
- 2013
- RISE3.0
Interop Tokyo 2012 ShowNet
- セキュリティソリューション、ログ監視、IDSとかで怪しいトラフィックを調べてどっかに飛ばす・止めるデモ
- interop なので直前にならないと実機確認できない…。やってみないとわからん。
- さて
- rubyわからんしC langで
- sliceable switchいじればいいんじゃない? → 予想以上に大変。
- マルチベンダ
- デモシナリオ
- すぐ core dump して止まっちゃう…
- やってみて
- 現場合わせでやることはたくさんある。事前準備難しい。試す〜直すのサイクルを速く回したい。
- ruby の方が楽そうな気が。
- 基盤はんだ付けするんじゃなくて、ブレッドボードで回路を試作する感じ
Interop Tokyo 2013 ShowNet
- モニタシステム: 指定したトラフィックを抜き出す。
- 次はruby版で
- ruby 特有の構文に戸惑ったりしたけど…
- 学ぶは「真似ぶ」
- サンプルベースで。足しながら動かす。動かしつつ文法やライブラリを学ぶ。
- 動くと楽しい! Sinatra とかいれはじめる。RESTとかWebUIとか。
- コミットの数が 2012 よりだいぶ増えた。10倍?
- ファイル名、jeje とか入ってて当時あまちゃんが流行ってたのがわかる…
RISE3.0
- 運用してて見えてきた課題
- ユーザ数
- 同時収容ユーザ数が16, NEC PF5240のvirtual switch instance で仮想化。それが最大16個まで。
- FlowVisor? 開発止まり気味…みたいなところもあってプロダクト機能に。
- 機器の追加、スペースも電源も予算も…
- 特定拠点にユーザが集中してしまう。
- 4拠点でループくれ、みたいなリクエストが多い。JGNのトポロジ上使えるトポロジが限られる。
- フルメッシュでない。
- リンク増やすわけにもいかず…。買うにしても調達とか期間が。
- pseudo wire もオペレーションが大変でそんなに頻繁にはできない。
RISE3.0
- トポロジの問題から解決しよう
- SDNそのものじゃないか?
- User OFSとJGN-X Switchの間にトポロジ制御のためのRISE OFSをいれる。
- Vlan Stack による論理パス
- MACアドレス書き換えによる論理パス ← こっちを採用
- MACアドレス書き換え
- OFS仕様上、2Vlan tag push が性能でない。
- QinQはJGN仕様上、原則使ってない
- mac書き換える方が面白そうだから。
- ruby trema で作ってみた。1か月くらいでコンセプト実装。1200行くらい。
まとめ
Q&A
- テナント数の制約ってどうなったの?
- VSIは継続して使ってる。1拠点当たりの最大数制約は変わっていない。が、トポロジについては自由度増えたので、空いているところを使える。収容効率とか利用率の向上。RISE4.0でVSIの制約をどうにかしたい。ソフトウェアスイッチにして制限を外して州よするスライスの数を増やすとかは考えている。
Rubyで100行でルータ (NEC, 千葉さん)
100行でフル機能のIPルータ作っちゃおうぜ!
自己紹介
OF環境で完全なIPルータほしいんだけど
- 世界各地でそういう話が!
目標、フル機能のIPルータをOF環境で提供しよう。できれば100行くらいで。
アプローチ
- OFS -- OFC -- Routing Instance
- linux tap (vif) と namespace を使う。OFSのポートとOFC-Routing Instanceとのvifは同期。
- route cache manager, routing instance でやった処理をキャッシュ
routing decision をどう取ってくるか
- route cache/neighbor cache
- netfilter
- NFLOG (ulogd)
- CT (cnnection track)(conntrack s-L)
- Linux AUDIT (auditd)
つくってみた
- Cだと448行
- Rubyはまだ完成してないけどたぶん100行切る
まとめ
- OFS/OFCでいろいろできるルータができる
- 拡張
- netfilterと連携するとステートフルファイアウォールとかできる?
Q&A
おわりに
- Lagopus の人にステッカーもらったり。コードは7月末に公開になったそうです。
- 某所で突然見たことのある名前が出てきたりして驚きました。何の気なしに出したモノでも見る人いるんだなあと改めて再認識。このへんはもうちょっとやりたいことがあるモノのなかなか手を動かせておらず。さてどうしようか。
- 懇親会でつぼいさんと alexanderplatz1999/neutron-lan ってあれ誰だろうみたいな話した。誰ですか。作者の方は名乗り出ませんか。というかあそこまで作ってるんだったら trema day とかでしゃべることいろいろありそうなんですが…。
- 川井さん「言語何か覚えようと思うと実際モノを作ってみないとなかなか…。OF仕様が隅々まで頭に入ってて、Go lang 覚えたいなと思うと、必然的に Go で OpenFlow Switch 作ろうってなってて、後はさくさく書いてた」的な話をしていてアレゲ感すごかったです。
- 懇親会そのほか技術の話から非技術のはなしまで。結局4時間とか店にいたのか? 楽しゅうございました。