Lagopus:
高速なパケット処理を実現する
OpenFlowソフトウエアスイッチ
中島佳宏・高橋宏和・益谷仁士・日比智也・
河井彩公子・石黒邦宏
NTTThis research is executed under a part of a “Research and Development of Network Virtualization Technology” program commissioned by the Ministry of Internal Affairs and Communications.

Copyright©2015 NTT corp. All Rights Reserved.

0Agenda 背景と目的 Lagopus: SDN/OpenFlow ソフトウエアスイッチ 構成
 実装の工夫 性能評価 Lagopusを使った柔軟なネットワーキング SDN IX @ Interop Tokyo 2015
 Segment Routing with MPLS (Source Routing, SPRING)

Copyright©2015 NTT corp. All Rights Reserved.

1

Lagopus SDN/OpenFlow switch project

Copyright©2015 NTT corp. All Rights Reserved.

2

Lagopusプロジェクトの目的
 NFVやSDNを実現するソフトウエアコンポーネントを提供
 スイッチエージェント (OpenFlow, REST) 高速なソフトウエアデータプレーン 柔軟・拡張可能なスイッチ設定機構
 高速I/Oライブラリ (DPDK) 外部システム連携ライブラリ (クラウドミドルウエア・補助ツール)
 Network I/O ハードウエア拡張 ソフトウエアパケット処理の適応領域の拡大
 キャリア・ネットワークでも活用可能な高いスケーラビリティ性
 運用を容易にする高可用性・保守成性の向上

 ネットワーク研究のツール・ライブラリとしての活用促進
 高速検索、QoSコンポーネント、次世代で求められる拡張
Copyright©2015 NTT corp. All Rights Reserved.

3

Lagopus project overview
Software dataplane
SDN controller
SDN Switch agent

Ryu SDN framework

Hardware dataplane

ODP

Lagopus OF sw agent (OF1.3, OF-CONFIG, OVSDB)
Lagopus switch configuration datastore
Open switch abstraction layer

Dataplane

DPDK soft dataplane
DPDK library extension
Hardwaredesign40GbE
FPGA NIC

switch ASIC

Smart NIC
for soft
dataplane

Copyright©2015 NTT corp. All Rights Reserved.

4

Lagopusの概要
 OpenFlow 1.3に最も適応したソフトウエアスイッチ
 複数のプロトコルフレーム処理の対応• Ethernet, Mac in MAC, MPLS, PBB, IPv4, IPv6…

 複数Flow tableやグループテーブルへの対応
 QoS機能 (queue, policer, meter table) DPDKを活用した高性能データプレーン
 10Gbpsを超えるパケット処理・転送性能 (20MPPS以上)
 100万フローエントリへの対応 (4K flow mod/sec)

 外部連携API CLIやJSONによるスイッチ構成設定• Flow設定、統計情報・状況把握

Copyright©2015 NTT corp. All Rights Reserved.

5

Lagopusの適応先
 ネットワークのエッジのノード 柔軟な制御や設定が求められるノード
 多機能で大量のルート数やルールが求められるノード
 求められるポート数が比較的少ないノード
VM

VM
NFV

Hypervisor

NFV

VM

Hypervisor

Virtual Switch
Gateway

VM

Hypervisor

Virtual Switch

CPE

Virtual Switch

TOR

Data Center

Wide-area Network

Cloud，NFVに対応する仮想スイッチ

Access Network

Intranet

異種NWを接続する
ゲートウェイ向けソフトスイッチ
Copyright©2015 NTT corp. All Rights Reserved.

6

Lagopus vSwitchの設計
SDN-aware
management API

SDN switch Agent
CLI

OVSDB

NETCONF

SNMPswitch HAL
Lagopus soft dataplane
OpenFlow pipeline
Flow table
Flow table• OVSDB, REST
• Ansible support

JSON IFswitch configuration datastore(config/stats API, SW DSL)

• Pub/sub mechanism• Switch config DSL• JSON IF support

Soft-dataplaneaware FPGA NIC

L2 bridge

L3(IPv4 ICMP)

Switch configuration
datastore

OpenFlow
1.3 agent• Full OpenFlow 1.3.4 support• Controller-less basic L2 andL3 support

Flow tableflow table

Flow table
Grouptableflow lookup

flow cache

Flow table

Flow table
metertable

