SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
0Copyright©2016 NTT corp. All Rights Reserved.
Lagopus + Docker のDPDK接続
2017/02/15
@hibitomo
@falcon8823
0
1Copyright©2016 NTT corp. All Rights Reserved.
今日伝えたいこと
すごーい!LagopusはdockerとDPDKで接続できるス
イッチなんだね! #npstudy
2Copyright©2016 NTT corp. All Rights Reserved.
 Lagopus-0.2
 DPDKによる仮想環境との接続
 Lagopus + docker のDPDK接続
 新Lagopus
Agenda
3Copyright©2016 NTT corp. All Rights Reserved.
Lagopus
OpenFlowスイッチのソフトウェア実装
汎用x86サーバで動作可能
OSSとして公開 (2014年1月 0.1.x 公開, 2015年8月 0.2.x 公開)
高速なパケット処理と幅広いプロトコルに対応
> 10Gbps
OpenFlow1.3+tunneling
OpenFlow コントローラ
コントロールプレーン
OpenFlow
プロトコル
OpenFlow スイッチ
データプレーン
Flow Table
フローパターン アクション
フローパターン アクション カウンター
カウンター
Flow
Table
#2
Flow
Table
#3
Flow
Table
#4
4Copyright©2016 NTT corp. All Rights Reserved.
 0.2.5 Apr 6, 2016
 GTP-U tunnel support, some bug fixes
 0.2.6 May 2, 2016
 performance improvement, but DPDK ixgbe vector enabled, much slow
 0.2.7 May 18, 2016
 DPDK vector disabled again
 0.2.8 July 12, 2016
 build and tests on Ubuntu 16.04LTS
 deprecated -p parameter
• ignored if specified
 it works as L2 and/or L3 Hybrid switch
 0.2.9 Aug 26, 2016
 DPDK 16.07
 0.2.10 Dec 20, 2016
 DPDK 16.11
最近のリリース
action: NORMAL対応
L2/L3 Hybrid switch
Tunnel対応
5Copyright©2016 NTT corp. All Rights Reserved.
性能評価
 単純なポートフォワードを実施した場合のスループットを測定
CPU
E5-2697v2
2.70GHz
NIC Intel X520
メモリ 64GB OS Ubuntu 14.04LTS
CPU
E5-2667v3
3.20GHz
NIC Intel XL710
メモリ 64GB OS Ubuntu 14.04LTS
 10GbE
 測定環境
 測定結果
 40GbE
 測定環境
 測定結果
6.66
8.65
9.28 9.49 9.63 9.77 9.83 9.85 9.86
0
1
2
3
4
5
6
7
8
9
10
0 200 400 600 800 1000 1200 1400
Throughput(Gbps)
Packet size (byte)
Lagopus
Wire-rate
7.7
15.5
26.5
34.2
39.2 39.5
0
5
10
15
20
25
30
35
40
0 200 400 600 800 1000 1200 1400
Throughput(Gbps)
Packet size (byte)
Lagopus
Wire-rate
6Copyright©2016 NTT corp. All Rights Reserved.
 Lagopus-0.2
 DPDKによる仮想環境との接続
 Lagopus + docker のDPDK接続
 新Lagopus
Agenda
7Copyright©2016 NTT corp. All Rights Reserved.
 Interop Shownet 2016
 vhost-user PMD による仮想マシンとのDPDK接続
DPDKによる仮想環境との接続(VM)
HV VNF VNF VNF
lagopus
lagopus
uplink
downlink
hash計算と
MACへの
埋め込み
MACにもとづいて
VMへ送信(staticな
flow entry)
8Copyright©2016 NTT corp. All Rights Reserved.
 vhost-user PMD
DPDKによる仮想環境との接続(VM)
引用: http://events.linuxfoundation.org/sites/events/files/slides/Scalable%20high-
performance%20userland%20container%20networking%20for%20NFV.pdf
9Copyright©2016 NTT corp. All Rights Reserved.
 SR-IOV or virtio-user
