22
UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Embed Size (px)

Citation preview

Page 1: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

UC Berkeley

CLayerPacket classification with explicit coordinationMosharaf Chowdhury withSameer Agarwal, Dilip Joseph, and Ion Stoica

Page 2: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Packet classification is everywhere

Motivation

INTERNET

Link (2.5)

Switching, MPLS

Network Forwarding

Transport

Filtering, IntServ, DiffServ

Application

Load balancing, Intrusion detection 2January 22, 2010

Google GRAD CS Forum @ Mountainview

Page 3: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Existing approaches are point solutions for specific layer/service

Packet classification is expensive»Computation and memory requirements»Power hungry

Configuration complexity»Lack of coordination between entities involved

Semantic gap

Problems11

22 33

44

55

3January 22, 2010Google GRAD CS Forum @

Mountainview

Page 4: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

CLayer is a cross-layer classification primitive»Generic mechanism to configure and implement

capability-driven classification offloading»Explicit coordination between classifiers and helpers

Label-based per-flow classification»Labels are verifiable, confidential, and non-

transferable

“Classify once, verify thereafter”

“Classify once, verify thereafter”

Solution

4January 22, 2010Google GRAD CS Forum @

Mountainview

Page 5: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

OutlineCLayer classification model

Fate-carrying labels (FCLs)

Implementation

Results

5January 22, 2010Google GRAD CS Forum @

Mountainview

Page 6: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Classification model

6January 22, 2010Google GRAD CS Forum @

Mountainview

Page 7: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Control plane

Web server 1

Web server 2

Load balancerQoS enabled router

CapabilityTCPFLow, WebSess ClassReq QoS:q1

ClassReq QoS:q1, WebSess:1

ClassRsp QoS:q1, WebSess:1

End host A

2a2a

11

33

2b2b

7January 22, 2010Google GRAD CS Forum @

Mountainview

Page 8: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Data plane

Web server 1

Web server 2

Load balancerQoS enabled routerEnd host

A

QoS:q1, WebSess:1PayloadQoS:q1, WebSess:1Payload

4a4a

4b4b

8January 22, 2010Google GRAD CS Forum @

Mountainview

Page 9: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Fate-carrying labels

9January 22, 2010Google GRAD CS Forum @

Mountainview

Page 10: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

FCL basicsA label in CLayer is an opaque bag of bits»Issued by a classifier for a particular flow»Meaningful only to the issuer»‹label → action› lookup

A fate-carrying label carries the action itself»No ‹label → action› lookup»No states in classifiers

10January 22, 2010Google GRAD CS Forum @

Mountainview

Page 11: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Authenticity and Integrity»Verifiable and non-transferable»Unforgeable and single-use only

Confidentiality»Impossible to infer

Performance»Not better off without CLayer

HMACChecksum

HMACChecksum

Requirements

11

ObfuscationPeriodic

Invalidation

ObfuscationPeriodic

Invalidation

Line-speed hashing

Low overhead

Line-speed hashing

Low overhead

January 22, 2010Google GRAD CS Forum @

Mountainview

Page 12: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

PlacementApplication

Layer

Transport Layer

Network Layer

CLayer

FCLFCL

4 Bits 32 Bits

HANDLEMSG

8 BitsRESIG

N

INFO 0

INFO (N – 1)

LEN

4 Bits 32 Bits

ID

HMAC (5-tuple, ACTION, SECRET)

CHECKSUM

16 Bits

TYPE

ACTION

CLayer HeaderCLayer Header

12January 22, 2010Google GRAD CS Forum @

Mountainview

Page 13: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Implementation

13January 22, 2010Google GRAD CS Forum @

Mountainview

Page 14: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Implementation statsC++ Implementation using user level Click software router

Core components: » CLayer socket library and daemon (4025 lines)» Layer 4 firewall (308 lines)» Layer 4 load balancer (190 lines)

Ported applications: » lighttpd, httperf, wget, nuttcp, elinks (< 50

lines)

14January 22, 2010Google GRAD CS Forum @

Mountainview

Page 15: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Results

15January 22, 2010Google GRAD CS Forum @

Mountainview

Page 16: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

OverheadsCLayer overheads at helpers:

»State: ~10 bytes per connection» Processing: less than 1 μs

At classifiers:» No state overheads» Processing: varies in s/w and h/w

implementations

Per-packet overheads:» Proportional to the number of labels» Potential bottleneck

16January 22, 2010Google GRAD CS Forum @

Mountainview

Page 17: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Performance

attractivenessthreshold

attractivenessthreshold

17January 22, 2010Google GRAD CS Forum @

Mountainview

Page 18: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Multiple classifiers

hashoverhead

hashoverhead

18

software implementation

overhead

software implementation

overhead

(Each with 7500 rules)

January 22, 2010Google GRAD CS Forum @

Mountainview

Page 19: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

SummaryPacket classification requires a dedicated layer

CLayer provides significant performance gain

» 2-4 times increase in classifier throughput» Additional ~100% increase in throughput in trusted

domains or with line-speed h/w hashing

CLayer adoption requires minimal change»Most suitable for controlled environments like data

center and enterprise networks

19January 22, 2010Google GRAD CS Forum @

Mountainview

Page 20: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Questions

???

20January 22, 2010Google GRAD CS Forum @

Mountainview

Page 21: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

Backup

21January 22, 2010Google GRAD CS Forum @

Mountainview

Page 22: UC Berkeley CLayer Packet classification with explicit coordination Mosharaf Chowdhury with Sameer Agarwal, Dilip Joseph, and Ion Stoica

CLayer handshaking

End host A

Router E

Capability: [A,TCPFlow,Label]CL_SYN

1 2Capability: [A,TCPFlow,Label]

CL_SYN

ClassReq: [E, A, TCPFlow,Label:q1]

3Capability: [B,TCPFlow,Label]

CL_SYNACK

EchoReq: [E, A, TCPFlow,Label:q1]

4Capability: [B,TCPFlow,Label]

CL_SYNACK

EchoReq: [E, A, TCPFlow,Label:q1]

ClassReq: [E, B, TCPFlow,Label:q2]

5 CL_ACK1

EchoReq: [E, B, TCPFlow,Label:q2]Results: [E, TCPFlow,Label:q1]

6 CL_ACK1

EchoReq: [E, B, TCPFlow,Label:q2]Results: [E, TCPFlow,Label:q1]

Data

Pla

ne

End host B

DATAResults: [E, TCPFlow,Label:q1]

DATAResults: [E, TCPFlow,Label:q2]

7 CL_ACK2

Results: [E, TCPFlow,Label:q2]8 CL_ACK2

Results: [E, TCPFlow,Label:q2]

Contr

ol

Pla

ne

22January 22, 2010Google GRAD CS Forum @

Mountainview