Copyright©2015 NTT corp. All Rights Reserved.

• Over-10-Gbpsperformance• Low latency packet
processing• high performance
multi-layer flow lookup

queue/
policer

DPDK libs/PMD driver
FPGA NICDPDK-enabled
soft dataplane

DPDK NICDPDK-enabled
vNIC for NFV(virtq-pmd)
7パケット処理の高速化

Copyright©2015 NTT corp. All Rights Reserved.

8

パケット処理の流れ
packetPacket classification &packet distribution to buffers

Network I/ORX
Frame
processing

Packet parsing

Flow lookup &Action

lookup, Header rewrite
Encap/decap

QoS・Queue

Policer, Shaper
Marking

Network I/OTX

packetCopyright©2015 NTT corp. All Rights Reserved.

9性能向上に向けての工夫や実装 (1/2)
packet• Smart flow classification• Thread assignment optimization

Network I/ORX• Delayed packet frameevaluation

Frameprocessing
Flow lookup &Action• Delayed action(processing) evaluation• Packet batching toimprove CPU $ efficiency• Delayed flow stats
evaluation

QoS・Queue• Batch size tuning
Copyright©2015 NTT corp. All Rights Reserved.

• Parallel flow lookup• Lookup tree compaction• High-performance lookup
algorithm for OpenFlow(multi-layer, mask, priority-aware
flow lookup)• Flow $ mechanism

Network I/OTXpacket

10性能向上に向けての工夫や実装 (2/2)

 詳しくはソースコードを！
 https://github.com/lagopus/lagopus/

Copyright©2015 NTT corp. All Rights Reserved.

11

10Gbpsパケット処理の実現にむけての進捗

MPPS

Flow $ and Lookup
optimization
with 12 CPU cores1412
1086420

OF lookup
improved

Packet processing
optimization
with 4 CPU cores Lookup
optimization

Project startpoint2013 Q2

2013 Q3

DPDK-powered I/O2013 Q4

2014 Q1

Lookup performance

Copyright©2015 NTT corp. All Rights Reserved.

2014 Q2
12

Ryu OpenFlow 1.3 Conformance test Status (2015.02.12)

TypeAction

Set fieldMatchGroupMeterTotal# of test scenario(mandatory,optional)

56(3 , 53)161(0 , 161)

714(108 , 606)

15(3 , 12)36(0 , 36)

991(114 , 877)

Lagopus2014.11.09

56(3, 56)161(0, 161)714(108, 606)

15(3, 12)34
(0, 34)980(114, 866)

OVS (kernel)
2014.08.08

34(3, 31)96(0, 96)534
(108, 426)

6(3, 3)0(0, 0)670(114, 556)

OVS (netdev)
2014.11.05

34(3, 31)

102(0, 102)467(93, 374)

8(3, 5)0(0, 0)611(99, 556)

IVS
2015.02.1117(3, 14)46(0, 46)

323(108, 229)

3(0, 2)0(0, 0)402(111, 291)

ofswitch2015.01.08

50(3, 47)100(0, 100)

708
(108, 600)

15(3, 12)30(0, 30)962(114, 848)

LINC
2015.01.29

24(3, 21)68(0, 68)428(108, 320)

3(3, 0)4(0, 4)523(114, 409)

Trema
2014.11.28

50(3, 47)

159
(0 , 159)

708(108, 600)

15(3, 12)34(0, 34)

966
(114, 854)

Copyright©2015 NTT corp. All Rights Reserved.

13

Lagopusを使った柔軟なネットワーキング

Copyright©2015 NTT corp. All Rights Reserved.

14

SDN IX@ Interop Tokyo 2015 ShowNet
Thanks to NECOMA project(NAIST & University of Tokyo)

Copyright©2015 NTT corp. All Rights Reserved.

15

SDN IXの背景
 IX (Internet eXchange)
 インターネットサービス・プロバイダ (ISP) 間のL2での接続ポイント

ISP A

SW

• ISP間のパブリックな接続・プライベート接続

IX

SW
SW

SW

 やりたいことや困っていること

ISP-D

ISP-C

ISP B

ISP F

ISP-E

 接続設定の自動化とポータル化、API提供
 DDoS トラヒックを削減・止めたい• リンク帯域を食い尽くすことも• 入り口でDDoSトラヒックをdrop• 外部のDPI装置やFlowSpecとの連携