DPDKによる仮想環境との接続(コンテナ)
引用: http://dpdk.org/doc/guides/howto/virtio_user_for_container_networking.html#figure-use-
models-for-running-dpdk-in-containers
10Copyright©2016 NTT corp. All Rights Reserved.
DPDKによる仮想環境との接続(コンテナ)
引用: http://dpdk.org/doc/guides/howto/virtio_user_for_container_networking.html#figure-use-
models-for-running-dpdk-in-containers
 virtio-user
11Copyright©2016 NTT corp. All Rights Reserved.
 lagopus/doc/how-to-use-virtio-user.md
 https://github.com/lagopus/lagopus/pull/106/files
 DPDK HowTo Guides
 http://dpdk.org/doc/guides/howto/virtio_user_for_container_network
ing.html#figure-use-models-for-running-dpdk-in-containers
 Scalable High-Performance User Space Interface/Stack for
Containers in NFV - Jianfeng Tan & Zhihong Wang, Intel
 http://events.linuxfoundation.org/sites/events/files/slides/Scalable%2
0high-
performance%20userland%20container%20networking%20for%20NF
V.pdf
参考資料
12Copyright©2016 NTT corp. All Rights Reserved.
 Lagopus-0.2
 DPDKによる仮想環境との接続
 Lagopus + docker のDPDK接続
 新Lagopus
Agenda
13Copyright©2016 NTT corp. All Rights Reserved.
接続例
Lagopus
Server
Container
Testpmd
14Copyright©2016 NTT corp. All Rights Reserved.
 Docker, Lagopusのインストール
 省略
 Hugepagesの設定
 省略.hugepagesizeは 1G 必須.
 hugetlbfsのマウント
 /etc/fstabを編集
 ホスト用,各コンテナ用それぞれでマウントする
手順(準備)
# for host
none /mnt/huge hugetlbfs pagesize=1G,size=4G 0 0
# for container
none /mnt/huge_c0 hugetlbfs pagesize=1G,size=1G 0 0
15Copyright©2016 NTT corp. All Rights Reserved.
 Dockerイメージ
 testpmdのdockerイメージ
 Lagopusの設定
 Interfaceを仮想マシン接続時と同じく,vhost-userで用意する.
 参考:http://www.slideshare.net/tomoyahibi/lagopusl3-lagopus
手順(Docker,Lagopus)
channel channel01 create -dst-addr 127.0.0.1 -protocol tcp
controller controller01 create -channel channel01 -role equal -connection-type main
interface interface01 create -type ethernet-dpdk-phy -device eth_vhost0,iface=/tmp/dpdk/sock0
interface interface02 create -type ethernet-dpdk-phy -device eth_vhost1,iface=/tmp/dpdk/sock1
port port01 create -interface interface01
port port02 create -interface interface02
bridge bridge01 create -controller controller01 -port port01 1 -port port02 2 -dpid 0x1
bridge bridge01 enable
flow bridge01 add in_port=1 apply_actions=output:2
flow bridge01 add in_port=2 apply_actions=output:1
16Copyright©2016 NTT corp. All Rights Reserved.
 Lagopusの起動
 Dockerの起動
手順(起動)
$ sudo lagopus -d -- -c 0xc -n 2 -m 1024 --
$ docker run -it --rm -v /mnt/huge_c0:/mnt/huge_c0 -v /tmp/dpdk:/tmp/dpdk dpdk-docker
testpmd --no-pci --vdev=virtio_user0,path=/tmp/dpdk/sock0 --
vdev=virtio_user1,path=/tmp/dpdk/sock1 -c 0x3 -n 2 -m 1024 -- --disable-hw-vlan-filter -i
17Copyright©2016 NTT corp. All Rights Reserved.
 virtio-userをつかめるのはDPDKアプリのみ
 コンテナで使うHugepagesは8ページ以下しか使えない
 CPUを複数ソケットもつ場合,Dockerで使用するノードを明示的に
指定する必要がある
ポイント
18Copyright©2016 NTT corp. All Rights Reserved.
 パケットの流れ
 pktgen -> 物理 -> vswitch -> Container(L2Fwd) -> vswitch -> 物理 -> pktgen
