SlideShare a Scribd company logo
Copyright©2015 NTT corp. All Rights Reserved.
Bird in ShowNet
SDN/NFV: Lagopus & VNF with Vhost
2016/06/09
hibitomo
1
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.
Bird 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へ転送
4
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と接続
5
Copyright©2015 NTT corp. All Rights Reserved. 6
Copyright©2015 NTT corp. All Rights Reserved.
Challenges
- ホストのLagopus(DPDK)とゲストのVirnos(DPDK)の接続
- 多ポート設定と負荷分散(ShowNetでは8台に分散.ポート数は計18)
7
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
- Bird in ShowNet
- FPGA + Lagopus + VNF
- Lagopus設定のポイント
- コアアサイン
- Flow設計
- 簡易性能評価
- 副産物 lagopus-tools
- ansible
- lago-dsl
- lago-mon
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)
- 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はデフォルトのコアアサイン
19
メモリ
メモリ
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へのトラフィックの偏りが顕著
20
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に利用.下図の様に割り当てた
21
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種類に削減できる.
22
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.
Agenda
- Bird in ShowNet
- FPGA + Lagopus + VNF
- Lagopus設定のポイント
- コアアサイン
- Flow設計
- 簡易性能評価
- 副産物 lagopus-tools
- ansible
- lago-dsl
- lago-mon
Copyright©2015 NTT corp. All Rights Reserved.
性能評価(参考情報)
- いろいろな機器を通っているため,参考情報です.
- トラフィックのボトルネックがLagopusであることは確認済
- 東京テクニカさんにご協力頂きました
24
Copyright©2015 NTT corp. All Rights Reserved.
性能評価(参考情報)
- テスターの値をグラフ化.
- Lagopusには物理->VNFとVNF ->物理NICでトラフィックが2倍かかっている
25
[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.
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
- 実行(指定間隔で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/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.
まとめ
- Bird in ShowNet
- LagopusとDPDKでVMに接続
- LagopusとFPGAでVMにロードバランス
- 副産物(lagopus-tools)
- ansible
- lago-dsl.py
- lago-mon
Copyright©2015 NTT corp. All Rights Reserved.
ご清聴ありがとうございました
37
########
## ;;;; ##
## #### ##
#### ##
## ## ####
##### ######## ##
############## ## ##
### ######## ## ##
#### ## ## ## #### ##
#### ## ## ## ## ##
###### #### ####
#### #### ##########
####################
mmmm ##
##########

More Related Content

What's hot

Vyatta 改造入門
Vyatta 改造入門Vyatta 改造入門
Vyatta 改造入門
Masakazu Asama
 
自動でできるかな?
自動でできるかな?自動でできるかな?
自動でできるかな?_norin_
 
Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続
Tomoya Hibi
 
最近のTremaを触ってみてちょっとはまったこととか
最近のTremaを触ってみてちょっとはまったこととか最近のTremaを触ってみてちょっとはまったこととか
最近のTremaを触ってみてちょっとはまったこととか
M Hagiwara
 
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定シスコシステムズ合同会社
 
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
npsg
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
Yoshihiro Nakajima
 
BMP活用による SDN時代のオーバレイNW監視手法の提案
BMP活用による SDN時代のオーバレイNW監視手法の提案BMP活用による SDN時代のオーバレイNW監視手法の提案
BMP活用による SDN時代のオーバレイNW監視手法の提案
Toshiki Tsuboi
 
ASAMAP 開発秘話
ASAMAP 開発秘話ASAMAP 開発秘話
ASAMAP 開発秘話
Masakazu Asama
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pi
tokudahiroshi
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDK
Tomoya Hibi
 
Lagos running on small factor machine
Lagos running on small factor machineLagos running on small factor machine
Lagos running on small factor machine
Lagopus SDN/OpenFlow switch
 
「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例SAKURA Internet Inc.
 
SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用Toshiki Tsuboi
 
Openvswitch vps 20120429資料
Openvswitch vps 20120429資料Openvswitch vps 20120429資料
Openvswitch vps 20120429資料Daisuke Nakajima
 
さくらのクラウドインフラの紹介
さくらのクラウドインフラの紹介さくらのクラウドインフラの紹介
さくらのクラウドインフラの紹介SAKURA Internet Inc.
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_final
Kazumasa Ikuta
 
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
Toru Makabe
 
Lagopusで試すFW
Lagopusで試すFWLagopusで試すFW
Lagopusで試すFW
Tomoya Hibi
 

What's hot (20)

Vyatta 改造入門
Vyatta 改造入門Vyatta 改造入門
Vyatta 改造入門
 
自動でできるかな?
自動でできるかな?自動でできるかな?
自動でできるかな?
 
Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続
 
最近のTremaを触ってみてちょっとはまったこととか
最近のTremaを触ってみてちょっとはまったこととか最近のTremaを触ってみてちょっとはまったこととか
最近のTremaを触ってみてちょっとはまったこととか
 
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
 
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
 
BMP活用による SDN時代のオーバレイNW監視手法の提案
BMP活用による SDN時代のオーバレイNW監視手法の提案BMP活用による SDN時代のオーバレイNW監視手法の提案
BMP活用による SDN時代のオーバレイNW監視手法の提案
 
ASAMAP 開発秘話
ASAMAP 開発秘話ASAMAP 開発秘話
ASAMAP 開発秘話
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pi
 
Kernel vm-2014-05-25
Kernel vm-2014-05-25Kernel vm-2014-05-25
Kernel vm-2014-05-25
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDK
 
Lagos running on small factor machine
Lagos running on small factor machineLagos running on small factor machine
Lagos running on small factor machine
 
「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例
 
SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用
 
Openvswitch vps 20120429資料
Openvswitch vps 20120429資料Openvswitch vps 20120429資料
Openvswitch vps 20120429資料
 
さくらのクラウドインフラの紹介
さくらのクラウドインフラの紹介さくらのクラウドインフラの紹介
さくらのクラウドインフラの紹介
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_final
 
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
 
Lagopusで試すFW
Lagopusで試すFWLagopusで試すFW
Lagopusで試すFW
 

Viewers also liked

L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)Motonori Shindo
 
Korejanai Story
Korejanai StoryKorejanai Story
Korejanai Story
Kentaro Takeda
 
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
 
Mk state in-programming-01
Mk state in-programming-01Mk state in-programming-01
Mk state in-programming-01
Miya Kohno
 
FlexPod Day 2016 - Cisco session (Publish edition)
FlexPod Day 2016 - Cisco session (Publish edition)FlexPod Day 2016 - Cisco session (Publish edition)
FlexPod Day 2016 - Cisco session (Publish edition)
Takao Setaka
 
Tokyo meetup 20160224
Tokyo meetup 20160224Tokyo meetup 20160224
Tokyo meetup 20160224
Takao Setaka
 
OpenStack Congress and Datalog (English)
OpenStack Congress and Datalog (English)OpenStack Congress and Datalog (English)
OpenStack Congress and Datalog (English)
Motonori Shindo
 
中国にOpenflowを入れてきた話
中国にOpenflowを入れてきた話中国にOpenflowを入れてきた話
中国にOpenflowを入れてきた話
cloretsblack
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
 
Node最新トピックス
Node最新トピックスNode最新トピックス
Node最新トピックス
shigeki_ohtsu
 
OpenStack Congress and Datalog (Japanese)
OpenStack Congress and Datalog (Japanese)OpenStack Congress and Datalog (Japanese)
OpenStack Congress and Datalog (Japanese)
Motonori Shindo
 
10分で作るクラスライブラリ
10分で作るクラスライブラリ10分で作るクラスライブラリ
10分で作るクラスライブラリ
_norin_
 
IoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトークIoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトーク
Tomoya Hibi
 
HTTP/2, QUIC入門
HTTP/2, QUIC入門HTTP/2, QUIC入門
HTTP/2, QUIC入門
shigeki_ohtsu
 
【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...
【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...
【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...
シスコシステムズ合同会社
 
Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?
J-Stream Inc.
 
ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話
zaki4649
 
とある診断員とAWS
とある診断員とAWSとある診断員とAWS
とある診断員とAWS
zaki4649
 

Viewers also liked (20)

L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)
 
