lagopus sdn/openflow switch: yet another sdn/of switch agent … · lagopusを使っ...

27
0 Copyright©2015 NTT corp. All Rights Reserved. Lagopus: 高速なパケット処理を実現する OpenFlowソフトウエアスイッチ 中島佳宏・高橋宏和・益谷仁士・日比智也・ 河井彩公子・石黒邦宏 NTT This 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.

Upload: others

Post on 27-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

0Copyright©2015 NTT corp. All Rights Reserved.

Lagopus:高速なパケット処理を実現するOpenFlowソフトウエアスイッチ

中島佳宏・高橋宏和・益谷仁士・日比智也・河井彩公子・石黒邦宏NTT

This 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.

Page 2: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

1Copyright©2015 NTT corp. All Rights Reserved.

Agenda

背景と目的

Lagopus: SDN/OpenFlow ソフトウエアスイッチ

構成

実装の工夫

性能評価

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

SDN IX @ Interop Tokyo 2015

Segment Routing with MPLS (Source Routing, SPRING)

Page 3: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

2Copyright©2015 NTT corp. All Rights Reserved.

Lagopus SDN/OpenFlow switch project

Page 4: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

3Copyright©2015 NTT corp. All Rights Reserved.

Lagopusプロジェクトの目的

NFVやSDNを実現するソフトウエアコンポーネントを提供スイッチエージェント (OpenFlow, REST)

高速なソフトウエアデータプレーン

柔軟・拡張可能なスイッチ設定機構

高速I/Oライブラリ (DPDK)

外部システム連携ライブラリ (クラウドミドルウエア・補助ツール)

Network I/O ハードウエア拡張

ソフトウエアパケット処理の適応領域の拡大キャリア・ネットワークでも活用可能な高いスケーラビリティ性

運用を容易にする高可用性・保守成性の向上

ネットワーク研究のツール・ライブラリとしての活用促進高速検索、QoSコンポーネント、次世代で求められる拡張

Page 5: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

4Copyright©2015 NTT corp. All Rights Reserved.

Lagopus project overview

Software dataplane Hardware dataplane

SDN controller

SDN Switch agent

Dataplane

Hardware

design

Ryu SDN framework

Lagopus OF sw agent (OF1.3, OF-CONFIG, OVSDB)

Lagopus switch configuration datastore

DPDK soft dataplane

DPDK library extension

40GbE

FPGA NIC

switch ASIC

Open switch abstraction layer

Smart NIC

for soft

dataplane

ODP

Page 6: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

5Copyright©2015 NTT corp. All Rights Reserved.

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設定、統計情報・状況把握

Page 7: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

6Copyright©2015 NTT corp. All Rights Reserved.

ネットワークのエッジのノード

柔軟な制御や設定が求められるノード

多機能で大量のルート数やルールが求められるノード

求められるポート数が比較的少ないノード

Lagopusの適応先

TOR

Virtual Switch

Hypervisor

VM VM

Virtual Switch

Hypervisor

NFV NFV

Virtual Switch

Hypervisor

VM VM

Gateway CPE

Data Center Wide-area Network Access Network Intranet

Cloud,NFVに対応する仮想スイッチ 異種NWを接続する

ゲートウェイ向けソフトスイッチ

Page 8: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

7Copyright©2015 NTT corp. All Rights Reserved.

Lagopus vSwitchの設計

switch configuration datastore(config/stats API, SW DSL)

FPGA NIC DPDK NIC

DPDK libs/PMD driver

Lagopus soft dataplane

flow lookup flow cache

OpenFlow pipeline

queue/policer

Flow tableFlow table

flow table

Flow tableFlow tableGroup

table

Flow tableFlow tablemeter

table

switch HAL

Op

en

Flo

w

1.3

ag

en

t

JSON IF

SN

MP

CLI

OV

SD

B

NET

CO

NF

L2 b

ridg

e

L3

(IPv

4 IC

MP

)