性能評価
Lagopus or docker0
Server
Container
L2Fwd or Linux Bridge
Container
pktgen-dpdk
OS: Ubuntu 16.04.1
CPU: Xeon E5-2697 v2 @ 2.70GHz
メモリ: 64GB
19Copyright©2016 NTT corp. All Rights Reserved.
性能評価
20Copyright©2016 NTT corp. All Rights Reserved.
 Lagopus-0.2
 DPDKによる仮想環境との接続
 Lagopus + docker のDPDK接続
 新Lagopus
Agenda
21Copyright©2016 NTT corp. All Rights Reserved.
 Lagopus Switch から Lagopus Routerに
 OpenFlow Switchで開発した柔軟なフロー検索と処理に加え,様々なネット
ワーク制御系アプリやオーケストレーションと連携可能とする
• ルータの備える標準的なプロトコル制御機能
• オーバーレイネットワークを実現するVxLANやGRE
• 暗号化(IPsec)の終端機能
新Lagopus
22Copyright©2016 NTT corp. All Rights Reserved.
 パケット処理部,構成情報管理機構,プロ
トコルエージェントを疎結合で接続
 プロトコル処理制御用のAPIをプロトコル毎
に提供
 詳細は公開中
 http://www.lagopus.org/lagopus2-design-
book/ja/
Lagopus Router アーキテクチャ
23Copyright©2016 NTT corp. All Rights Reserved.
 BGP Router
Usecase
 IPsec Router
24Copyright©2016 NTT corp. All Rights Reserved.
 Lagopus
 https://lagopus.org
 Github
 https://github.com/lagopus/lagopus
 Lagopus books (英語)
 http://www.lagopus.org/lagopus-book/en/html/
 Mailing list (英語,開発者向け)
 https://lists.sourceforge.net/lists/listinfo/lagopus-devel
 Slack
 https://lagopus-project-slack.herokuapp.com/
参考
25Copyright©2016 NTT corp. All Rights Reserved.
まとめ
すごーい!LagopusはdockerとDPDKで接続できる
ルータになるんだね! #npstudy
26Copyright©2016 NTT corp. All Rights Reserved.
ご清聴ありがとうございました
26
########
## ;;;; ##
## #### ##
#### ##
## ## ####
##### ######## ##
############## ## ##
### ######## ## ##
#### ## ## ## #### ##
#### ## ## ## ## ##
###### #### ####
#### #### ##########
####################
mmmm ##
##########

Más contenido relacionado

La actualidad más candente

FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始めtetsusat
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理Takuya ASADA
 
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)Kentaro Ebisawa
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向Yuya Rin
 
ホワイトボックス・スイッチの期待と現実
ホワイトボックス・スイッチの期待と現実ホワイトボックス・スイッチの期待と現実
ホワイトボックス・スイッチの期待と現実IIJ
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能Kohei Tokunaga
 
3GPP TS 38.300-100まとめ
3GPP TS 38.300-100まとめ3GPP TS 38.300-100まとめ
3GPP TS 38.300-100まとめTetsuya Hasegawa
 
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月VirtualTech Japan Inc.
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化Kumazaki Hiroki
 
OpenStack with SR-IOV
OpenStack with SR-IOVOpenStack with SR-IOV
OpenStack with SR-IOVHideki Saito
 
大規模DCのネットワークデザイン
大規模DCのネットワークデザイン大規模DCのネットワークデザイン
大規模DCのネットワークデザインMasayuki Kobayashi
 
Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話Akira Nakagawa
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例kazuhcurry
 
CRDT in 15 minutes
CRDT in 15 minutesCRDT in 15 minutes
CRDT in 15 minutesShingo Omura
 
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコシステムズ合同会社
 

La actualidad más candente (20)

FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
 
initramfsについて
initramfsについてinitramfsについて
initramfsについて
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
 