Korejanai Story
Korejanai StoryKorejanai Story
Korejanai Story
 
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
 
Mk state in-programming-01
Mk state in-programming-01Mk state in-programming-01
Mk state in-programming-01
 
FlexPod Day 2016 - Cisco session (Publish edition)
FlexPod Day 2016 - Cisco session (Publish edition)FlexPod Day 2016 - Cisco session (Publish edition)
FlexPod Day 2016 - Cisco session (Publish edition)
 
Tokyo meetup 20160224
Tokyo meetup 20160224Tokyo meetup 20160224
Tokyo meetup 20160224
 
OpenStack Congress and Datalog (English)
OpenStack Congress and Datalog (English)OpenStack Congress and Datalog (English)
OpenStack Congress and Datalog (English)
 
中国にOpenflowを入れてきた話
中国にOpenflowを入れてきた話中国にOpenflowを入れてきた話
中国にOpenflowを入れてきた話
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
Node最新トピックス
Node最新トピックスNode最新トピックス
Node最新トピックス
 
Loom openflow controller in 10 min
Loom openflow controller in 10 minLoom openflow controller in 10 min
Loom openflow controller in 10 min
 
OpenStack Congress and Datalog (Japanese)
OpenStack Congress and Datalog (Japanese)OpenStack Congress and Datalog (Japanese)
OpenStack Congress and Datalog (Japanese)
 
