Submit Search
お手軽 OpenFlow Traceroute
2 likes
1,255 views
A
atzm
2015/12/12 Tremaday #8 お手軽 OpenFlow Traceroute
Engineering
Read more
1 of 15
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
More Related Content
PDF
Python勉強会1-はじめに
理 小林
PDF
Predefを使ったsqlのトレース
悠滋 山本
PPTX
JOI-summer-seminar
chigichan24
PDF
Tramp mode
Yuichiro Naito
PDF
Rpn and forth 超入門
Yoshitaka Seo
PPTX
Trema day#4 Pio盛り ~Tremaのパケットパーサ~
エイシュン コンドウ
PPTX
コンピュータシステムの理論と実装10
Yoko Yama
PDF
xv6から始めるSPIN入門
Ryousei Takano
Python勉強会1-はじめに
理 小林
Predefを使ったsqlのトレース
悠滋 山本
JOI-summer-seminar
chigichan24
Tramp mode
Yuichiro Naito
Rpn and forth 超入門
Yoshitaka Seo
Trema day#4 Pio盛り ~Tremaのパケットパーサ~
エイシュン コンドウ
コンピュータシステムの理論と実装10
Yoko Yama
xv6から始めるSPIN入門
Ryousei Takano
Similar to お手軽 OpenFlow Traceroute
(18)
PDF
Lagopus performance
Masaru Oki
PPTX
nftables: the Next Generation Firewall in Linux
Tomofumi Hayashi
PDF
Open flow tunnel extension on lagopus vswitch
Masaru Oki
PDF
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
Kentaro Ebisawa
PDF
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
Masaru Oki
PDF
Lagopus, raw socket build
Masaru Oki
PDF
Tremaで試すFirewall
M Hagiwara
PDF
VIOPS06: OpenFlowによるネットワーク構築と実証事件
VIOPS Virtualized Infrastructure Operators group ARCHIVES
PDF
Hydrogen → Helium での Linux kernel の違い
Masakazu Asama
PPTX
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
Sotaro Kimura
PDF
SDN Framework Ryu Internal
Satoshi KOBAYASHI
PPTX
OLD_Lt traffic analyse_OLD
@ otsuka752
PDF
仮想ネットワークを実現するOpenVNet
Akira Yokokawa
PPTX
Solr 4.0 の主な機能
Shinichiro Abe
PDF
20apr2012 kernelvm7-main
Shotaro Uchida
PDF
話題のOpenFlowをフル活用! OpenVNetで仮想ネットワークを実現しよう!
Akira Yokokawa
PDF
あるコンテキストスイッチの話
nullnilaki
PPT
20060520.tcp
Ken SASAKI
Lagopus performance
Masaru Oki
nftables: the Next Generation Firewall in Linux
Tomofumi Hayashi
Open flow tunnel extension on lagopus vswitch
Masaru Oki
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
Kentaro Ebisawa
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
Masaru Oki
Lagopus, raw socket build
Masaru Oki
Tremaで試すFirewall
M Hagiwara
VIOPS06: OpenFlowによるネットワーク構築と実証事件
VIOPS Virtualized Infrastructure Operators group ARCHIVES
Hydrogen → Helium での Linux kernel の違い
Masakazu Asama
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
Sotaro Kimura
SDN Framework Ryu Internal
Satoshi KOBAYASHI
OLD_Lt traffic analyse_OLD
@ otsuka752
仮想ネットワークを実現するOpenVNet
Akira Yokokawa
Solr 4.0 の主な機能
Shinichiro Abe
20apr2012 kernelvm7-main
Shotaro Uchida
話題のOpenFlowをフル活用! OpenVNetで仮想ネットワークを実現しよう!
Akira Yokokawa
あるコンテキストスイッチの話
nullnilaki
20060520.tcp
Ken SASAKI
Ad
お手軽 OpenFlow Traceroute
1.
お手軽 OpenFlow Traceroute @atzm 2015/12/12 Tremaday
#8
2.
self • ISP 勤務 –
システム/ソフトウェア開発 – ここ最近は OpenFlow とか Overlay とか – 対外 (趣味?) でもたまにネタがあれば • Web ブラウザ上で L2 Learning Switch とか • Linux カーネルの PF_PACKET 周りとか vxlan ドライバとか • libpcap の Q-in-Q (IEEE 802.1ad) 対応とか • etc… 著者近影
3.
OpenFlow traceroute • 欲しかったもの –
ある L2 フレームの本番 flow entries に従った転送経路を調べたい • ethertype へのマッチ等はよく使うので IP には限定したくない – OFC での静的解析ではなく,実際にフレームを流す動的解析がしたい • 条件 – なるべく本番 flow entries に手を入れたくない • 本番トラフィックが流れてる最中でも使えるのが理想だが… – なるべく条件を緩くしたい (可搬性) • 例えば「VLAN ID を 100 個ほどシステム予約します」とか… • 例えば「システム都合で 10,000 個ほど flow entries 突っ込みます」とか… – なるべく vendor extensions は使いたくない (可搬性) – 手軽に実装したい (人間の負荷) – 手軽に使いたい (人間/機械の負荷)
4.
related works • アカデミアの偉大な先人達 –
Stanford: “ndb” (SDN Debugger) • flow entries を細工して,経路途中の OFS からデータを PACKET_IN • OFC で PACKET_IN データを集めて backtrace を生成 – IBM: “SDN Traceroute” • 経路途中の OFS から PACKET_IN するのは一緒だが, flow entry に細工せず済むように色々と頑張っている • 前段で OFS の隣接関係を調査し,更にグラフ彩色問題を解いて, 隣接 OFS が同色にならないようにする • 隣接 OFS の色の数ほどシステム側で flow entries を追加投入 • 色の数ほど VLAN PCP 値を (全体で) 予約 – 必ずしも PCP である必要はなく,本番で使わないフィールドなら何でも良い – etc, etc, etc…
5.
survey • 欲しいものに一番近いのは IBM
“SDN Traceroute” – 前段で OFS の隣接関係 (トポロジ) 検出? • トポロジ情報がないと traceroute の実施ができない – グラフ彩色? • トポロジをグラフに見立てて OFS を色分け • グラフ彩色問題と言えば NP 困難/完全の代名詞では… • トポロジが変化するとグラフ彩色やり直しになる もうひと工夫すれば,グラフ彩色等せずとも実現できるのでは…?
6.
strategy • 基本構造は既存研究と同じで良い OFS OFS
OFSOFS OFC 始点を指定して traceroute 実行命令 Probe マーカに反応して PACKET_IN 以降繰り返し… 通過した OFS を報告 Probe マーカを付けたフレームを OFPP_TABLE 指定して PACKET_OUT ※ もし転送と PACKET_IN を全部 OFS に任せる形にすると, OFS-OFC 間の遅延状況等次第で報告順が前後してしまう
7.
study • この場合 traceroute
に必要な flow entry とは… – 基本形は下記だが,何も考えずに投入すると… priority=0xffff,<marker-field>=<reserved> actions=output:controller OFS OFC Probe マーカを付けたフレームを OFPP_TABLE 指定して PACKET_OUT Probe マーカに反応して PACKET_IN たいへん危険ですのでおやめください
8.
review • 外から来た probe
と,controller から来た probe を判別するための「何か」が必要 – “SDN Traceroute” では,これを “色” で解決していた • 隣接する OFS はそれぞれ別の色になっている • 自分以外の色でマークされた Probe だけ OFC へ渡す • 必要な flow entry 数は,隣接 OFS の色の数 • 色の数ほど Probe マークのための値を (全体で) 予約 • この “色” を着けるために,トポロジ検出したりグラフ彩色問 題を解いたりする必要があった
9.
design • “判別” に,外に出たら消えてしまうフィールドを用いれば良い! –
metadata • 一番使いやすく,side effect もない • 仕様上は set-field action が許可されるのは OF 1.5 から – とはいえ OVS などは 1.3 とかでも可能 – tunnel_id • 仮想ネットワーク ID を OpenFlow 的に操作しない環境では metadata と同じと 考えることができる • 上記環境以外では side effect があるため使いづらい “判別” 出来さえすれば,無理にフレーム自体を書き変える必要はないのでは…?
10.
flow entry • 例えば
VLAN PCP=7 を probe マークに使う場合 table=0,priority=0xffff,metadata=0,dl_vlan_pcp=7 actions=controller – OFC は,PACKET_OUT メッセージの actions に set_field:1->metadata, output:OFPP_TABLE などと指定するだけで良い – traceroute に必要な flow entry は 1 つだけ! – probe マークに必要な予約値も 1 つだけ! – トポロジ検出やグラフ彩色等の前処理も必要なし! – お手軽!!
11.
implementation • 本当に動くのだろうか? • Ryu
アプリとして実装 OFS OFC APP Frontend[HTTP POST] 調査したいヘッダを持つフレーム, Traceroute 開始地点 受け取ったフレームに Probe マーク挿入 metadata 付けて PACKET_OUT …… PACKET_IN [HTTP WebSocket] フレーム内容を解析して ユーザに報告 ……
12.
CLI https://github.com/atzm/oftroute
13.
topology • やっぱりトポロジも知りたい? • OFS
隣接関係検出機能は持っていない • でも他アプリとの共存は可能なので • 例えば Ryu ビルトインのトポロジ検出と連携
14.
GUI https://github.com/atzm/oftgui
15.
ありがとうございました
Download