YJTC18 A-1 データセンタネットワークの取り組み
YJTC18 A-1 データセンタネットワークの取り組みYJTC18 A-1 データセンタネットワークの取り組み
YJTC18 A-1 データセンタネットワークの取り組み
 
SRv6 study
SRv6 studySRv6 study
SRv6 study
 
ホワイトボックス・スイッチの期待と現実
ホワイトボックス・スイッチの期待と現実ホワイトボックス・スイッチの期待と現実
ホワイトボックス・スイッチの期待と現実
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
 
3GPP TS 38.300-100まとめ
3GPP TS 38.300-100まとめ3GPP TS 38.300-100まとめ
3GPP TS 38.300-100まとめ
 
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 
OpenStack with SR-IOV
OpenStack with SR-IOVOpenStack with SR-IOV
OpenStack with SR-IOV
 
大規模DCのネットワークデザイン
大規模DCのネットワークデザイン大規模DCのネットワークデザイン
大規模DCのネットワークデザイン
 
Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例
 
CRDT in 15 minutes
CRDT in 15 minutesCRDT in 15 minutes
CRDT in 15 minutes
 
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
 
RFC5996(IKEv2)第2版
RFC5996(IKEv2)第2版RFC5996(IKEv2)第2版
RFC5996(IKEv2)第2版
 

Destacado

CDP Indicator
CDP IndicatorCDP Indicator
CDP Indicatornpsg
 
API イントロダクション APIC-EM, Prime Infrastructure & CMX
API イントロダクション APIC-EM, Prime Infrastructure & CMXAPI イントロダクション APIC-EM, Prime Infrastructure & CMX
API イントロダクション APIC-EM, Prime Infrastructure & CMXnpsg
 
ネットワークプログラマビリティ勉強会
ネットワークプログラマビリティ勉強会ネットワークプログラマビリティ勉強会
ネットワークプログラマビリティ勉強会Tomoya Hibi
 
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSnpsg
 
ネットワークプログラマビリティ勉強会 これまでのおさらい
ネットワークプログラマビリティ勉強会 これまでのおさらいネットワークプログラマビリティ勉強会 これまでのおさらい
ネットワークプログラマビリティ勉強会 これまでのおさらいnpsg
 
物理ネットワーク受け入れテストの自動化を考える
物理ネットワーク受け入れテストの自動化を考える物理ネットワーク受け入れテストの自動化を考える
物理ネットワーク受け入れテストの自動化を考えるskipping classes
 
いんふらフレンズ
いんふらフレンズいんふらフレンズ
いんふらフレンズMiho Yamamoto
 
Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析npsg
 
自動化と画面を考えてみました
自動化と画面を考えてみました自動化と画面を考えてみました
自動化と画面を考えてみましたskipping classes
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよnpsg
 
ELK ではじめる自宅ネットワーク監視
ELK ではじめる自宅ネットワーク監視ELK ではじめる自宅ネットワーク監視
ELK ではじめる自宅ネットワーク監視npsg
 
NetOpsCoding#5 introduction
NetOpsCoding#5 introductionNetOpsCoding#5 introduction
NetOpsCoding#5 introductionTaiji Tsuchiya
 
Telemetry事始め
Telemetry事始めTelemetry事始め
Telemetry事始めnpsg
 
Ansible x napalm x nso 解説・比較パネルディスカッション nso
Ansible x napalm x nso 解説・比較パネルディスカッション nsoAnsible x napalm x nso 解説・比較パネルディスカッション nso
Ansible x napalm x nso 解説・比較パネルディスカッション nsoAkira Iwamoto
 
ネットワーク運用とIoT
ネットワーク運用とIoTネットワーク運用とIoT
ネットワーク運用とIoTcloretsblack
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyYahoo!デベロッパーネットワーク
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)akira6592
 
パケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作るパケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作るcloretsblack
 

Destacado (20)

CDP Indicator
CDP IndicatorCDP Indicator
CDP Indicator
 
API イントロダクション APIC-EM, Prime Infrastructure & CMX
API イントロダクション APIC-EM, Prime Infrastructure & CMXAPI イントロダクション APIC-EM, Prime Infrastructure & CMX
API イントロダクション APIC-EM, Prime Infrastructure & CMX
 