10分で作るクラスライブラリ
10分で作るクラスライブラリ10分で作るクラスライブラリ
10分で作るクラスライブラリ
 
IoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトークIoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトーク
 
HTTP/2, QUIC入門
HTTP/2, QUIC入門HTTP/2, QUIC入門
HTTP/2, QUIC入門
 
【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...
【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...
【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...
 
Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?
 
ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話
 
とある診断員とAWS
とある診断員とAWSとある診断員とAWS
とある診断員とAWS
 

Similar to Bird in show_net

IPv6の現状
IPv6の現状IPv6の現状
IPv6の現状
Shinsuke SUZUKI
 
Ansible npstudy-shtsuchi
Ansible npstudy-shtsuchiAnsible npstudy-shtsuchi
Ansible npstudy-shtsuchi
Shishio Tsuchiya
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hw
ykuga
 
osoljp 2011.08
osoljp 2011.08osoljp 2011.08
osoljp 2011.08
@ otsuka752
 
NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定
Kan Itani
 
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
RapidRadioJP
 
Trema day 1
Trema day 1Trema day 1
Trema day 1
ykuga
 
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
Juniper Networks (日本)
 
製品コンフィグレーションガイド
製品コンフィグレーションガイド製品コンフィグレーションガイド
製品コンフィグレーションガイド
エクストリーム ネットワークス / Extreme Networks Japan
 
Nsegソフトウェアルータvyatta
NsegソフトウェアルータvyattaNsegソフトウェアルータvyatta
Nsegソフトウェアルータvyattajem 3
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
Hirofumi Ichihara
 
Segment Routing @ SDN Japan 2013
Segment Routing @ SDN Japan 2013Segment Routing @ SDN Japan 2013
Segment Routing @ SDN Japan 2013
Miya Kohno
 
JOSUG 9th Study
JOSUG 9th StudyJOSUG 9th Study
JOSUG 9th Studyirix_jp
 
Wiresharkで検出できないチャットプログラム
Wiresharkで検出できないチャットプログラムWiresharkで検出できないチャットプログラム
Wiresharkで検出できないチャットプログラム
Shinichi Hirauchi
 
HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングKiwamu Okabe
 
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
Kenichiro MATOHARA
 
Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302
Takehiro Kudou
 
Redunduncy of NAT instance on AWS/VPC
Redunduncy of NAT instance on AWS/VPCRedunduncy of NAT instance on AWS/VPC
Redunduncy of NAT instance on AWS/VPCMasaaki HIROSE
 
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
Masanobu Saitoh
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
 

Similar to Bird in show_net (20)

IPv6の現状
IPv6の現状IPv6の現状
IPv6の現状
 
Ansible npstudy-shtsuchi
Ansible npstudy-shtsuchiAnsible npstudy-shtsuchi
Ansible npstudy-shtsuchi
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hw
 
osoljp 2011.08
osoljp 2011.08osoljp 2011.08
osoljp 2011.08
 
NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定
 
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
 