SDN switch Agent• Full OpenFlow 1.3.4 support• Controller-less basic L2 and

L3 support

SDN-aware management API• OVSDB, REST• Ansible support

DPDK-enabled soft dataplane• Over-10-Gbps performance• Low latency packet processing• high performance multi-layer flow lookup

DPDK-enabled vNIC for NFV (virtq-pmd)

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

Soft-dataplane aware FPGA NIC

Page 9: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

8Copyright©2015 NTT corp. All Rights Reserved.

パケット処理の高速化

Page 10: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

9Copyright©2015 NTT corp. All Rights Reserved.

パケット処理の流れ

Network I/O

RX

packet

Frame

processing

Flow lookup &

Action

QoS・Queue

Network I/O

TX

Packet classification &

packet distribution to buffers

Packet parsing

lookup, Header rewrite

Encap/decap

Policer, Shaper

Marking

packet

Page 11: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

10Copyright©2015 NTT corp. All Rights Reserved.

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

Network I/O

RX

packet

Frame

processing

Flow lookup &

Action

QoS・Queue

Network I/O

TX

packet

• Delayed packet frame

evaluation

• Delayed action

(processing) evaluation

• Packet batching to

improve CPU $ efficiency

• Delayed flow stats

evaluation

• Smart flow classification

• Thread assignment optimization

• Parallel flow lookup

• Lookup tree compaction

• High-performance lookup

algorithm for OpenFlow

(multi-layer, mask, priority-aware

flow lookup)

• Flow $ mechanism

• Batch size tuning

Page 12: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

11Copyright©2015 NTT corp. All Rights Reserved.

詳しくはソースコードを!

https://github.com/lagopus/lagopus/

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

Page 13: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

12Copyright©2015 NTT corp. All Rights Reserved.

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

0

2

4

6

8

10

12

14

2013 Q2 2013 Q3 2013 Q4 2014 Q1 2014 Q2

MP

PS

DPDK-powered I/O Lookup performance

Project startpoint

OF lookup

improved

Lookup

optimization

Flow $ and Lookup

optimization

with 12 CPU cores

Packet processing optimization

with 4 CPU cores

Page 14: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

13Copyright©2015 NTT corp. All Rights Reserved.

Ryu OpenFlow 1.3 Conformance test Status (2015.02.12)

Type Action Set field Match Group Meter Total

# of test scenario(mandatory,

optional)

56(3 , 53)

161(0 , 161)

714(108 , 606)

15(3 , 12)

36(0 , 36)

991(114 , 877)

Lagopus

2014.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.11

17

(3, 14)

46

(0, 46)

323

(108, 229)

3

(0, 2)

0

(0, 0)

402

(111, 291)

ofswitch

2015.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)

Page 15: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

14Copyright©2015 NTT corp. All Rights Reserved.

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

Page 16: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

15Copyright©2015 NTT corp. All Rights Reserved.

SDN IX

@ Interop Tokyo 2015 ShowNet

Thanks to NECOMA project

(NAIST & University of Tokyo)

Page 17: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

16Copyright©2015 NTT corp. All Rights Reserved.

SDN IXの背景

IX (Internet eXchange)インターネットサービス・プロバイダ (ISP) 間の

L2での接続ポイント

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

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

接続設定の自動化とポータル化、API提供

DDoS トラヒックを削減・止めたい

• リンク帯域を食い尽くすことも

• 入り口でDDoSトラヒックをdrop

• 外部のDPI装置やFlowSpecとの連携

IX

ISP-CISP A ISP-DISP B

SW

SWSW

SW

ISP-EISP F

IX

ISP-CISP A ISP-DISP B

SW

SWSW

SW

ISP-EISP F

Page 18: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

17Copyright©2015 NTT corp. All Rights Reserved.

SDN IXとは?

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

Developed by NECOMA project

(NAIST and University of Tokyo)

ISP-CISP A ISP-DISP B

ISP-EISP F

