SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
パケットせよ
Hiroki SHIROKURA @slankdev
SHIROKURA Hiroki
- SNS: slankdev
- Web: http://slankdev.net
活動
- セキュリティキャンプ 2015,2016,2017 (16からチューター)
- サイボウズラボユース 「パケット」
- IIJ研 アルバイト 「パケット」
- 2017年 未踏事業   「パケット」
生まれてからパケットしか考えてない
パケットする
とか
10GbaseT x4 のマシンの全てのポートで
帯域を使い切って遊ぶ          
とか
可能性は無限大!
超パケットせよ
1. パケットを愛せよ
2. 高性能, 高機能にパケットを処理せよ (すみません割愛) 
3. DPDKの良いスレッドデザインを採用せよ
その1
パケットを愛せよ
パケットを愛せよ
● 愛すると、ずっと見つめてしまう
● パケットをずっと見つめよう!
● Wireshark -> 黒い画面で見たい
● Tcpdump  -> ださい!
Cuishark
- Wiresharkの真似 on TUI
- GUIいらない
- リッチなフロントエンド?
https://github.com/slankdev/cuishark
GitHubで「cuishark」
なんでつくったか
VTYの実装のために必要になった
sudo cuishark -i lo -f "tcp[13]&8!=0 and tcp dst port 8888"
こんなことをするとデバッグが楽
反応
- プロトコルの解析部分自分で書いたの? すごい!
- wiresharkのソースとコンパチでないの? だめじゃん
今後展望
- ディスプレイフィルタの実装
- Wiresharkのdissectorを使えるようにする
その2
高性能, 高機能にパケットを処理せよ
その3
DPDKの良いスレッドデザインを採用せよ
DPDK (Data Plane Development Kit)
性能維持のためにkernelとは関わらない (もちろん連携可)
用途例
- ルータ (ex, Brocade Vyatta)
- Openflowスイッチ
2017.6時点のアカデミアでの最速はBGP full route 145Gbps
- CPUの論理コアを1つのスレッドで占有
- ユーザランド上で
独自のポーリング専用NICドライバ
- Hugepagesを用いた独自のメモリ管理
昨今の通信業界の概念
CGN
(NAT)
HW
Fire
Wall
HW
DPI
HW
Router
HW
CGN
(NAT)
Fire
Wall
DPI Router
Commodiy Hardware
Virtualization Lyer
NFV
ネットワーク機能(NF)を汎用PC上の仮想的(ソフト)に実現
サービスチェイニング
複数のNFを数珠繋ぎ -> 高機能なNF
ソフトウェアのほうが圧倒的にフレキシブル。性能に関しては....
DPDKの使い方
- 全てのコアをどのように使い切るかを考えなくてはいけない
- スレッドの多重化をしたり, パイプライン処理をしたり
- スレッドのデザインが大変
誤字
7Mppsです
①
②
③
④
⑤
実際は...
Lagopus という Openflowスイッチ
NVF基盤とかを実現したばあい
動的自動最適化するl2fwd: デモ
10GbENIC
10GbENIC
10GbENIC
10GbENIC
Traffic
Generator/
Analyzer
Smart
L2Fwder
Rx TxWk
NIC Rx
NIC Rx
NIC Tx
NIC Tx
Que Que
Rx Tx
WkNIC Rx
NIC Rx
NIC Tx
NIC Tx
Que Que
Wk
概要
「環境に対して自動で最適化を行う高性能通信基盤」
ルータやスイッチをデプロイする基盤を開発
ルータやFirewallなどのネットワーク機能(NF)に対し
スレッドベースの最適化を動的に行うことで
数百万円の安価な汎用PCとソフトウェアでNFVを高性能に実現
x86 PC
ここ!!
Router Firewall
コンセプト
- 環境情報から自動最適化
- 複数NFのデプロイするNFV基盤 (no VM)
パケットせよ: fin

Weitere ähnliche Inhalte

Was ist angesagt?

OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT slankdev
 
ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編Daisuke Shimada
 
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04Kenichiro MATOHARA
 
ロボットシステム学2015年第7回
ロボットシステム学2015年第7回ロボットシステム学2015年第7回
ロボットシステム学2015年第7回Ryuichi Ueda
 
30days Album の裏側 + 表側
30days Album の裏側 + 表側30days Album の裏側 + 表側
30days Album の裏側 + 表側Kensuke Nagae
 
Rubyボードハンズオンテキスト
RubyボードハンズオンテキストRubyボードハンズオンテキスト
Rubyボードハンズオンテキスト三七男 山本
 
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回ロボットシステム学2015年第9回
ロボットシステム学2015年第9回Ryuichi Ueda
 