Trema day 1
Trema day 1Trema day 1
Trema day 1
 
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
【Interop Tokyo 2016】 ギガビット・ファイアウォールは、もう古い。時代は、テラビット・ファイアウォールへ
 
製品コンフィグレーションガイド
製品コンフィグレーションガイド製品コンフィグレーションガイド
製品コンフィグレーションガイド
 
Nsegソフトウェアルータvyatta
NsegソフトウェアルータvyattaNsegソフトウェアルータvyatta
Nsegソフトウェアルータvyatta
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
Segment Routing @ SDN Japan 2013
Segment Routing @ SDN Japan 2013Segment Routing @ SDN Japan 2013
Segment Routing @ SDN Japan 2013
 
JOSUG 9th Study
JOSUG 9th StudyJOSUG 9th Study
JOSUG 9th Study
 
Wiresharkで検出できないチャットプログラム
Wiresharkで検出できないチャットプログラムWiresharkで検出できないチャットプログラム
Wiresharkで検出できないチャットプログラム
 
HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミング
 
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
 
Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302
 
Redunduncy of NAT instance on AWS/VPC
Redunduncy of NAT instance on AWS/VPCRedunduncy of NAT instance on AWS/VPC
Redunduncy of NAT instance on AWS/VPC
 
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 

More from Tomoya Hibi

Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1
Tomoya Hibi
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
Tomoya Hibi
 
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
 