Contiv
ContivContiv
Contiv
 
ネットワークプログラマビリティ勉強会
ネットワークプログラマビリティ勉強会ネットワークプログラマビリティ勉強会
ネットワークプログラマビリティ勉強会
 
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaS
 
ネットワークプログラマビリティ勉強会 これまでのおさらい
ネットワークプログラマビリティ勉強会 これまでのおさらいネットワークプログラマビリティ勉強会 これまでのおさらい
ネットワークプログラマビリティ勉強会 これまでのおさらい
 
物理ネットワーク受け入れテストの自動化を考える
物理ネットワーク受け入れテストの自動化を考える物理ネットワーク受け入れテストの自動化を考える
物理ネットワーク受け入れテストの自動化を考える
 
いんふらフレンズ
いんふらフレンズいんふらフレンズ
いんふらフレンズ
 
Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析
 
自動化と画面を考えてみました
自動化と画面を考えてみました自動化と画面を考えてみました
自動化と画面を考えてみました
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
ELK ではじめる自宅ネットワーク監視
ELK ではじめる自宅ネットワーク監視ELK ではじめる自宅ネットワーク監視
ELK ではじめる自宅ネットワーク監視
 
Ansible npstudy-shtsuchi
Ansible npstudy-shtsuchiAnsible npstudy-shtsuchi
Ansible npstudy-shtsuchi
 
NetOpsCoding#5 introduction
NetOpsCoding#5 introductionNetOpsCoding#5 introduction
NetOpsCoding#5 introduction
 
Telemetry事始め
Telemetry事始めTelemetry事始め
Telemetry事始め
 
Ansible x napalm x nso 解説・比較パネルディスカッション nso
Ansible x napalm x nso 解説・比較パネルディスカッション nsoAnsible x napalm x nso 解説・比較パネルディスカッション nso
Ansible x napalm x nso 解説・比較パネルディスカッション nso
 
ネットワーク運用とIoT
ネットワーク運用とIoTネットワーク運用とIoT
ネットワーク運用とIoT
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
 
パケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作るパケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作る
 

Similar a Lagopus + DockerのDPDK接続

Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)Tomoya Hibi
 
Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1Tomoya Hibi
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Masahito Zembutsu
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばYoshihiro Nakajima
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもんMasahito Zembutsu
 
"Up" with vagrant and docker
"Up" with vagrant and docker"Up" with vagrant and docker
"Up" with vagrant and dockerHiroshi Miura
 
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)VirtualTech Japan Inc.
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_finalKazumasa Ikuta
 
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会Minehiko Nohara
 
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会Minehiko Nohara
 
"Up" with vagrant and docker
"Up" with vagrant and docker"Up" with vagrant and docker
"Up" with vagrant and dockerHiroshi Miura
 
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月VirtualTech Japan Inc.
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...NTT DATA Technology & Innovation
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep DiveHirofumi Ichihara
 
データセンター進化論:これ以上オープンになれないSDNとは?
データセンター進化論:これ以上オープンになれないSDNとは?データセンター進化論:これ以上オープンになれないSDNとは?
データセンター進化論:これ以上オープンになれないSDNとは?Brocade
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門Masahito Zembutsu
 
Cloud stack徹底入門7章 20130514
Cloud stack徹底入門7章 20130514Cloud stack徹底入門7章 20130514
Cloud stack徹底入門7章 20130514samemoon
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方Yuji Oshima
 

Similar a Lagopus + DockerのDPDK接続 (20)

DPDKを拡張してみた話し
DPDKを拡張してみた話しDPDKを拡張してみた話し
DPDKを拡張してみた話し
 
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
 
Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
 
Lagopus Router
Lagopus RouterLagopus Router
Lagopus Router
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
 
"Up" with vagrant and docker
"Up" with vagrant and docker"Up" with vagrant and docker
"Up" with vagrant and docker
 
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_final
 
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会
 
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会
 