ISP A

ISP B

SWIXSW
ISP F
Copyright©2015 NTT corp. All Rights Reserved.

ISP-D

ISP-CSWSWISP-E
16

SDN IXとは?

Developed by NECOMA project(NAIST and University of Tokyo)

 Next generation IX with SDN technology
 Web portal-based path provisioning between ISPs
• Inter-AS L2 connectivity– VLAN-based path provisioning– Private peer provisioning Protect network from DDoS attack• On-demand 5-tuple-baesd packet filtering SDN IX controller and distributed SDN/OpenFlow IX core switch
ISP A

ISP-D

ISP B ISP-C

ISP A

ISP F

ISP-E

SWSWSWSW

ISP F
Copyright©2015 NTT corp. All Rights Reserved.

ISP-D

ISP B ISP-CISP-E

17

Lagopus @ ShowNet 2015
 2台のLagopusを設置@大手町と幕張 アキバで買えるIntel Xeonサーバ• 2 x Xeon E5 (Sandy-bridge) 8core CPU• 6 x 10GbE NIC

Copyright©2015 NTT corp. All Rights Reserved.

18

Lagopus @ ShowNet rack

Copyright©2015 NTT corp. All Rights Reserved.

19

Lagopus@幕張を通ったトラヒック
 平均2Gbps throughput
 パケットドロップは発生なし
 ときたま10Gbpsのトラヒックにも耐えた
 Interop Tokyo会期中リブートなし & トラブルなし

Copyright©2015 NTT corp. All Rights Reserved.

20

Segment Routing with MPLS
by Lagopus + Routing Stack

Source/location-aware traffic control with scalable
software-defined networking with MPLS and NFVappliance

Copyright©2015 NTT corp. All Rights Reserved.

21

SPRING using MPLS
 集中制御と分散制御のいいところどりのNWアーキテクチャ
 MPLSネットワークの簡易化 + ラベルスタックベースの転送 ラベルスタックに基づいたパケット転送
 Segment Routing, Source routing
 NFVとの連携が可能

 何につかえるの？
 ポリシールーティング• 最短ルートやパス制御との連携

 サービスチェイニング
• 特定のソースやロケーション及びフローに対しての適応

Copyright©2015 NTT corp. All Rights Reserved.

22

SPRINGの動作
 エッジルータが転送パスとポリシーを表現する
ラベルスタックをプッシュ ポリシー管理は上位のマネージメントツールに基づく制御

 Pルータはラベルに基づきパケット転送
 パス計算は各ルータにおけるCSPF
ベースによる最短経路転送
 リンクダウンへの対応は各時

Copyright©2015 NTT corp. All Rights Reserved.

23

SPRING implementation with Ryu & Lagopus

Policy managment
RESTRESTRyu

IPC Quagga

QuaggaOSPF-SR

OSPF-SR

IPC

OpenFlow

OpenFlow

Lagopus

Lagopus

DPDK

DPDK

X86 CPU/NIC

Ryu

OSPF-SR
U-planeSoft Switch

X86 CPU/NIC
Soft Switch

Copyright©2015 NTT corp. All Rights Reserved.

24

SPRINGの PoC
 ロケーション指向のパケット転送＋サービスチェイニング
 複数の仮想NW
 Enterpise intra network

vFW• Web service and clients• Untrusted site blocking by NFV service

win00

 Lab network

p1

win01

• Policy management• Explicit routing for TEvFW

p
1

Untrusted server
block service

web

nfv0

Serv00

lago00

lago10lago20

lago01

lago11lago21

vFW

lago0-0

nfv0

Serv01

vFW

lago
1-0

lago
2-0

Ixia

Ixia

lago0-1

Copyright©2015 NTT corp. All Rights Reserved.

lago
1-1

p3

lago
2-125

まとめ 高速なLagopusソフトスイッチをオープンソースとして提供
 みなさまの研究テーマとして活用してみませんか？
• 既存のサーバで動作可能• 新しいNW制御研究や高速化の研究のツールとして• 相談にのります 学術系におけるスイッチの教育材料として利用してみませんか？

Web: http://lagopus.github.io/
Github: https://github.com/lagopus/
開発に参加してみませんか？
Lagopus本とかも後日公開 (予定)
Copyright©2015 NTT corp. All Rights Reserved.

26