24
THE HEBREW UNIVERSITY OF JERUSALEM OpenBox: A Software-Defined Framework for Developing, Deploying, and Managing Network Functions Yotam Harchol The Hebrew University of Jerusalem Joint work with Anat Bremler-Barr and David Hay This research was supported by the European Research Council ERC Grant agreement no 259085, the Israeli Centers of Research Excellence (I-CORE) program (Center No. 4/11), and the Neptune Consortium.

OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

  • Upload
    others

  • View
    27

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

THEHEBREWUNIVERSITYOFJERUSALEM

OpenBox:A Software-Defined Framework for Developing, Deploying, and Managing Network Functions

Yotam HarcholThe Hebrew University of Jerusalem

Joint work with Anat Bremler-Barr and David Hay

ThisresearchwassupportedbytheEuropeanResearchCouncilERCGrantagreementno259085,theIsraeliCentersofResearchExcellence(I-CORE)program(CenterNo.4/11),andtheNeptuneConsortium.

Page 2: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Network Functions (Middleboxes)

2

Firewall

LoadBalancer

IntrusionPreventionSystem

• Monolithicclosed black-boxes✘ Highcost✘ Limitedprovisioning andscalability

NetworkFunctionVirtualization(NFV):✔ Reducecost (bymovingtosoftware)✔ Improveprovisioning andscalability

(byvirtualizingsoftwareNFs)

Page 3: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Network Functions (Middleboxes)

✘Highcost✘ Limitedprovisioningandscalability✘ Limitedandseparatemanagement

• Differentvendors• Nostandards• Separatecontrolplane

3

Page 4: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Network Functions (Middleboxes)

• Actually,manyoftheseblack-boxesareverymodular

4

NetworkFunction

✘ Highcost✘ Limitedprovisioningandscalability✘ Limitedandseparatemanagement

✘ Limitedfunctionality andlimitedinnovation(Highentrybarriers)

✘ Similarcomplexprocessingsteps,nore-use

Page 5: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

OpenBoxController

OBI

OBI

OBI

OpenBox

• OpenBox:Anewsoftware-definedframeworkfornetworkfunctions• Decouplesnetworkfunctioncontrolfromtheirdataplane• Unifiesdataplaneofmultiplenetworkfunctions

Benefits:• Easier,unifiedcontrol• Betterperformance• Scalability• Flexibledeployment• Inter-tenantisolation• Innovation

github.com/OpenBoxProject

www.openboxproject.org

Page 6: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

• Highcostofmiddleboxes• Limitedprovisioning andscalability ofmiddleboxes• Limitedmanagement ofmiddleboxes• Limitedfunctionalityandlimitedinnovation

• Complexprocessingsteps

Software Defined Networking

6

OpenFlowController

OpenBoxController

OBI

OBI

OBI

switchesswitches

switches

distributedalgorithms

40%-60%oftheappliancesinlarge-scalenetworksaremiddleboxes![Sherry&Ratnasamy,‘12]

Page 7: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

The OpenBox Framework

7

Logically-Centralized OpenBox Controller

Network Functions:OpenBox Applications

ControlPlane

DataPlane

OpenBox ServiceInstances

OpenBoxProtocol

NorthboundAPI

Additionally:• IsolationbetweenNFs/multipletenants• Supportforhardwareaccelerators• Dynamicallyextendtheprotocol

Page 8: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Most network functions do very similar processing steps

Observation:

8

But there is no re-use…

The design the OpenBox framework is based on this observation

Page 9: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Network Function Decomposition

9

Firewall:

ReadPackets

HeaderClassifier

Drop

Alert

Output

LoadBalancer:

ReadPackets

HeaderClassifier

RewriteHeader

Output

IntrusionPreventionSystem:

ReadPackets

HeaderClassifier

Drop

Alert

DPI

DPI

DPI Output

Page 10: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Northbound API

10

OpenBoxProtocol

OpenBoxServiceInstances

OpenBoxController

OpenBoxApplications

ControlPlane

DataPlane

NBAPI

ReadPackets

HeaderClassifier

Drop

Alert

OutputRead

PacketsHeaderClassifier

RewriteHeader

OutputRead

PacketsHeaderClassifier

Drop

Alert

DPI

DPI

DPI Output

Specifyprocessinggraphandblockconfiguration

Events,Loadinformation

IntrusionPreventionSystemLoadBalancerFirewall

Page 11: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Logically-Centralized Controller

11

OpenBoxProtocol

OpenBoxServiceInstances

OpenBoxController

OpenBoxApplications

ControlPlane

DataPlane

NBAPI

Multipletenantsrunmultipleapplicationsformultiplepoliciesinthesamenetwork

Isolationbetweenapplicationsand tenantsenforcedbyNBAPI

SDNProtocol

SDNSwitches

SDNControllerNetwork-wideview

Automaticscaling,provisioning,placement,and steering

Page 12: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Naïve Graph Merge

12

Firewall:

ReadPackets

HeaderClassifier

Drop

Alert

Output

IntrusionPreventionSystem:

ReadPackets

HeaderClassifier

Drop

Alert

DPI

DPI

DPI Output

HeaderClassifier

Drop

Alert(IPS)

DPI

DPI

DPI OutputReadPackets

HeaderClassifier

Drop

Alert(Firewall)

ConcatenatedProcessingGraph:

Performance≈DiameterofGraph(#ofclassifiers)Total:134μs

30μs

10μs

50μs 10μs2μs 2μs30μs

Page 13: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Graph Merge Algorithm

13

MergedProcessingGraph:

ReadPackets

HeaderClassifier

Drop

Alert(IPS)

DPI

DPI

DPI Output

Alert(Firewall)

Alert(Firewall)

Alert(Firewall)

Alert(Firewall)

ShorterDiameter(lessclassifiers)

Algorithmanddetailsareinthepaper

30μs

10μs

50μs 10μs

Total:104μs(22%improvement)

2μs 2μs

Page 14: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

OpenBox Data Plane Processing

14

ReadPackets

HeaderClassifier

DPI

Classification

VLANPop

VLANPushRewriteHeader

HeaderModification

BeginTransaction

RollbackTransaction

CommitTransaction

Transactions

GzipDecompress

GzipCompress

De/compression

HTMLNormalizer

JavaScriptNormalizer

XMLNormalizer

Normalization

StorePacket

RestorePacket

Caching

Alert

Log

Reporting

Output

Drop

Terminals

FIFOQueue FrontDropQueue

REDQueueLeakyBucket

QueueManagement

Page 15: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

OpenBox Data Plane Processing

15

ReadPackets

HeaderClassifier

DPI

Classification

VLANPop

VLANPushRewriteHeader

HeaderModification

BeginTransaction

RollbackTransaction

CommitTransaction

Transactions

GzipDecompress

GzipCompress

De/compression

HTMLNormalizer

JavaScriptNormalizer

XMLNormalizer

Normalization

StorePacket

RestorePacket

Caching

Alert

Log

Reporting

Output

Drop

Terminals

FIFOQueue FrontDropQueue

REDQueueLeakyBucket

QueueManagement

OpenBoxServiceInstance

VirtualorPhysical

• Providesdataplaneservicestorealizethelogicofnetworkfunctions

• Controlledbythelogically-centralizedOpenBox controller

Page 16: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Distributed Data Plane

OpenBoxServiceInstance

Software

OpenBoxServiceInstance

Hardware(TCAM)

E.g.,anOpenFlow switchwithencapsulationfeatures(e.g.,NSH,Geneve,FlowTags)

HeaderClassifier

Alert

DPI

RewriteHeader

Metadata

Page 17: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Split Processing Graph

17

ReadPackets

HeaderClassifier

Drop

OutputWriteMetadata

EncapsulateMetadata

ReadPackets

Drop

Alert

DPI

DPI

DPI OutputDecapsulateMetadata

ReadMetadata

HWInstance:

SWInstance:

Page 18: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Extensible Data Plane

18

OpenBoxProtocol

OpenBoxServiceInstances

OpenBoxController

ControlPlane

DataPlane

NBAPI

MediaEncoder

Option1:NewhardwareimplementationSupportsencapsulation

Option2:Softwaremoduleinjection

NEWAPP

Customsoftwaremodule(signed)

OntheflyNoneedtorecompileNoneedtoredeploy

Page 19: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Scalable & Reliable Data Plane

19

OBI OBI

OBI

OBI OBI

Scalability Provisioning Reliability

OBI OBIOBI OBIOBI OBIOBI OBIOBI OBIOBI OBIOBI OBI

OpenBoxController

OBI

Hypervisor

Hypervisor

Page 20: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Implementation

20

Java-basedOpenBox Controller

SoftwareOpenBoxServiceInstance

Genericwrapperforexecutionengines(Python)

FW

NorthboundAPIREST

client/serverGraph

AggregatorManagement

APINetworkManager

TranslationEngine

github.com/OpenBoxProject

REST

IPS LoadBalancer ...

Click-basedexecution engine(C++)

ControlPlane

DataPlaneRESTAPI

(Plughereotherexecutionengines.E.g.,ClickNP)

Page 21: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Performance Improvement

21

VM1Firewall

VM2IPS

WithoutOpenBoxVM1

OBI1:FW+IPS

VM2OBI2:FW+IPS

WithOpenBox

01020304050607080

0100200300400500600700800900

Firewall IPS

Latency[µs]

Throughp

ut[M

bps]

StandaloneVM

0

20

40

60

80

100

120

140

0100200300400500600700800900

1 2

Latency[µs]

Throughp

ut[M

bps]

NFPipeline

WithoutOpenBox

WithOpenBox

Page 22: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Related Work

• OrthogonaltoOpenBox:– NFtrafficsteering(e.g.,SIMPLE[SIGCOMM’14])– NForchestration(e.g.,Stratos,OpenMano,OpenStack)– Runtimeplatforms(e.g.,xOMB [ANCS‘12],ClickNP [SIGCOMM‘16])

• SimilarMotivation:– CoMb [NSDI‘12]– focusesonresourcesharingandplacement– E2[SOSP‘15]– compositionframeworkforvirtualNFs– Slick[SOSR’15]– focusesontheplacementofdataplaneunits

• OnlyOpenBox provides:– Coreprocessingdecompositionandreuse– StandardizationandfulldecouplingofNFcontrolanddataplanes

22

Page 23: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

Conclusions

• Networkfunctionsarecurrentlyarealchallengeinlargescalenetworks

• OpenBoxdecouplesthedataplaneprocessingfromnetworkfunctioncontrollogicand:– Reducescosts– Enhancesperformance– Improvesscalability– Increasesreliability– Providesinter-tenantisolation– Allowseasierinnovation

23

OpenBoxProtocol

OpenBoxServiceInstances

OpenBoxController

OpenBoxApplications

ControlPlane

DataPlane

NBAPI

Page 24: OpenBox - SIGCOMM · 2016. 8. 26. · Java-based OpenBox Controller Software OpenBox Service Instance Generic wrapper for execution engines (Python) FW Northbound API REST client/server

THANK YOU!Questions?

24