ISP-CISP A ISP-DISP B

SW

SWSW

SW

ISP-EISP F

Page 19: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

18Copyright©2015 NTT corp. All Rights Reserved.

2台のLagopusを設置@大手町と幕張

アキバで買えるIntel Xeonサーバ

• 2 x Xeon E5 (Sandy-bridge) 8core CPU

• 6 x 10GbE NIC

Lagopus @ ShowNet 2015

Page 20: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

19Copyright©2015 NTT corp. All Rights Reserved.

Lagopus @ ShowNet rack

Page 21: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

20Copyright©2015 NTT corp. All Rights Reserved.

平均2Gbps throughput

パケットドロップは発生なし

ときたま10Gbpsのトラヒックにも耐えた

Interop Tokyo会期中リブートなし & トラブルなし

Lagopus@幕張を通ったトラヒック

Page 22: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

21Copyright©2015 NTT corp. All Rights Reserved.

Segment Routing with MPLS

by Lagopus + Routing Stack

Source/location-aware traffic control with scalable

software-defined networking with MPLS and NFV

appliance

Page 23: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

22Copyright©2015 NTT corp. All Rights Reserved.

SPRING using MPLS

集中制御と分散制御のいいところどりのNWアーキテクチャ

MPLSネットワークの簡易化 + ラベルスタックベースの転送

ラベルスタックに基づいたパケット転送

Segment Routing, Source routing

NFVとの連携が可能

何につかえるの?

ポリシールーティング

• 最短ルートやパス制御との連携

サービスチェイニング

• 特定のソースやロケーション及びフローに対しての適応

Page 24: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

23Copyright©2015 NTT corp. All Rights Reserved.

エッジルータが転送パスとポリシーを表現するラベルスタックをプッシュ

ポリシー管理は上位のマネージメントツールに基づく制御

Pルータはラベルに基づきパケット転送

パス計算は各ルータにおけるCSPFベースによる最短経路転送

リンクダウンへの対応は各時

SPRINGの動作

Page 25: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

24Copyright©2015 NTT corp. All Rights Reserved.

SPRING implementation with Ryu & Lagopus

Quagga

OSPF-SR

Lagopus

DPDK

X86 CPU/NIC

Ryu

OpenFlow

IPC

OSPF-SR

U-plane

Soft Switch

Quagga

OSPF-SR

Lagopus

DPDK

X86 CPU/NIC

Ryu

OpenFlow

IPC

Soft Switch

Policy managment

RESTREST

Page 26: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

25Copyright©2015 NTT corp. All Rights Reserved.

SPRINGの PoC

ロケーション指向のパケット転送+サービスチェイニング

複数の仮想NW

Enterpise intra network

• Web service and clients

• Untrusted site blocking by NFV service

Lab network

• Policy management

• Explicit routing for TE

lago0-0

lago0-1

lago1-1

lago1-0

lago2-1

lago2-0

nfv0

win00

Serv01

Serv00

win01

p1

p1

vFW vFW

web

Untrusted server

block service

lago

0-0

lago

0-1

lago

1-1

lago

1-0

lago

2-1

lago

2-0

nfv0

Ixia

p

3

vFW vFW

Ixia

Page 27: Lagopus SDN/OpenFlow switch: yet another SDN/OF switch agent … · Lagopusを使っ た柔軟なネットワーキング SDN IX @ Interop Tokyo 2015 Segment Routing with MPLS (Source

26Copyright©2015 NTT corp. All Rights Reserved.

高速なLagopusソフトスイッチをオープンソースとして提供

みなさまの研究テーマとして活用してみませんか?

• 既存のサーバで動作可能

• 新しいNW制御研究や高速化の研究のツールとして

• 相談にのります

学術系におけるスイッチの教育材料として利用してみませんか?

まとめ

Web: http://lagopus.github.io/

Github: https://github.com/lagopus/

開発に参加してみませんか?Lagopus本とかも後日公開 (予定)