"Up" with vagrant and docker
"Up" with vagrant and docker"Up" with vagrant and docker
"Up" with vagrant and docker
 
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
データセンター進化論:これ以上オープンになれないSDNとは?
データセンター進化論:これ以上オープンになれないSDNとは?データセンター進化論:これ以上オープンになれないSDNとは?
データセンター進化論:これ以上オープンになれないSDNとは?
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
Cloud stack徹底入門7章 20130514
Cloud stack徹底入門7章 20130514Cloud stack徹底入門7章 20130514
Cloud stack徹底入門7章 20130514
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方
 

Más de 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.07Tomoya Hibi
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKTomoya 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-20180224Tomoya Hibi
 
Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)Tomoya Hibi
 
IoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトークIoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトークTomoya Hibi
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_netTomoya Hibi
 
Lagopusで試すFW
Lagopusで試すFWLagopusで試すFW
Lagopusで試すFWTomoya Hibi
 
Lagopusで試すFirewall
Lagopusで試すFirewallLagopusで試すFirewall
Lagopusで試すFirewallTomoya Hibi
 

Más de Tomoya Hibi (10)

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
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDK
 
[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 & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)
 
IoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトークIoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトーク
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_net
 
Lagopusで試すFW
Lagopusで試すFWLagopusで試すFW
Lagopusで試すFW
 
Lagopusで試すFirewall
Lagopusで試すFirewallLagopusで試すFirewall
Lagopusで試すFirewall
 

