33
OpenNF: Enabling Innovation in Network Function Control Aditya Akella With: Aaron Gember, Raajay Vishwanathan, Chaithan Prakash, Sourav Das, Robert Grandl, and Junaid Khalid University of Wisconsin—Madison

OpenNF : Enabling Innovation in Network Function Control

  • Upload
    deidra

  • View
    115

  • Download
    0

Embed Size (px)

DESCRIPTION

OpenNF : Enabling Innovation in Network Function Control. Aditya Akella With: Aaron Gember , Raajay Vishwanathan , Chaithan Prakash , Sourav Das, Robert Grandl , and Junaid Khalid University of Wisconsin—Madison. Network functions, or middleboxes. - PowerPoint PPT Presentation

Citation preview

Page 1: OpenNF : Enabling Innovation in Network Function Control

OpenNF: Enabling Innovation in Network Function Control

Aditya Akella

With: Aaron Gember, Raajay Vishwanathan, Chaithan Prakash, Sourav Das, Robert Grandl, and Junaid Khalid

University of Wisconsin—Madison

Page 2: OpenNF : Enabling Innovation in Network Function Control

Network functions, or middleboxes

CachingProxy

IntrusionPrevention

Firewall

WAN optimizer

Traffic scrubber

SSL Gateway

Introduce custom packet processing functions into the network

Load balancer

… [Sherry et al., SIGCOMM 2012]

Common in enterprise, cellular, ISP networks

Stateful: detailed book-keeping for

network flows

Page 3: OpenNF : Enabling Innovation in Network Function Control

3

Network functions virtualization (NFV)– Lower cost

– Easy prov., upgrades

Software-defined networking (SDN)– Decouple from physical

– Better performance, chaining

Xen/KVM

State-of-the-art

Page 4: OpenNF : Enabling Innovation in Network Function Control

Extract maximal performance at a given $$

SDN Controller

MBoxMBox

Load balancing

Dynamic reallocation to coordinate processing across instances

NFV + SDN: distributed processing

Page 5: OpenNF : Enabling Innovation in Network Function Control

SDN Controller

MBox

Key abstractions

1. Elastic2. Always updated3. Dynamic enhancement

MBox MBoxMBox

Hand-off processing fora traffic subset

MBox

Dynamic reallocation to coordinate processing across instances

SDN Controller

MBoxMBox

Load balancing

Extract maximal performance at a given $$

NFV + SDN: distributed processing

Page 6: OpenNF : Enabling Innovation in Network Function Control

What’s missing?The ability to simultaneously…

Meet SLAs– E.g., ensure deployment throughput > 1Gpbs

Ensure accuracy/efficacy– E.g., IDS raises alerts for all HTTP flows

containing known malware packages

Keep costs low, efficiency high– E.g., shut down idle resources when not needed

… needs more control than NFV + SDN

Page 7: OpenNF : Enabling Innovation in Network Function Control

7

Example

Not moving flows bottleneck persists SLAs!

Naively move flows no associated state Accuracy!

Scale down: wait for flow drain out Efficiency!

Transfer live state while updating n/w forwarding

Firewall CachingProxy

IntrusionPrevention

Web ServerHomeUsers

Scaling in/outsustain thr’put at low $

Page 8: OpenNF : Enabling Innovation in Network Function Control

OpenNF

Quick and safe dynamic reallocation of processing across NF instances

Quick: Any reallocation decision invoked any time finishes predictably soon

Safe: Key semantics for live state transfers No state updates missed, order preserved, etc.

Rich distributed processing based applications toflexibly meet cost, performance, security objectives

Page 9: OpenNF : Enabling Innovation in Network Function Control

Outline

Overview and challenges

Design– Requirements– Key ideas– Applications

Evaluation

Page 10: OpenNF : Enabling Innovation in Network Function Control

OpenNFOpenNF Controller

SDN Controller

Elas

tic sc

alin

g

Hot s

tand

by

Dyna

mic

en

hanc

emen

t

MBox MBox

NF APIs and control plane for joint control over internal NF

state and network forwarding state

Overview and challenges

Reallocationoperations

State import/export

Coordination w/ network

Page 11: OpenNF : Enabling Innovation in Network Function Control

11

1: Many NFs, minimal changes– Avoid forcing NFs to use special state structures/

allocation/access strategies Simple NF-facing API; relegates actions to NFs

2: Reigning in race conditions– Packets may arrive while state is being moved; Updates

lost or re-ordered; state inconsistency Lock-step NF state/forwarding update

3: Bounding overhead– State transfers impose CPU, memory, n/w overhead Applications control granularity, guarantees