[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
 
Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224
Tomoya Hibi
 
Lagopus Router
Lagopus RouterLagopus Router
Lagopus Router
Tomoya Hibi
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
Tomoya Hibi
 

More from Tomoya Hibi (7)

Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
 
NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07
 
[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...
 
Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224
 
Lagopus Router
Lagopus RouterLagopus Router
Lagopus Router
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
 

Bird in show_net

  • 1. Copyright©2015 NTT corp. All Rights Reserved. Bird in ShowNet SDN/NFV: Lagopus & VNF with Vhost 2016/06/09 hibitomo 1
  • 2. Copyright©2015 NTT corp. All Rights Reserved. Agenda - Bird in ShowNet - FPGA + Lagopus + VNF - Lagopus設定のポイント - コアアサイン - Flow設計 - 簡易性能評価 - 副産物 lagopus-tools - ansible - lago-dsl - lago-mon
  • 3. Copyright©2015 NTT corp. All Rights Reserved. Bird in ShowNet - 今年はここに居ました. 引用:https://www.facebook.com/interop.shownet
  • 4. Copyright©2015 NTT corp. All Rights Reserved. VNF(VirNOS) + Lagopus + FPGA - 処理はFPGA、転送はLagopus - NetFPGA-SUME - IPアドレスからハッシュを計算 - ハッシュ値にもとづいて転送先のVMの目印をSrc MACに書き込む(256種類) - LagopusはSrc MAC値に応じてVMへ転送 4 HV VNF VNF VNF lagopus lagopus uplink downlink hash計算と MACへの埋 め込み MACにもとづいて VMへ送信(staticな flow entry)
  • 5. Copyright©2015 NTT corp. All Rights Reserved. 今回接続したVNF • VirNOS • IP infusion のコントリビュート • vRouter/vCPE solutionのVNF • DPDKが利用可能. • High performanceモードとTinyモード等の動作モード • 今回はTinyモードのVirNOSをDPDKでLagopusと接続 5
  • 6. Copyright©2015 NTT corp. All Rights Reserved. 6
  • 7. Copyright©2015 NTT corp. All Rights Reserved. Challenges - ホストのLagopus(DPDK)とゲストのVirnos(DPDK)の接続 - 多ポート設定と負荷分散(ShowNetでは8台に分散.ポート数は計18) 7 HV VirNOS VirNOS VirNOS VirNOS lagopus lagopus port2 port4 port6 port8 port10 port9port7port5port3 port1 Eth0 Eth1 Eth0 Eth1 Eth0 Eth1 Eth0 Eth1
  • 8. Copyright©2015 NTT corp. All Rights Reserved. Agenda - Bird in ShowNet - FPGA + Lagopus + VNF - Lagopus設定のポイント - コアアサイン - Flow設計 - 簡易性能評価 - 副産物 lagopus-tools - ansible - lago-dsl - lago-mon
  • 9. Copyright©2015 NTT corp. All Rights Reserved. 設定のポイント: コアアサイン - NUMAを意識したLagopusとVNFでコアアサインを設計する. - パケット・処理の流れを考える NIC CPU CPUMemory Memory NIC NICNIC QPI PCI-Exp PCI-Exp Reference: supermicro X9DAi
  • 10. 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 トラフィック
  • 11. 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
  • 12. 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
  • 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 トラフィック Lagopus VirNOS (tiny mode) × 8
  • 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) - コアアサインを間違えると性能は半減する - 横須賀で測定を実施.1500byte, Lagopusはデフォルトのコアアサイン 19 メモリ メモリ 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倍以上の差
  • 16. 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へのトラフィックの偏りが顕著 20 10/4 Gbps 10Gbps
  • 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) - トラフィックの偏りを考慮したコアアサインを行う - ShowNetでは4コアをI/Oに利用.下図の様に割り当てた 21 10Gbps 10Gbps 5Gbps 5Gbps
  • 18. Copyright©2015 NTT corp. All Rights Reserved. Lagopus設定のポイント(フロールール) - 256種類のsrc MACをマッチする必要がある.uplinkとdownlinkがあるため, srcMACのExact matchのルールが512種類必要. - Hash値は下位1byteに埋め込まれ,平等に分散されていることが期待できる ので,Maskを用いて下位3bitだけ見るルールに変更することができる.すると ルール数は16種類に削減できる. 22 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 … … …
  • 19. Copyright©2015 NTT corp. All Rights Reserved. Agenda - Bird in ShowNet - FPGA + Lagopus + VNF - Lagopus設定のポイント - コアアサイン - Flow設計 - 簡易性能評価 - 副産物 lagopus-tools - ansible - lago-dsl - lago-mon
  • 20. Copyright©2015 NTT corp. All Rights Reserved. 性能評価(参考情報) - いろいろな機器を通っているため,参考情報です. - トラフィックのボトルネックがLagopusであることは確認済 - 東京テクニカさんにご協力頂きました 24
  • 21. Copyright©2015 NTT corp. All Rights Reserved. 性能評価(参考情報) - テスターの値をグラフ化. - Lagopusには物理->VNFとVNF ->物理NICでトラフィックが2倍かかっている 25 [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. Agenda - Bird in ShowNet - FPGA + Lagopus + VNF - Lagopus設定のポイント - コアアサイン - Flow設計 - 簡易性能評価 - 副産物 lagopus-tools - ansible - lago-dsl - lago-mon
  • 23. 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
  • 24. Copyright©2015 NTT corp. All Rights Reserved. 副産物:ansible - v0.2.4から旧playbookが使えなくなっていた - 今回,最新のLagopus用に更新.ついでに機能追加. - 新機能 - DSLの自動生成 - 実行スクリプト自動生成 (vhost, pcap, pipeのvdevにも対応) - 新ansibleサンプル - Lagopus - VMを接続するサンプル(qemuの起動スクリプトも生成)
  • 25. Copyright©2015 NTT corp. All Rights Reserved. 副産物:lago-dsl • lagopusのDSLを直接叩くスクリプト. • デバッグ用途以外の使用は推奨しない. • 直接,flow,interface等の編集をすることができる. • 実行 $ ./lago-dsl.py [lagopus DSL] $ ./lago-dsl.py < [lagopus DSL file]
  • 26. 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だった.作るしか 無いと思った.後悔はしていない. ラゴモン(成長期)
  • 27. 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 ## ########## ラゴモン(成長期)
  • 28. 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]
  • 29. 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]
  • 30. 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]
  • 31. 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]
  • 32. Copyright©2015 NTT corp. All Rights Reserved. まとめ - Bird in ShowNet - LagopusとDPDKでVMに接続 - LagopusとFPGAでVMにロードバランス - 副産物(lagopus-tools) - ansible - lago-dsl.py - lago-mon
  • 33. Copyright©2015 NTT corp. All Rights Reserved. ご清聴ありがとうございました 37 ######## ## ;;;; ## ## #### ## #### ## ## ## #### ##### ######## ## ############## ## ## ### ######## ## ## #### ## ## ## #### ## #### ## ## ## ## ## ###### #### #### #### #### ########## #################### mmmm ## ##########