Lagopus + DockerのDPDK接続

  • 1. 0Copyright©2016 NTT corp. All Rights Reserved. Lagopus + Docker のDPDK接続 2017/02/15 @hibitomo @falcon8823 0
  • 2. 1Copyright©2016 NTT corp. All Rights Reserved. 今日伝えたいこと すごーい!LagopusはdockerとDPDKで接続できるス イッチなんだね! #npstudy
  • 3. 2Copyright©2016 NTT corp. All Rights Reserved.  Lagopus-0.2  DPDKによる仮想環境との接続  Lagopus + docker のDPDK接続  新Lagopus Agenda
  • 4. 3Copyright©2016 NTT corp. All Rights Reserved. Lagopus OpenFlowスイッチのソフトウェア実装 汎用x86サーバで動作可能 OSSとして公開 (2014年1月 0.1.x 公開, 2015年8月 0.2.x 公開) 高速なパケット処理と幅広いプロトコルに対応 > 10Gbps OpenFlow1.3+tunneling OpenFlow コントローラ コントロールプレーン OpenFlow プロトコル OpenFlow スイッチ データプレーン Flow Table フローパターン アクション フローパターン アクション カウンター カウンター Flow Table #2 Flow Table #3 Flow Table #4
  • 5. 4Copyright©2016 NTT corp. All Rights Reserved.  0.2.5 Apr 6, 2016  GTP-U tunnel support, some bug fixes  0.2.6 May 2, 2016  performance improvement, but DPDK ixgbe vector enabled, much slow  0.2.7 May 18, 2016  DPDK vector disabled again  0.2.8 July 12, 2016  build and tests on Ubuntu 16.04LTS  deprecated -p parameter • ignored if specified  it works as L2 and/or L3 Hybrid switch  0.2.9 Aug 26, 2016  DPDK 16.07  0.2.10 Dec 20, 2016  DPDK 16.11 最近のリリース action: NORMAL対応 L2/L3 Hybrid switch Tunnel対応
  • 6. 5Copyright©2016 NTT corp. All Rights Reserved. 性能評価  単純なポートフォワードを実施した場合のスループットを測定 CPU E5-2697v2 2.70GHz NIC Intel X520 メモリ 64GB OS Ubuntu 14.04LTS CPU E5-2667v3 3.20GHz NIC Intel XL710 メモリ 64GB OS Ubuntu 14.04LTS  10GbE  測定環境  測定結果  40GbE  測定環境  測定結果 6.66 8.65 9.28 9.49 9.63 9.77 9.83 9.85 9.86 0 1 2 3 4 5 6 7 8 9 10 0 200 400 600 800 1000 1200 1400 Throughput(Gbps) Packet size (byte) Lagopus Wire-rate 7.7 15.5 26.5 34.2 39.2 39.5 0 5 10 15 20 25 30 35 40 0 200 400 600 800 1000 1200 1400 Throughput(Gbps) Packet size (byte) Lagopus Wire-rate
  • 7. 6Copyright©2016 NTT corp. All Rights Reserved.  Lagopus-0.2  DPDKによる仮想環境との接続  Lagopus + docker のDPDK接続  新Lagopus Agenda
  • 8. 7Copyright©2016 NTT corp. All Rights Reserved.  Interop Shownet 2016  vhost-user PMD による仮想マシンとのDPDK接続 DPDKによる仮想環境との接続(VM) HV VNF VNF VNF lagopus lagopus uplink downlink hash計算と MACへの 埋め込み MACにもとづいて VMへ送信(staticな flow entry)
  • 9. 8Copyright©2016 NTT corp. All Rights Reserved.  vhost-user PMD DPDKによる仮想環境との接続(VM) 引用: http://events.linuxfoundation.org/sites/events/files/slides/Scalable%20high- performance%20userland%20container%20networking%20for%20NFV.pdf
  • 10. 9Copyright©2016 NTT corp. All Rights Reserved.  SR-IOV or virtio-user DPDKによる仮想環境との接続(コンテナ) 引用: http://dpdk.org/doc/guides/howto/virtio_user_for_container_networking.html#figure-use- models-for-running-dpdk-in-containers
  • 11. 10Copyright©2016 NTT corp. All Rights Reserved. DPDKによる仮想環境との接続(コンテナ) 引用: http://dpdk.org/doc/guides/howto/virtio_user_for_container_networking.html#figure-use- models-for-running-dpdk-in-containers  virtio-user
  • 12. 11Copyright©2016 NTT corp. All Rights Reserved.  lagopus/doc/how-to-use-virtio-user.md  https://github.com/lagopus/lagopus/pull/106/files  DPDK HowTo Guides  http://dpdk.org/doc/guides/howto/virtio_user_for_container_network ing.html#figure-use-models-for-running-dpdk-in-containers  Scalable High-Performance User Space Interface/Stack for Containers in NFV - Jianfeng Tan & Zhihong Wang, Intel  http://events.linuxfoundation.org/sites/events/files/slides/Scalable%2 0high- performance%20userland%20container%20networking%20for%20NF V.pdf 参考資料
  • 13. 12Copyright©2016 NTT corp. All Rights Reserved.  Lagopus-0.2  DPDKによる仮想環境との接続  Lagopus + docker のDPDK接続  新Lagopus Agenda
  • 14. 13Copyright©2016 NTT corp. All Rights Reserved. 接続例 Lagopus Server Container Testpmd
  • 15. 14Copyright©2016 NTT corp. All Rights Reserved.  Docker, Lagopusのインストール  省略  Hugepagesの設定  省略.hugepagesizeは 1G 必須.  hugetlbfsのマウント  /etc/fstabを編集  ホスト用,各コンテナ用それぞれでマウントする 手順(準備) # for host none /mnt/huge hugetlbfs pagesize=1G,size=4G 0 0 # for container none /mnt/huge_c0 hugetlbfs pagesize=1G,size=1G 0 0
  • 16. 15Copyright©2016 NTT corp. All Rights Reserved.  Dockerイメージ  testpmdのdockerイメージ  Lagopusの設定  Interfaceを仮想マシン接続時と同じく,vhost-userで用意する.  参考:http://www.slideshare.net/tomoyahibi/lagopusl3-lagopus 手順(Docker,Lagopus) channel channel01 create -dst-addr 127.0.0.1 -protocol tcp controller controller01 create -channel channel01 -role equal -connection-type main interface interface01 create -type ethernet-dpdk-phy -device eth_vhost0,iface=/tmp/dpdk/sock0 interface interface02 create -type ethernet-dpdk-phy -device eth_vhost1,iface=/tmp/dpdk/sock1 port port01 create -interface interface01 port port02 create -interface interface02 bridge bridge01 create -controller controller01 -port port01 1 -port port02 2 -dpid 0x1 bridge bridge01 enable flow bridge01 add in_port=1 apply_actions=output:2 flow bridge01 add in_port=2 apply_actions=output:1
  • 17. 16Copyright©2016 NTT corp. All Rights Reserved.  Lagopusの起動  Dockerの起動 手順(起動) $ sudo lagopus -d -- -c 0xc -n 2 -m 1024 -- $ docker run -it --rm -v /mnt/huge_c0:/mnt/huge_c0 -v /tmp/dpdk:/tmp/dpdk dpdk-docker testpmd --no-pci --vdev=virtio_user0,path=/tmp/dpdk/sock0 -- vdev=virtio_user1,path=/tmp/dpdk/sock1 -c 0x3 -n 2 -m 1024 -- --disable-hw-vlan-filter -i
  • 18. 17Copyright©2016 NTT corp. All Rights Reserved.  virtio-userをつかめるのはDPDKアプリのみ  コンテナで使うHugepagesは8ページ以下しか使えない  CPUを複数ソケットもつ場合,Dockerで使用するノードを明示的に 指定する必要がある ポイント
  • 19. 18Copyright©2016 NTT corp. All Rights Reserved.  パケットの流れ  pktgen -> 物理 -> vswitch -> Container(L2Fwd) -> vswitch -> 物理 -> pktgen 性能評価 Lagopus or docker0 Server Container L2Fwd or Linux Bridge Container pktgen-dpdk OS: Ubuntu 16.04.1 CPU: Xeon E5-2697 v2 @ 2.70GHz メモリ: 64GB
  • 20. 19Copyright©2016 NTT corp. All Rights Reserved. 性能評価
  • 21. 20Copyright©2016 NTT corp. All Rights Reserved.  Lagopus-0.2  DPDKによる仮想環境との接続  Lagopus + docker のDPDK接続  新Lagopus Agenda
  • 22. 21Copyright©2016 NTT corp. All Rights Reserved.  Lagopus Switch から Lagopus Routerに  OpenFlow Switchで開発した柔軟なフロー検索と処理に加え,様々なネット ワーク制御系アプリやオーケストレーションと連携可能とする • ルータの備える標準的なプロトコル制御機能 • オーバーレイネットワークを実現するVxLANやGRE • 暗号化(IPsec)の終端機能 新Lagopus
  • 23. 22Copyright©2016 NTT corp. All Rights Reserved.  パケット処理部,構成情報管理機構,プロ トコルエージェントを疎結合で接続  プロトコル処理制御用のAPIをプロトコル毎 に提供  詳細は公開中  http://www.lagopus.org/lagopus2-design- book/ja/ Lagopus Router アーキテクチャ
  • 24. 23Copyright©2016 NTT corp. All Rights Reserved.  BGP Router Usecase  IPsec Router
  • 25. 24Copyright©2016 NTT corp. All Rights Reserved.  Lagopus  https://lagopus.org  Github  https://github.com/lagopus/lagopus  Lagopus books (英語)  http://www.lagopus.org/lagopus-book/en/html/  Mailing list (英語,開発者向け)  https://lists.sourceforge.net/lists/listinfo/lagopus-devel  Slack  https://lagopus-project-slack.herokuapp.com/ 参考
  • 26. 25Copyright©2016 NTT corp. All Rights Reserved. まとめ すごーい!LagopusはdockerとDPDKで接続できる ルータになるんだね! #npstudy
  • 27. 26Copyright©2016 NTT corp. All Rights Reserved. ご清聴ありがとうございました 26 ######## ## ;;;; ## ## #### ## #### ## ## ## #### ##### ######## ## ############## ## ## ### ######## ## ## #### ## ## ## #### ## #### ## ## ## ## ## ###### #### #### #### #### ########## #################### mmmm ## ##########