SlideShare a Scribd company logo
Copyright©2015 NTT corp. All Rights Reserved.
Birds in Cloud
SDN/NFV: Lagopus & VNF with Vhost
2016/07/02
hibitomo
1
Copyright©2015 NTT corp. All Rights Reserved.
Agenda
- Lagopus?
- Birds in ShowNet
- FPGA + Lagopus + VNF
- Lagopus設定のポイント
- コアアサイン
- Flow設計
- 簡易性能評価
Copyright©2015 NTT corp. All Rights Reserved.
Lagopus
OpenFlowスイッチのソフトウェア実装
汎用x86サーバで動作可能
高速なパケット処理と幅広いプロトコルに対応
> 10Gbps
OpenFlow1.3仕様に幅広く対応
各種トンネリングプロトコル
OpenFlow コントローラ
コントロールプレーン
OpenFlow
プロトコル
OpenFlow スイッチ
データプレーン
Flow Table
フローパターン アクション
フローパターン アクション カウンター
カウンター
Flow
Table
#2
Flow
Table
#3
Flow
Table
#4
Copyright©2015 NTT corp. All Rights Reserved.
What is Lagopus (雷鳥属)?
Lagopus is a small genus of birds in the grouse subfamily, commonly
known as ptarmigans. All living in tundra or cold upland areas.
http://en.wikipedia.org/wiki/Lagopus
http://en.wikipedia.org/wiki/Lagopus#mediaviewer/File:Rock_Ptarmigan_(Lagopus_Muta).jpg
Copyright©2015 NTT corp. All Rights Reserved.
What is Lagopus (雷鳥属)?
5
Copyright©2015 NTT corp. All Rights Reserved.
Birds in ShowNet
- 今年はここに居ました.
引用:https://www.facebook.com/interop.shownet
Copyright©2015 NTT corp. All Rights Reserved.
VNF(VirNOS) + Lagopus + FPGA
- 処理はFPGA、転送はLagopus
- NetFPGA-SUME
- IPアドレスからハッシュを計算
- ハッシュ値にもとづいて転送先のVMの目印をSrc MACに書き込む(256種類)
- LagopusはSrc MAC値に応じてVMへ転送
7
HV VNF VNF VNF
lagopus
lagopus
uplink
downlink
hash計算と
MACへの埋
め込み
MACにもとづいて
VMへ送信(staticな
flow entry)
Copyright©2015 NTT corp. All Rights Reserved.
今回接続したVNF
• VirNOS
• IP infusion のコントリビュート
• vRouter/vCPE solutionのVNF
• DPDKが利用可能.
• High performanceモードとTinyモード等の動作モード
• 今回はTinyモードのVirNOSをDPDKでLagopusと接続
8
Copyright©2015 NTT corp. All Rights Reserved. 9
Copyright©2015 NTT corp. All Rights Reserved.
Challenges
- ホストのLagopus(DPDK)とゲストのVirnos(DPDK)の接続
- 多ポート設定と負荷分散(ShowNetでは8台に分散.ポート数は計18)
10
HV VirNOS VirNOS VirNOS VirNOS
lagopus
lagopus
port2
port4 port6 port8 port10
port9port7port5port3
port1
Eth0
Eth1
Eth0
Eth1
Eth0
Eth1
Eth0
Eth1
Copyright©2015 NTT corp. All Rights Reserved.
Agenda
- Lagopus?
- Birds in ShowNet
- FPGA + Lagopus + VNF
- Lagopus設定のポイント
- コアアサイン
- Flow設計
- 簡易性能評価
Copyright©2015 NTT corp. All Rights Reserved.
設定のポイント: コアアサイン
- NUMAを意識したLagopusとVNFでコアアサインを設計する.
- パケット・処理の流れを考える
NIC
CPU CPUMemory
Memory
NIC
NICNIC
QPI
PCI-Exp PCI-Exp
Reference: supermicro X9DAi
Copyright©2015 NTT corp. All Rights Reserved.
設定のポイント: コアアサイン(LagopusとVNF)
- NUMAを意識したLagopusとVNFでコアアサインを設計する.
- パケット・処理の流れを考える
メモリ
メモリ
NIC
core
core
core
core
core
core
core
core
core
core
core
core
core
core
core
core
CPU0 CPU1
トラフィック
Copyright©2015 NTT corp. All Rights Reserved.
設定のポイント: コアアサイン(LagopusとVNF)
- NUMAを意識したLagopusとVNFでコアアサインを設計する.
- パケット・処理の流れを考える
メモリ
メモリ
NIC
core
core
core
core
core
core
core
core
core
core
core
core
core
core
core
core
CPU0 CPU1
トラフィック
Lagopus
VirNOS
(tiny mode)
× 8
Copyright©2015 NTT corp. All Rights Reserved.
設定のポイント: コアアサイン(LagopusとVNF)
- NUMAを意識したLagopusとVNFでコアアサインを設計する.
- パケット・処理の流れを考える
メモリ
メモリ
NIC
core
core
core
core
core
core
core
core
core
core
core
core
core
core
core
core
CPU0 CPU1
トラフィック
Lagopus
VirNOS
(tiny mode)
× 8
Copyright©2015 NTT corp. All Rights Reserved.
設定のポイント: コアアサイン(LagopusとVNF)
- コアアサインを間違えると性能は半減する
- 横須賀で測定を実施.1500byte, Lagopusはデフォルトのコアアサイン
18
メモリ
メモリ
NIC
core
core
core
core
core
core
core
core
core
core
core
core
core
core
core
core
CPU0 CPU1
トラフィック
LagopusVNF × 8
メモリ
メモリ
NIC
core
core
core
core
core
core
core
core
core
core
core
core
core
core
core
core
CPU0 CPU1
トラフィック
Lagopus VNF × 8約4.4Gbps
約10Gbps
2倍以上の差
Copyright©2015 NTT corp. All Rights Reserved.
HV VirNOS VirNOS VirNOS VirNOS
lagopus
lagopus
port2
port4 port6 port8 port10
port9port7port5port3
port1
Eth0
Eth1
Eth0
Eth1
Eth0
Eth1
Eth0
Eth1
設定のポイント: コアアサイン(LagopusのI/O)
- Pollingでパケットの監視,転送を行うため,ポートが増えるほど性能が落ちる.
- 今回のアーキテクチャでは物理NICへのトラフィックの偏りが顕著
19
10/4 Gbps 10Gbps
Copyright©2015 NTT corp. All Rights Reserved.
HV VirNOS VirNOS VirNOS VirNOS
lagopus
lagopus
port2
port4 port6 port8 port10
port9port7port5port3
port1
Eth0
Eth1
Eth0
Eth1
Eth0
Eth1
Eth0
Eth1
設定のポイント: コアアサイン(LagopusのI/O)
- トラフィックの偏りを考慮したコアアサインを行う
- ShowNetでは4コアをI/Oに利用.下図の様に割り当てた
20
10Gbps
10Gbps
5Gbps 5Gbps
Copyright©2015 NTT corp. All Rights Reserved.
Lagopus設定のポイント(フロールール)
- 256種類のsrc MACをマッチする必要がある.uplinkとdownlinkがあるため,
srcMACのExact matchのルールが512種類必要.
- Hash値は下位1byteに埋め込まれ,平等に分散されていることが期待できる
ので,Maskを用いて下位3bitだけ見るルールに変更することができる.すると
ルール数は16種類に削減できる.
21
in_port dl_src action
1 52:54:00:00:00:01 1
1 52:54:00:00:00:02 2
… … …
in_port dl_src action
1 **:**:**:**:**:*0 1
1 **:**:**:**:**:*1 2
… … …
Copyright©2015 NTT corp. All Rights Reserved.
性能評価(参考情報)
- いろいろな機器を通っているため,参考情報です.
- トラフィックのボトルネックがLagopusであることは確認済
- 東京テクニカさんにご協力頂きました
22
Copyright©2015 NTT corp. All Rights Reserved.
性能評価(参考情報)
- テスターの値をグラフ化.
- Lagopusには物理->VNFとVNF ->物理NICでトラフィックが2倍かかっている
23
[byte]
[Mbps]
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
0 200 400 600 800 1000 1200 1400
wire rate
lagopus
パケットサイズ
トラフィック量
Copyright©2015 NTT corp. All Rights Reserved.
デモ
24
ごめんなさい,
いろんな時間が足りなかったのでありません><
Copyright©2015 NTT corp. All Rights Reserved.
達成できなかったデモ
25
Lagopus
ShowNet
FPGA
Emulator
NIC
port portportportport
VNF VNF VNF VNF
Copyright©2015 NTT corp. All Rights Reserved.
Ansible playbook
- v0.2.4から旧playbookが使えなくなっていたのでいろいろ更新
- 突貫で作ったコードなので,とりあえずfork先しか更新しておりません
- fork先: https://github.com/hibitomo/lagopus-tools
- ついでに機能が追加されています
- 新機能
- DSLの自動生成
- 実行スクリプト自動生成 (vhost, pcap, pipeのvdevにも対応)
- 新ansibleサンプル
- Lagopus - VMを接続するサンプル(qemuの起動スクリプトも生成)
Copyright©2015 NTT corp. All Rights Reserved.
Lagopus slack
- Facebookに「Lagopus Users Community」というグループがあります!
28
Copyright©2015 NTT corp. All Rights Reserved.
時間があれば
29
Copyright©2015 NTT corp. All Rights Reserved.
Agenda
- Bird in ShowNet
- FPGA + Lagopus + VNF
- Lagopus設定のポイント
- コアアサイン
- Flow設計
- 簡易性能評価
- 副産物 lagopus-tools
- ansible
- lago-dsl
- lago-mon
Copyright©2015 NTT corp. All Rights Reserved.
副産物:lagopus-tools
• 元々はインターン生に作らせたAnsibleとRyuのサンプル置き場
• Lagopusが関連するトラブルがほぼなかったため,待ち時間でツールを作成
• 突貫で作ったコードなので,とりあえずfork先しか更新しておりません
• fork先: https://github.com/hibitomo/lagopus-tools
~/lagopus-tools$ ls
ansible examples lago-dsl lago-mon LICENSE README.md
Copyright©2015 NTT corp. All Rights Reserved.
副産物:ansible
- v0.2.4から旧playbookが使えなくなっていた
- 今回,最新のLagopus用に更新.ついでに機能追加.
- 新機能
- DSLの自動生成
- 実行スクリプト自動生成 (vhost, pcap, pipeのvdevにも対応)
- 新ansibleサンプル
- Lagopus - VMを接続するサンプル(qemuの起動スクリプトも生成)
Copyright©2015 NTT corp. All Rights Reserved.
副産物:lago-dsl
• lagopusのDSLを直接叩くスクリプト.
• デバッグ用途以外の使用は推奨しない.
• 直接,flow,interface等の編集をすることができる.
• 実行
$ ./lago-dsl.py [lagopus DSL]
$ ./lago-dsl.py < [lagopus DSL file]
Copyright©2015 NTT corp. All Rights Reserved.
副産物:lago-mon
- Lagopus用モニタリングツール
- 動作確認の為に`lagosh -c show xxx` を連打してカウン
タの差分を目grepするのは辛い.
- logを取る為に`lagosh -c show xxx`を定期的に実行して,
整形済みjsonを一行に戻すのは手間.
- 16 x 16ドットのロゴ
- プロトタイプのファイル名がlagomon.pyだった.作るしか
無いと思った.後悔はしていない.
ラゴモン(成長期)
Copyright©2015 NTT corp. All Rights Reserved.
副産物:lago-mon
- Lagopus用モニタリングツール
- 動作確認の為に`lagosh -c show xxx` を連打してカウン
タの差分を目grepするのは辛い.
- logを取る為に`lagosh -c show xxx`を定期的に実行して,
整形済みjsonを一行に戻すのは手間.
- 16 x 16ドットのロゴ
- プロトタイプのファイル名がlagomon.pyだった.作るしか
無いと思った.後悔はしていない.
- AA版もあります.( 15 x 36 )
########
## ;;;; ##
## #### ##
#### ##
## ## ####
##### ######## ##
############## ## ##
### ######## ## ##
#### ## ## ## #### ##
#### ## ## ## ## ##
###### #### ####
#### #### ##########
####################
mmmm ##
##########
ラゴモン(成長期)
Copyright©2015 NTT corp. All Rights Reserved.
副産物:lago-mon/ifstats-monitor.py
- 実行(指定間隔でJSONを出力するだけ)
- 出力例
{"timestamp": "2016-06-08T14:13:04.253669", "interfaces": {"interface1": {"name":
"interface1", "rx-dropped": 0, "tx-errors": 0, "rx-bytes": 0, "tx-packets": 0, "rx-packets":
0, "tx-bytes": 0, "rx-errors": 0, "tx-dropped": 0}, "interface0": {"name": "interface0",
"rx-dropped": 0, "tx-errors": 0, "rx-bytes": 0, "tx-packets": 0, "rx-packets": 0, "tx-
bytes": 0, "rx-errors": 0, "tx-dropped": 0}}}
$ ./ifstats_monitor.py -l 10
間隔 [sec]
Copyright©2015 NTT corp. All Rights Reserved.
副産物:lago-mon/ifstats-monitor.py
- 実行(moniter.強いリクエストにより,bpsとppsを表示)
- 出力例
2016/06/08 14:22:49
+------------+------------------+--------------+------------------+--------------+
| name | rx-bps | rx-pps | tx-bps | tx-pps |
+------------+------------------+--------------+------------------+--------------+
| interface0 | 0 | 0 | 0 | 0 |
| interface1 | 0 | 0 | 0 | 0 |
+------------+------------------+--------------+------------------+--------------+
$ ./ifstats_monitor.py -m 10
更新間隔 [sec]
Copyright©2015 NTT corp. All Rights Reserved.
副産物:lago-mon/flowstats-monitor.py
- 実行(moniter.同一フローの識別が不可能な為,bps, ppsは無い.)
- 出力例
2016/06/08 14:27:45
bridge01, table: 0
+----------+--------+--------------+------------+----------------+--------------------------------------+--------------+--------------+
| priority | cookie | packet_count | byte_count | data | actions | hard_timeout | idle_timeout |
+----------+--------+--------------+------------+----------------+--------------------------------------+--------------+--------------+
| 100 | 0 | 0 | 0 | {"in_port": 2} | [{"apply_actions": [{"output": 1}]}] | 0 | 0 |
| 100 | 0 | 0 | 0 | {"in_port": 1} | [{"apply_actions": [{"output": 2}]}] | 0 | 0 |
+----------+--------+--------------+------------+----------------+--------------------------------------+--------------+--------------+
$ ./flowstats_monitor.py -m 10
更新間隔 [sec]
Copyright©2015 NTT corp. All Rights Reserved.
副産物:lago-mon/flowstats-monitor.py
- 実行(指定間隔でJSONを出力するだけ)
- 出力例
{"timestamp": "2016-06-08T14:25:44.853720", "flows": {"bridge01": {"tables":
[{"table": 0, "flows": [{"stats": {"packet_count": 0, "byte_count": 0}, "hard_timeout": 0,
"actions": [{"apply_actions": [{"output": 2}]}], "priority": 100, "idle_timeout": 0,
"cookie": 0, "in_port": 1}, {"stats": {"packet_count": 0, "byte_count": 0},
"hard_timeout": 0, "actions": [{"apply_actions": [{"output": 1}]}], "priority": 100,
"idle_timeout": 0, "cookie": 0, "in_port": 2}]}], "name": "bridge01"}}}
$ ./flowstats_monitor.py -l 10
間隔 [sec]
Copyright©2015 NTT corp. All Rights Reserved.
lago-monを利用したツール連携
40
Lagopus DSL
log file
Lagopus Server Log/Display Server
REST
Copyright©2015 NTT corp. All Rights Reserved.
lago-monを利用したツール連携
• 出力例(Ryu-certification動作中のログ)
41
Copyright©2015 NTT corp. All Rights Reserved.
まとめ
- Bird in ShowNet
- LagopusとDPDKでVMに接続
- LagopusとFPGAでVMにロードバランス
- 副産物(lagopus-tools)
- ansible
- lago-dsl.py
- lago-mon
Copyright©2015 NTT corp. All Rights Reserved.
ご清聴ありがとうございました
43
########
## ;;;; ##
## #### ##
#### ##
## ## ####
##### ######## ##
############## ## ##
### ######## ## ##
#### ## ## ## #### ##
#### ## ## ## ## ##
###### #### ####
#### #### ##########
####################
mmmm ##
##########

More Related Content

What's hot

NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07
Tomoya Hibi
 
Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1
Tomoya Hibi
 
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
Kentaro Ebisawa
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
Yoshihiro Nakajima
 
自動でできるかな?
自動でできるかな?自動でできるかな?
自動でできるかな?_norin_
 
[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...
[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...
[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...
Tomoya Hibi
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
npsg
 
Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224
Tomoya Hibi
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
Tomoya Hibi
 
Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
Tomoya Hibi
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pi
tokudahiroshi
 
自作仮想化基盤 「n0stack」の紹介
自作仮想化基盤 「n0stack」の紹介自作仮想化基盤 「n0stack」の紹介
自作仮想化基盤 「n0stack」の紹介
Takeshi Take
 
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
npsg
 
IoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトークIoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトーク
Tomoya Hibi
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch Usecases
Sakiko Kawai
 
スマホのセンサーでネットワークを操る ~Ansible TowerによるレガシーNW機器のAPI化~
スマホのセンサーでネットワークを操る  ~Ansible TowerによるレガシーNW機器のAPI化~スマホのセンサーでネットワークを操る  ~Ansible TowerによるレガシーNW機器のAPI化~
スマホのセンサーでネットワークを操る ~Ansible TowerによるレガシーNW機器のAPI化~
akira6592
 
Lagopus Router
Lagopus RouterLagopus Router
Lagopus Router
Tomoya Hibi
 
VTI の中身
VTI の中身VTI の中身
VTI の中身
Masakazu Asama
 

What's hot (20)

NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07
 
Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1
 
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
 
自動でできるかな?
自動でできるかな?自動でできるかな?
自動でできるかな?
 
[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...
[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...
[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...
 
Kernel vm-2014-05-25
Kernel vm-2014-05-25Kernel vm-2014-05-25
Kernel vm-2014-05-25
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
 
Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月Project calico introduction - OpenStack最新情報セミナー 2017年7月
Project calico introduction - OpenStack最新情報セミナー 2017年7月
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pi
 
自作仮想化基盤 「n0stack」の紹介
自作仮想化基盤 「n0stack」の紹介自作仮想化基盤 「n0stack」の紹介
自作仮想化基盤 「n0stack」の紹介
 
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
 
IoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトークIoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトーク
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch Usecases
 
スマホのセンサーでネットワークを操る ~Ansible TowerによるレガシーNW機器のAPI化~
スマホのセンサーでネットワークを操る  ~Ansible TowerによるレガシーNW機器のAPI化~スマホのセンサーでネットワークを操る  ~Ansible TowerによるレガシーNW機器のAPI化~
スマホのセンサーでネットワークを操る ~Ansible TowerによるレガシーNW機器のAPI化~
 
Lagopus Router
Lagopus RouterLagopus Router
Lagopus Router
 
VTI の中身
VTI の中身VTI の中身
VTI の中身
 

Viewers also liked

Call for Speakersに講演を256倍通す方法
Call for Speakersに講演を256倍通す方法Call for Speakersに講演を256倍通す方法
Call for Speakersに講演を256倍通す方法
Kentaro Takeda
 
Career - design, adaption and diversity - for EMC I&D event
Career - design, adaption and diversity - for EMC I&D eventCareer - design, adaption and diversity - for EMC I&D event
Career - design, adaption and diversity - for EMC I&D event
Miya Kohno
 
Contiv 20160914
Contiv 20160914Contiv 20160914
Contiv 20160914
Takao Setaka
 
OpenStack Congress and Datalog (English)
OpenStack Congress and Datalog (English)OpenStack Congress and Datalog (English)
OpenStack Congress and Datalog (English)
Motonori Shindo
 
Cedexis
CedexisCedexis
Cedexis
J-Stream Inc.
 
中国にOpenflowを入れてきた話
中国にOpenflowを入れてきた話中国にOpenflowを入れてきた話
中国にOpenflowを入れてきた話
cloretsblack
 
試してわかるSDN
試してわかるSDN試してわかるSDN
試してわかるSDN
cloretsblack
 
Node最新トピックス
Node最新トピックスNode最新トピックス
Node最新トピックス
shigeki_ohtsu
 
Router chat for np
Router chat for npRouter chat for np
Router chat for np
Okuya Igarashi
 
npstudy 161129
npstudy 161129npstudy 161129
10分で作るクラスライブラリ
10分で作るクラスライブラリ10分で作るクラスライブラリ
10分で作るクラスライブラリ
_norin_
 
Npstudy#7 クラウドインフラのネットワーク自動描画
Npstudy#7 クラウドインフラのネットワーク自動描画Npstudy#7 クラウドインフラのネットワーク自動描画
Npstudy#7 クラウドインフラのネットワーク自動描画
hirokihojo
 
【Interop Tokyo 2016】 ShowNet - SSS-17 : ShowNet 2016 を支える シスコの最新テクノロジー
【Interop Tokyo 2016】 ShowNet - SSS-17 :  ShowNet 2016 を支えるシスコの最新テクノロジー【Interop Tokyo 2016】 ShowNet - SSS-17 :  ShowNet 2016 を支えるシスコの最新テクノロジー
【Interop Tokyo 2016】 ShowNet - SSS-17 : ShowNet 2016 を支える シスコの最新テクノロジー
シスコシステムズ合同会社
 
ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話
zaki4649
 
Korejanai Story
Korejanai StoryKorejanai Story
Korejanai Story
Kentaro Takeda
 
Mk state in-programming-01
Mk state in-programming-01Mk state in-programming-01
Mk state in-programming-01
Miya Kohno
 
Jcsug21 20140912
Jcsug21 20140912Jcsug21 20140912
Jcsug21 20140912
hirokihojo
 
Janog37 Pattern BoF
Janog37 Pattern BoFJanog37 Pattern BoF
Janog37 Pattern BoF
Miya Kohno
 
of_protocol_tremaday5
of_protocol_tremaday5of_protocol_tremaday5
of_protocol_tremaday5
エイシュン コンドウ
 
Cloud stackユーザ会大阪 運用Tips 20130802
Cloud stackユーザ会大阪 運用Tips 20130802Cloud stackユーザ会大阪 運用Tips 20130802
Cloud stackユーザ会大阪 運用Tips 20130802hirokihojo
 

Viewers also liked (20)

Call for Speakersに講演を256倍通す方法
Call for Speakersに講演を256倍通す方法Call for Speakersに講演を256倍通す方法
Call for Speakersに講演を256倍通す方法
 
Career - design, adaption and diversity - for EMC I&D event
Career - design, adaption and diversity - for EMC I&D eventCareer - design, adaption and diversity - for EMC I&D event
Career - design, adaption and diversity - for EMC I&D event
 
Contiv 20160914
Contiv 20160914Contiv 20160914
Contiv 20160914
 
OpenStack Congress and Datalog (English)
OpenStack Congress and Datalog (English)OpenStack Congress and Datalog (English)
OpenStack Congress and Datalog (English)
 
Cedexis
CedexisCedexis
Cedexis
 
中国にOpenflowを入れてきた話
中国にOpenflowを入れてきた話中国にOpenflowを入れてきた話
中国にOpenflowを入れてきた話
 
試してわかるSDN
試してわかるSDN試してわかるSDN
試してわかるSDN
 
Node最新トピックス
Node最新トピックスNode最新トピックス
Node最新トピックス
 
Router chat for np
Router chat for npRouter chat for np
Router chat for np
 
npstudy 161129
npstudy 161129npstudy 161129
npstudy 161129
 
10分で作るクラスライブラリ
10分で作るクラスライブラリ10分で作るクラスライブラリ
10分で作るクラスライブラリ
 
Npstudy#7 クラウドインフラのネットワーク自動描画
Npstudy#7 クラウドインフラのネットワーク自動描画Npstudy#7 クラウドインフラのネットワーク自動描画
Npstudy#7 クラウドインフラのネットワーク自動描画
 
【Interop Tokyo 2016】 ShowNet - SSS-17 : ShowNet 2016 を支える シスコの最新テクノロジー
【Interop Tokyo 2016】 ShowNet - SSS-17 :  ShowNet 2016 を支えるシスコの最新テクノロジー【Interop Tokyo 2016】 ShowNet - SSS-17 :  ShowNet 2016 を支えるシスコの最新テクノロジー
【Interop Tokyo 2016】 ShowNet - SSS-17 : ShowNet 2016 を支える シスコの最新テクノロジー
 
ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話
 
Korejanai Story
Korejanai StoryKorejanai Story
Korejanai Story
 
Mk state in-programming-01
Mk state in-programming-01Mk state in-programming-01
Mk state in-programming-01
 
Jcsug21 20140912
Jcsug21 20140912Jcsug21 20140912
Jcsug21 20140912
 
Janog37 Pattern BoF
Janog37 Pattern BoFJanog37 Pattern BoF
Janog37 Pattern BoF
 
of_protocol_tremaday5
of_protocol_tremaday5of_protocol_tremaday5
of_protocol_tremaday5
 
Cloud stackユーザ会大阪 運用Tips 20130802
Cloud stackユーザ会大阪 運用Tips 20130802Cloud stackユーザ会大阪 運用Tips 20130802
Cloud stackユーザ会大阪 運用Tips 20130802
 

Similar to Lagopus & NFV with Vhost (Tremaday#9)

知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
 
Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302
Takehiro Kudou
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_final
Kazumasa Ikuta
 
IPv6の現状
IPv6の現状IPv6の現状
IPv6の現状
Shinsuke SUZUKI
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hw
ykuga
 
クラウド時代のネットワーク再入門
クラウド時代のネットワーク再入門クラウド時代のネットワーク再入門
クラウド時代のネットワーク再入門
Naoto MATSUMOTO
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
Hirofumi Ichihara
 
Trema day 1
Trema day 1Trema day 1
Trema day 1
ykuga
 
ブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみたブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみた
mganeko
 
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
Juniper Networks (日本)
 
Ansible npstudy-shtsuchi
Ansible npstudy-shtsuchiAnsible npstudy-shtsuchi
Ansible npstudy-shtsuchi
Shishio Tsuchiya
 
161027 net opscoding-junos-automation
161027 net opscoding-junos-automation161027 net opscoding-junos-automation
161027 net opscoding-junos-automation
Hiromi Tsukamoto
 
統合ログ分析技術Lognosisと運用ログ分析の取組
統合ログ分析技術Lognosisと運用ログ分析の取組統合ログ分析技術Lognosisと運用ログ分析の取組
統合ログ分析技術Lognosisと運用ログ分析の取組
NTT Software Innovation Center
 
[db tech showcase Sapporo 2015] B14:データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第二章 b...
[db tech showcase Sapporo 2015] B14:データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第二章 b...[db tech showcase Sapporo 2015] B14:データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第二章 b...
[db tech showcase Sapporo 2015] B14:データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第二章 b...
Insight Technology, Inc.
 
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
 
透過 L2 BRIDGE NAT
透過 L2 BRIDGE NAT透過 L2 BRIDGE NAT
透過 L2 BRIDGE NAT
h-otter
 
P2Pって何?
P2Pって何?P2Pって何?
P2Pって何?
Junya Yamaguchi
 
Nsegソフトウェアルータvyatta
NsegソフトウェアルータvyattaNsegソフトウェアルータvyatta
Nsegソフトウェアルータvyattajem 3
 
Multi Chassis LAG for Cloud builders
Multi Chassis LAG for Cloud buildersMulti Chassis LAG for Cloud builders
Multi Chassis LAG for Cloud builders
Juniper Networks (日本)
 

Similar to Lagopus & NFV with Vhost (Tremaday#9) (20)

知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 
Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_final
 
IPv6の現状
IPv6の現状IPv6の現状
IPv6の現状
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hw
 
クラウド時代のネットワーク再入門
クラウド時代のネットワーク再入門クラウド時代のネットワーク再入門
クラウド時代のネットワーク再入門
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
Trema day 1
Trema day 1Trema day 1
Trema day 1
 
ブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみたブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみた
 
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
 
Ansible npstudy-shtsuchi
Ansible npstudy-shtsuchiAnsible npstudy-shtsuchi
Ansible npstudy-shtsuchi
 
161027 net opscoding-junos-automation
161027 net opscoding-junos-automation161027 net opscoding-junos-automation
161027 net opscoding-junos-automation
 
統合ログ分析技術Lognosisと運用ログ分析の取組
統合ログ分析技術Lognosisと運用ログ分析の取組統合ログ分析技術Lognosisと運用ログ分析の取組
統合ログ分析技術Lognosisと運用ログ分析の取組
 
[db tech showcase Sapporo 2015] B14:データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第二章 b...
[db tech showcase Sapporo 2015] B14:データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第二章 b...[db tech showcase Sapporo 2015] B14:データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第二章 b...
[db tech showcase Sapporo 2015] B14:データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第二章 b...
 
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
 
透過 L2 BRIDGE NAT
透過 L2 BRIDGE NAT透過 L2 BRIDGE NAT
透過 L2 BRIDGE NAT
 
P2Pって何?
P2Pって何?P2Pって何?
P2Pって何?
 
Nsegソフトウェアルータvyatta
NsegソフトウェアルータvyattaNsegソフトウェアルータvyatta
Nsegソフトウェアルータvyatta
 
Multi Chassis LAG for Cloud builders
Multi Chassis LAG for Cloud buildersMulti Chassis LAG for Cloud builders
Multi Chassis LAG for Cloud builders
 
2015-ShowNetステージ-BGPFlowspec
2015-ShowNetステージ-BGPFlowspec2015-ShowNetステージ-BGPFlowspec
2015-ShowNetステージ-BGPFlowspec
 

Lagopus & NFV with Vhost (Tremaday#9)

  • 1. Copyright©2015 NTT corp. All Rights Reserved. Birds in Cloud SDN/NFV: Lagopus & VNF with Vhost 2016/07/02 hibitomo 1
  • 2. Copyright©2015 NTT corp. All Rights Reserved. Agenda - Lagopus? - Birds in ShowNet - FPGA + Lagopus + VNF - Lagopus設定のポイント - コアアサイン - Flow設計 - 簡易性能評価
  • 3. Copyright©2015 NTT corp. All Rights Reserved. Lagopus OpenFlowスイッチのソフトウェア実装 汎用x86サーバで動作可能 高速なパケット処理と幅広いプロトコルに対応 > 10Gbps OpenFlow1.3仕様に幅広く対応 各種トンネリングプロトコル OpenFlow コントローラ コントロールプレーン OpenFlow プロトコル OpenFlow スイッチ データプレーン Flow Table フローパターン アクション フローパターン アクション カウンター カウンター Flow Table #2 Flow Table #3 Flow Table #4
  • 4. Copyright©2015 NTT corp. All Rights Reserved. What is Lagopus (雷鳥属)? Lagopus is a small genus of birds in the grouse subfamily, commonly known as ptarmigans. All living in tundra or cold upland areas. http://en.wikipedia.org/wiki/Lagopus http://en.wikipedia.org/wiki/Lagopus#mediaviewer/File:Rock_Ptarmigan_(Lagopus_Muta).jpg
  • 5. Copyright©2015 NTT corp. All Rights Reserved. What is Lagopus (雷鳥属)? 5
  • 6. Copyright©2015 NTT corp. All Rights Reserved. Birds in ShowNet - 今年はここに居ました. 引用:https://www.facebook.com/interop.shownet
  • 7. Copyright©2015 NTT corp. All Rights Reserved. VNF(VirNOS) + Lagopus + FPGA - 処理はFPGA、転送はLagopus - NetFPGA-SUME - IPアドレスからハッシュを計算 - ハッシュ値にもとづいて転送先のVMの目印をSrc MACに書き込む(256種類) - LagopusはSrc MAC値に応じてVMへ転送 7 HV VNF VNF VNF lagopus lagopus uplink downlink hash計算と MACへの埋 め込み MACにもとづいて VMへ送信(staticな flow entry)
  • 8. Copyright©2015 NTT corp. All Rights Reserved. 今回接続したVNF • VirNOS • IP infusion のコントリビュート • vRouter/vCPE solutionのVNF • DPDKが利用可能. • High performanceモードとTinyモード等の動作モード • 今回はTinyモードのVirNOSをDPDKでLagopusと接続 8
  • 9. Copyright©2015 NTT corp. All Rights Reserved. 9
  • 10. Copyright©2015 NTT corp. All Rights Reserved. Challenges - ホストのLagopus(DPDK)とゲストのVirnos(DPDK)の接続 - 多ポート設定と負荷分散(ShowNetでは8台に分散.ポート数は計18) 10 HV VirNOS VirNOS VirNOS VirNOS lagopus lagopus port2 port4 port6 port8 port10 port9port7port5port3 port1 Eth0 Eth1 Eth0 Eth1 Eth0 Eth1 Eth0 Eth1
  • 11. Copyright©2015 NTT corp. All Rights Reserved. Agenda - Lagopus? - Birds in ShowNet - FPGA + Lagopus + VNF - Lagopus設定のポイント - コアアサイン - Flow設計 - 簡易性能評価
  • 12. Copyright©2015 NTT corp. All Rights Reserved. 設定のポイント: コアアサイン - NUMAを意識したLagopusとVNFでコアアサインを設計する. - パケット・処理の流れを考える NIC CPU CPUMemory Memory NIC NICNIC QPI PCI-Exp PCI-Exp Reference: supermicro X9DAi
  • 13. Copyright©2015 NTT corp. All Rights Reserved. 設定のポイント: コアアサイン(LagopusとVNF) - NUMAを意識したLagopusとVNFでコアアサインを設計する. - パケット・処理の流れを考える メモリ メモリ NIC core core core core core core core core core core core core core core core core CPU0 CPU1 トラフィック
  • 14. Copyright©2015 NTT corp. All Rights Reserved. 設定のポイント: コアアサイン(LagopusとVNF) - NUMAを意識したLagopusとVNFでコアアサインを設計する. - パケット・処理の流れを考える メモリ メモリ NIC core core core core core core core core core core core core core core core core CPU0 CPU1 トラフィック Lagopus VirNOS (tiny mode) × 8
  • 15. Copyright©2015 NTT corp. All Rights Reserved. 設定のポイント: コアアサイン(LagopusとVNF) - NUMAを意識したLagopusとVNFでコアアサインを設計する. - パケット・処理の流れを考える メモリ メモリ NIC core core core core core core core core core core core core core core core core CPU0 CPU1 トラフィック Lagopus VirNOS (tiny mode) × 8
  • 16. Copyright©2015 NTT corp. All Rights Reserved. 設定のポイント: コアアサイン(LagopusとVNF) - コアアサインを間違えると性能は半減する - 横須賀で測定を実施.1500byte, Lagopusはデフォルトのコアアサイン 18 メモリ メモリ NIC core core core core core core core core core core core core core core core core CPU0 CPU1 トラフィック LagopusVNF × 8 メモリ メモリ NIC core core core core core core core core core core core core core core core core CPU0 CPU1 トラフィック Lagopus VNF × 8約4.4Gbps 約10Gbps 2倍以上の差
  • 17. Copyright©2015 NTT corp. All Rights Reserved. HV VirNOS VirNOS VirNOS VirNOS lagopus lagopus port2 port4 port6 port8 port10 port9port7port5port3 port1 Eth0 Eth1 Eth0 Eth1 Eth0 Eth1 Eth0 Eth1 設定のポイント: コアアサイン(LagopusのI/O) - Pollingでパケットの監視,転送を行うため,ポートが増えるほど性能が落ちる. - 今回のアーキテクチャでは物理NICへのトラフィックの偏りが顕著 19 10/4 Gbps 10Gbps
  • 18. Copyright©2015 NTT corp. All Rights Reserved. HV VirNOS VirNOS VirNOS VirNOS lagopus lagopus port2 port4 port6 port8 port10 port9port7port5port3 port1 Eth0 Eth1 Eth0 Eth1 Eth0 Eth1 Eth0 Eth1 設定のポイント: コアアサイン(LagopusのI/O) - トラフィックの偏りを考慮したコアアサインを行う - ShowNetでは4コアをI/Oに利用.下図の様に割り当てた 20 10Gbps 10Gbps 5Gbps 5Gbps
  • 19. Copyright©2015 NTT corp. All Rights Reserved. Lagopus設定のポイント(フロールール) - 256種類のsrc MACをマッチする必要がある.uplinkとdownlinkがあるため, srcMACのExact matchのルールが512種類必要. - Hash値は下位1byteに埋め込まれ,平等に分散されていることが期待できる ので,Maskを用いて下位3bitだけ見るルールに変更することができる.すると ルール数は16種類に削減できる. 21 in_port dl_src action 1 52:54:00:00:00:01 1 1 52:54:00:00:00:02 2 … … … in_port dl_src action 1 **:**:**:**:**:*0 1 1 **:**:**:**:**:*1 2 … … …
  • 20. Copyright©2015 NTT corp. All Rights Reserved. 性能評価(参考情報) - いろいろな機器を通っているため,参考情報です. - トラフィックのボトルネックがLagopusであることは確認済 - 東京テクニカさんにご協力頂きました 22
  • 21. Copyright©2015 NTT corp. All Rights Reserved. 性能評価(参考情報) - テスターの値をグラフ化. - Lagopusには物理->VNFとVNF ->物理NICでトラフィックが2倍かかっている 23 [byte] [Mbps] 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 0 200 400 600 800 1000 1200 1400 wire rate lagopus パケットサイズ トラフィック量
  • 22. Copyright©2015 NTT corp. All Rights Reserved. デモ 24 ごめんなさい, いろんな時間が足りなかったのでありません><
  • 23. Copyright©2015 NTT corp. All Rights Reserved. 達成できなかったデモ 25 Lagopus ShowNet FPGA Emulator NIC port portportportport VNF VNF VNF VNF
  • 24. Copyright©2015 NTT corp. All Rights Reserved. Ansible playbook - v0.2.4から旧playbookが使えなくなっていたのでいろいろ更新 - 突貫で作ったコードなので,とりあえずfork先しか更新しておりません - fork先: https://github.com/hibitomo/lagopus-tools - ついでに機能が追加されています - 新機能 - DSLの自動生成 - 実行スクリプト自動生成 (vhost, pcap, pipeのvdevにも対応) - 新ansibleサンプル - Lagopus - VMを接続するサンプル(qemuの起動スクリプトも生成)
  • 25. Copyright©2015 NTT corp. All Rights Reserved. Lagopus slack - Facebookに「Lagopus Users Community」というグループがあります! 28
  • 26. Copyright©2015 NTT corp. All Rights Reserved. 時間があれば 29
  • 27. Copyright©2015 NTT corp. All Rights Reserved. Agenda - Bird in ShowNet - FPGA + Lagopus + VNF - Lagopus設定のポイント - コアアサイン - Flow設計 - 簡易性能評価 - 副産物 lagopus-tools - ansible - lago-dsl - lago-mon
  • 28. Copyright©2015 NTT corp. All Rights Reserved. 副産物:lagopus-tools • 元々はインターン生に作らせたAnsibleとRyuのサンプル置き場 • Lagopusが関連するトラブルがほぼなかったため,待ち時間でツールを作成 • 突貫で作ったコードなので,とりあえずfork先しか更新しておりません • fork先: https://github.com/hibitomo/lagopus-tools ~/lagopus-tools$ ls ansible examples lago-dsl lago-mon LICENSE README.md
  • 29. Copyright©2015 NTT corp. All Rights Reserved. 副産物:ansible - v0.2.4から旧playbookが使えなくなっていた - 今回,最新のLagopus用に更新.ついでに機能追加. - 新機能 - DSLの自動生成 - 実行スクリプト自動生成 (vhost, pcap, pipeのvdevにも対応) - 新ansibleサンプル - Lagopus - VMを接続するサンプル(qemuの起動スクリプトも生成)
  • 30. Copyright©2015 NTT corp. All Rights Reserved. 副産物:lago-dsl • lagopusのDSLを直接叩くスクリプト. • デバッグ用途以外の使用は推奨しない. • 直接,flow,interface等の編集をすることができる. • 実行 $ ./lago-dsl.py [lagopus DSL] $ ./lago-dsl.py < [lagopus DSL file]
  • 31. Copyright©2015 NTT corp. All Rights Reserved. 副産物:lago-mon - Lagopus用モニタリングツール - 動作確認の為に`lagosh -c show xxx` を連打してカウン タの差分を目grepするのは辛い. - logを取る為に`lagosh -c show xxx`を定期的に実行して, 整形済みjsonを一行に戻すのは手間. - 16 x 16ドットのロゴ - プロトタイプのファイル名がlagomon.pyだった.作るしか 無いと思った.後悔はしていない. ラゴモン(成長期)
  • 32. Copyright©2015 NTT corp. All Rights Reserved. 副産物:lago-mon - Lagopus用モニタリングツール - 動作確認の為に`lagosh -c show xxx` を連打してカウン タの差分を目grepするのは辛い. - logを取る為に`lagosh -c show xxx`を定期的に実行して, 整形済みjsonを一行に戻すのは手間. - 16 x 16ドットのロゴ - プロトタイプのファイル名がlagomon.pyだった.作るしか 無いと思った.後悔はしていない. - AA版もあります.( 15 x 36 ) ######## ## ;;;; ## ## #### ## #### ## ## ## #### ##### ######## ## ############## ## ## ### ######## ## ## #### ## ## ## #### ## #### ## ## ## ## ## ###### #### #### #### #### ########## #################### mmmm ## ########## ラゴモン(成長期)
  • 33. Copyright©2015 NTT corp. All Rights Reserved. 副産物:lago-mon/ifstats-monitor.py - 実行(指定間隔でJSONを出力するだけ) - 出力例 {"timestamp": "2016-06-08T14:13:04.253669", "interfaces": {"interface1": {"name": "interface1", "rx-dropped": 0, "tx-errors": 0, "rx-bytes": 0, "tx-packets": 0, "rx-packets": 0, "tx-bytes": 0, "rx-errors": 0, "tx-dropped": 0}, "interface0": {"name": "interface0", "rx-dropped": 0, "tx-errors": 0, "rx-bytes": 0, "tx-packets": 0, "rx-packets": 0, "tx- bytes": 0, "rx-errors": 0, "tx-dropped": 0}}} $ ./ifstats_monitor.py -l 10 間隔 [sec]
  • 34. Copyright©2015 NTT corp. All Rights Reserved. 副産物:lago-mon/ifstats-monitor.py - 実行(moniter.強いリクエストにより,bpsとppsを表示) - 出力例 2016/06/08 14:22:49 +------------+------------------+--------------+------------------+--------------+ | name | rx-bps | rx-pps | tx-bps | tx-pps | +------------+------------------+--------------+------------------+--------------+ | interface0 | 0 | 0 | 0 | 0 | | interface1 | 0 | 0 | 0 | 0 | +------------+------------------+--------------+------------------+--------------+ $ ./ifstats_monitor.py -m 10 更新間隔 [sec]
  • 35. Copyright©2015 NTT corp. All Rights Reserved. 副産物:lago-mon/flowstats-monitor.py - 実行(moniter.同一フローの識別が不可能な為,bps, ppsは無い.) - 出力例 2016/06/08 14:27:45 bridge01, table: 0 +----------+--------+--------------+------------+----------------+--------------------------------------+--------------+--------------+ | priority | cookie | packet_count | byte_count | data | actions | hard_timeout | idle_timeout | +----------+--------+--------------+------------+----------------+--------------------------------------+--------------+--------------+ | 100 | 0 | 0 | 0 | {"in_port": 2} | [{"apply_actions": [{"output": 1}]}] | 0 | 0 | | 100 | 0 | 0 | 0 | {"in_port": 1} | [{"apply_actions": [{"output": 2}]}] | 0 | 0 | +----------+--------+--------------+------------+----------------+--------------------------------------+--------------+--------------+ $ ./flowstats_monitor.py -m 10 更新間隔 [sec]
  • 36. Copyright©2015 NTT corp. All Rights Reserved. 副産物:lago-mon/flowstats-monitor.py - 実行(指定間隔でJSONを出力するだけ) - 出力例 {"timestamp": "2016-06-08T14:25:44.853720", "flows": {"bridge01": {"tables": [{"table": 0, "flows": [{"stats": {"packet_count": 0, "byte_count": 0}, "hard_timeout": 0, "actions": [{"apply_actions": [{"output": 2}]}], "priority": 100, "idle_timeout": 0, "cookie": 0, "in_port": 1}, {"stats": {"packet_count": 0, "byte_count": 0}, "hard_timeout": 0, "actions": [{"apply_actions": [{"output": 1}]}], "priority": 100, "idle_timeout": 0, "cookie": 0, "in_port": 2}]}], "name": "bridge01"}}} $ ./flowstats_monitor.py -l 10 間隔 [sec]
  • 37. Copyright©2015 NTT corp. All Rights Reserved. lago-monを利用したツール連携 40 Lagopus DSL log file Lagopus Server Log/Display Server REST
  • 38. Copyright©2015 NTT corp. All Rights Reserved. lago-monを利用したツール連携 • 出力例(Ryu-certification動作中のログ) 41
  • 39. Copyright©2015 NTT corp. All Rights Reserved. まとめ - Bird in ShowNet - LagopusとDPDKでVMに接続 - LagopusとFPGAでVMにロードバランス - 副産物(lagopus-tools) - ansible - lago-dsl.py - lago-mon
  • 40. Copyright©2015 NTT corp. All Rights Reserved. ご清聴ありがとうございました 43 ######## ## ;;;; ## ## #### ## #### ## ## ## #### ##### ######## ## ############## ## ## ### ######## ## ## #### ## ## ## #### ## #### ## ## ## ## ## ###### #### #### #### #### ########## #################### mmmm ## ##########