ChallengesOverview and challenges

Page 12: OpenNF : Enabling Innovation in Network Function Control

12

State created or updated by an NF applies to either a single flow or a collection of flows

Classify state based on scope

Flow provides a natural way for reasoning about which state to move, copy, or share

NF state taxonomy

Connection

Connection

TcpAnalyzer

HttpAnalyzer

TcpAnalyzer

HttpAnalyzer

Per-flow state

ConnCount

Multi-flow state

All-flows stateStatistics

C1: Minimal NF Changes

Page 13: OpenNF : Enabling Innovation in Network Function Control

13

API to export/import stateThree simple functions: get, put, delete(f)– Version for each scope (per-, multi-, all-flows)– Filter f defined over packet header fields

NFs responsible for– Identifying and providing all state matching a filter– Combining provided state with existing state

No need to expose internal state organization No changes to conform to a specific allocation strategy

C1: Minimal NF Changes

Page 14: OpenNF : Enabling Innovation in Network Function Control

14

Operations

move flow-specific NF state at various granularities

copy and combine, or share, NF state pertaining to multiple flows

Semantics for move (loss-free, order-preserving), copy/share (various notions of consistency)

“Reallocate port 80 to NF2”

Page 15: OpenNF : Enabling Innovation in Network Function Control

15

Move

OpenNF Controller

Control Application

move (port=80,Inst1,Inst2,LF&OP)

getPerflow(port=80)[ID1,Chunk1] putPerflow(ID1,Chunk1)

delPerflow(port=80)[ID2,Chunk2] putPerflow(ID2,Chunk2)

forward(port=80,Inst2)

SDN Controller

Inst2Inst1

Page 16: OpenNF : Enabling Innovation in Network Function Control

Load-balanced network monitoring

vulnerable.bro reconstruct MD5’s for HTTP responses– Not robust to losses

weird.bro SYN and data packets seen in unexpected order – Not robust to reordering

HTTP req HTTP req

vulnerable.broweird.bro

move

C2: Race conditions

Moving live state: some updates (packets) may be lost, or arrive out of order

Page 17: OpenNF : Enabling Innovation in Network Function Control

17

• Packets may arrive during a move operation

• Fix: suspend traffic flow and buffer packets– May last 100s of ms– Packets in-transit when buffering starts are dropped

Lost updates during move

R1B1

B2

B2

Inst2 is missing updates

Inst2Inst1

move(blue,Inst1 ,Inst2 )Loss-free: All state updates due to packet processing should be reflected in the transferred state, and all

packets the switch receives should be processed

Key idea: Event abstraction to prevent, observe and sequence state updates

C2: Race conditions

Page 18: OpenNF : Enabling Innovation in Network Function Control

1. enableEvents(blue,drop) on Inst1;2. get/delete on Inst1 3. Buffer events at controller4. put on Inst2

5. Flush packets in events to Inst2

6. Update forwarding

Controller

Loss-free move using events

18

R1 Inst2Inst1

B3B1

dropB1 B1,B2B2

B2

B1,B2,B3

C2: Race conditions

Stop processing; buffer at controller

Page 19: OpenNF : Enabling Innovation in Network Function Control

19

Order-preserving: All packets should be processed in the order they were forwarded

to the NF instances by the switch

Controller Switch Inst2

5. Flush buffer

6. Issue fwd update

Inst1

B2

B2B3

B4B3

B3

B3

B2

B4

B3

C2: Race conditions

Re-ordering of updates

Two-stage update to track last packet at NF1

Page 20: OpenNF : Enabling Innovation in Network Function Control

Flush packets in events to Inst2 w/ “do not buffer”

enableEvents(blue,buffer) on Inst2

Forwarding update: send to Inst1 & controller

Wait for packet from switch (remember last)

Forwarding update: send to Inst2

Wait for event from Inst2 for last Inst1 packet

Release buffer of packets on Inst2

Order-preserving move

20

R1drop B1B1,B2

B2

B1,B2,B3buf

B3

B3B3B4

B1,B2,B3, B4

C2: Race conditions

Track last packet; sequence updates

Page 21: OpenNF : Enabling Innovation in Network Function Control

Bounding overheadApps decide, based on NF type, objective:

granularity of reallocation operationsmove, copy or sharefilter, scope

guarantees desiredmove: no-guarantee, loss-free, loss-free + order-preservingcopy: no or eventual consistencyshare: strong or strict consistency

C3: Applications

Page 22: OpenNF : Enabling Innovation in Network Function Control

HTTP req HTTP req

