Kernel vm13lt

20
パケットせよ Hiroki SHIROKURA @slankdev

Transcript of Kernel vm13lt

パケットせよ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/cuisharkGitHubで「cuishark」

なんでつくったか

VTYの実装のために必要になった

sudo cuishark -i lo -f "tcp[13]&8!=0 and tcp dst port 8888"こんなことをするとデバッグが楽

反応

- プロトコルの解析部分自分で書いたの? すごい!- wiresharkのソースとコンパチでないの? だめじゃん

今後展望

- ディスプレイフィルタの実装

- Wiresharkのdissectorを使えるようにする

その2高性能, 高機能にパケットを処理せよ

その3DPDKの良いスレッドデザインを採用せよ

DPDK (Data Plane Development Kit)性能維持のためにkernelとは関わらない (もちろん連携可)

用途例

- ルータ (ex, Brocade Vyatta)- Openflowスイッチ

2017.6時点のアカデミアでの最速はBGP full route 145Gbps

- CPUの論理コアを1つのスレッドで占有

- ユーザランド上で

独自のポーリング専用NICドライバ

- Hugepagesを用いた独自のメモリ管理

昨今の通信業界の概念

CGN (NAT)HW

FireWallHW

DPIHW

RouterHW

CGN (NAT)

FireWall DPI Router

Commodiy Hardware

Virtualization Lyer

NFVネットワーク機能(NF)を汎用PC上の仮想的(ソフト)に実現

サービスチェイニング

複数のNFを数珠繋ぎ -> 高機能なNF

ソフトウェアのほうが圧倒的にフレキシブル。性能に関しては....

DPDKの使い方- 全てのコアをどのように使い切るかを考えなくてはいけない

- スレッドの多重化をしたり, パイプライン処理をしたり

- スレッドのデザインが大変

誤字7Mppsです

実際は...

Lagopus という Openflowスイッチ

NVF基盤とかを実現したばあい

動的自動最適化するl2fwd: デモ

10GbENIC

10GbENIC

10GbENIC

10GbENIC

Traffic Generator/Analyzer

SmartL2Fwder

Rx TxWkNIC Rx

NIC Rx

NIC Tx

NIC TxQue Que

Rx Tx

WkNIC Rx

NIC Rx

NIC Tx

NIC TxQue Que

Wk

概要

「環境に対して自動で最適化を行う高性能通信基盤」

ルータやスイッチをデプロイする基盤を開発

ルータやFirewallなどのネットワーク機能(NF)に対し

スレッドベースの最適化を動的に行うことで

数百万円の安価な汎用PCとソフトウェアでNFVを高性能に実現

x86 PC

ここ!!

Router Firewallコンセプト

- 環境情報から自動最適化

- 複数NFのデプロイするNFV基盤 (no VM)

パケットせよ: fin