NCSA httpdとCGIの思い出
NCSA httpdとCGIの思い出NCSA httpdとCGIの思い出
NCSA httpdとCGIの思い出Mitsunori Satomi
 
LLTLIVE in Shibuya 2013.12.13
LLTLIVE in Shibuya 2013.12.13LLTLIVE in Shibuya 2013.12.13
LLTLIVE in Shibuya 2013.12.13maru_cc
 
Romo欲しい
Romo欲しいRomo欲しい
Romo欲しいtadfmac
 
フルスクラッチ自作OS(OS5)の紹介
フルスクラッチ自作OS(OS5)の紹介フルスクラッチ自作OS(OS5)の紹介
フルスクラッチ自作OS(OS5)の紹介Yuma Ohgami
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And JekyllYoji Shidara
 
ロボットシステム学2015年第6回
ロボットシステム学2015年第6回ロボットシステム学2015年第6回
ロボットシステム学2015年第6回Ryuichi Ueda
 
Raspbian, OpenCV and about me(Takachiho.rb)
Raspbian, OpenCV and about me(Takachiho.rb)Raspbian, OpenCV and about me(Takachiho.rb)
Raspbian, OpenCV and about me(Takachiho.rb)Yosei Ito
 
jTthree V3 technical preview
jTthree V3 technical previewjTthree V3 technical preview
jTthree V3 technical previewMasaki Yamamoto
 
ロボットシステム学2015年第13回
ロボットシステム学2015年第13回ロボットシステム学2015年第13回
ロボットシステム学2015年第13回Ryuichi Ueda
 
【シェル芸】コマンド7つで簡易コンテナ
【シェル芸】コマンド7つで簡易コンテナ【シェル芸】コマンド7つで簡易コンテナ
【シェル芸】コマンド7つで簡易コンテナYuma Ohgami
 

Was ist angesagt? (20)

OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT
 
ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編
 
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04
 
ロボットシステム学2015年第7回
ロボットシステム学2015年第7回ロボットシステム学2015年第7回
ロボットシステム学2015年第7回
 
30days Album の裏側 + 表側
30days Album の裏側 + 表側30days Album の裏側 + 表側
30days Album の裏側 + 表側
 
Rubyボードハンズオンテキスト
RubyボードハンズオンテキストRubyボードハンズオンテキスト
Rubyボードハンズオンテキスト
 
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
 
NCSA httpdとCGIの思い出
NCSA httpdとCGIの思い出NCSA httpdとCGIの思い出
NCSA httpdとCGIの思い出
 
LLTLIVE in Shibuya 2013.12.13
LLTLIVE in Shibuya 2013.12.13LLTLIVE in Shibuya 2013.12.13
LLTLIVE in Shibuya 2013.12.13
 
Romo欲しい
Romo欲しいRomo欲しい
Romo欲しい
 
mruby for embedded systems
mruby for embedded systemsmruby for embedded systems
mruby for embedded systems
 
Turnip
TurnipTurnip
Turnip
 
フルスクラッチ自作OS(OS5)の紹介
フルスクラッチ自作OS(OS5)の紹介フルスクラッチ自作OS(OS5)の紹介
フルスクラッチ自作OS(OS5)の紹介
 
GR-CITRUSの紹介
GR-CITRUSの紹介GR-CITRUSの紹介
GR-CITRUSの紹介
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And Jekyll
 
ロボットシステム学2015年第6回
ロボットシステム学2015年第6回ロボットシステム学2015年第6回
ロボットシステム学2015年第6回
 
Raspbian, OpenCV and about me(Takachiho.rb)
Raspbian, OpenCV and about me(Takachiho.rb)Raspbian, OpenCV and about me(Takachiho.rb)
Raspbian, OpenCV and about me(Takachiho.rb)
 
jTthree V3 technical preview
jTthree V3 technical previewjTthree V3 technical preview
jTthree V3 technical preview
 
ロボットシステム学2015年第13回
ロボットシステム学2015年第13回ロボットシステム学2015年第13回
ロボットシステム学2015年第13回
 
【シェル芸】コマンド7つで簡易コンテナ
【シェル芸】コマンド7つで簡易コンテナ【シェル芸】コマンド7つで簡易コンテナ
【シェル芸】コマンド7つで簡易コンテナ
 

Mehr von slankdev

動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発slankdev
 
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発slankdev
 
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many CoreHigh Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Coreslankdev
 
Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話slankdev
 
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会slankdev
 
ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃slankdev
 

Mehr von slankdev (6)

動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
 
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発
 
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many CoreHigh Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Core
 
Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話
 
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
 
ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃
 

Kernel vm13lt