Load-balanced network monitoring

movePrefix(prefix,oldInst,newInst): copy(oldInst,newInst,{nw_src:prefix},multi) move(oldInst,newInst,{nw_src:prefix},per,LF+OP) while (true): sleep(60) copy(oldInst,newInst,{nw_src:prefix},multi) copy(newInst,oldInst,{nw_src:prefix},multi)

scan.brovulnerable.broweird.bro

C3: Applications

scan.bro

scan.bro

vuln.bro

weird.bro

Page 23: OpenNF : Enabling Innovation in Network Function Control

23

Implementation

OpenNF Controller (≈4.7K lines of Java)– Written atop Floodlight

Shared NF library (≈2.6K lines of C)

Modified NFs (4-10% increase in code)– Bro (intrusion detection)– PRADS (service/asset detection)– iptables (firewall and NAT)– Squid (caching proxy)

Testbed: HP ProCurve connected to 4 servers

Impl & Eval

Page 24: OpenNF : Enabling Innovation in Network Function Control

24

Microbenchmarks: NFs

Serialization/deserialization costs dominate

Cost grows with state complexity

Impl & Eval

Page 25: OpenNF : Enabling Innovation in Network Function Control

Average Maximum0

50

100

150

200

250

Per-

pack

et La

tenc

y In

crea

se (m

s)

NG NG PL LF PL LF PL+ER

OP PL+ER

050

100150200250300350400450

Mov

e Ti

me

(ms)

• State: 500 flows in PRADS; Traffic: 5000 pkts/sec• Move per-flow state for all flows

Microbenchmarks: operations

25

Packetsdropped!

686 462

881 packetsin events

Guarantees come at a cost!Copy (MF state) – 111msShare (strong) – 13ms per pkt

D = f(load,state,speed)

Impl & Eval

1120 packets buffered at Inst2

838 packetsin events

+

Page 26: OpenNF : Enabling Innovation in Network Function Control

Macrobenchmarks: end-to-end benefits

Load balanced monitoring with Bro IDS– Load: replay cloud trace at 10K pkts/sec– At 180 sec: move HTTP flows (489) to new Bro– At 360 sec: move HTTP flows back to old Bro

OpenNF scaleup: 260ms to move (optimized, loss-free)– Log entries equivalent to using a single instance

VM replication: 3889 incorrect log entries– Cannot support scale-down

Forwarding control only: scale down delayed by more than 1500 seconds

Impl & Eval

Page 27: OpenNF : Enabling Innovation in Network Function Control

27

Wrap up!

• OpenNF enables rich control of the packet processing happening across instances of an NF

• Quick, key safety guarantees,

• Low overhead, minimal NF modifications

http://opennf.cs.wisc.edu

Page 28: OpenNF : Enabling Innovation in Network Function Control

Backup

Page 29: OpenNF : Enabling Innovation in Network Function Control

29

Copy and shareUsed when multiple instances need to access a

particular piece of state

Copy – eventual consistency– Issue once, periodically, based on events, etc.

Share – strong– All packets reaching NF instances trigger an event– Packets in events are released one at a time– State is copied between packets

C2: Race conditions

Page 30: OpenNF : Enabling Innovation in Network Function Control

Example app: Selectively invoking advanced remote processing

enhanceProcessing(flowid,locInst): move(locInst,cloudInst,flowid,per,LF)

scan.brovulnerable.broweird.bro

scan.brovulnerable.broweird.brodetect-MHR.bro!

C3: Applications

HTTP req HTTP req

Enterprise n/w

Internet

checks md5sum of HTTP reply

No need for: (1) order-preservation (2) copying multi-flow state

Page 31: OpenNF : Enabling Innovation in Network Function Control

31

Existing approaches• Control over routing (PLayer, SIMPLE, Stratos)• Virtual machine replication– Unneeded state => incorrect actions– Cannot combine => limited rebalancing

• Split/Merge and Pico/Replication– Address specific problems => limited suitability– Require NFs to create/access state in specific

ways => significant NF changes

Page 32: OpenNF : Enabling Innovation in Network Function Control

32

Controller performance

Improve scalability with P2P state transfers

Page 33: OpenNF : Enabling Innovation in Network Function Control

Macrobenchmarks: Benefits of Granular Control

Two clients make HTTP requests– 40 unique URLs

Initially, both go to Squid120s later reassign client 1 to Squid2

Metric Ignore Copy-client Copy-all

Hits @ S1 117 117 117

Hits @ S2 crashed 39 50

State transferred

0 4MB 54MB

Granularitiesof copy

Impl & Eval