Transcript
Page 1: Participatory Networking: An API for Application Control of SDNs

1

Participatory Networking:

An API for Application Control of SDNs

Andrew Ferguson, Arjun Guha, Chen Liang,Rodrigo Fonseca, and Shriram Krishnamurthi

Cornell

Page 2: Participatory Networking: An API for Application Control of SDNs

2

Participatory Networking

Page 3: Participatory Networking: An API for Application Control of SDNs

3

Motivation

2. Ekiga3. ZooKeeper4. Hadoop

1. SSHGuard

Page 4: Participatory Networking: An API for Application Control of SDNs

4

2. Ekiga3. ZooKeeper4. Hadoop

1. SSHGuard

blocks hosts in response to login attempts

uses knowledge from host OS

prefers to deny traffic close to source

SSHGuarSSHGuardd

SSHGuarSSHGuardd

SSHGuarSSHGuarddSSHGuarSSHGuar

dd

SSHGuarSSHGuardd

SSHGuarSSHGuardd

SSHGuarSSHGuardd

Page 5: Participatory Networking: An API for Application Control of SDNs

5

2. Ekiga3. ZooKeeper4. Hadoop

1. SSHGuard

open source VOIP client

network needs dictated by end-user

prefers to reserve bandwidth

EkigaEkiga

EkigaEkiga

Page 6: Participatory Networking: An API for Application Control of SDNs

6

2. Ekiga3. ZooKeeper4. Hadoop

1. SSHGuard

Paxos-like coordination service

network needs dictated by placement

prefers high-priority switch queues

ZooKeepeZooKeeperr ZooKeepeZooKeepe

rr

ZooKeepeZooKeeperr

Page 7: Participatory Networking: An API for Application Control of SDNs

7

2. Ekiga3. ZooKeeper4. Hadoop

1. SSHGuard

open source data processing platform

network weights known by scheduler

prefers to reserve bandwidth

HadoopHadoop

HadoopHadoop

HadoopHadoop

HadoopHadoop

HadoopHadoop

HadoopHadoop

HadoopHadoop

HadoopHadoop

HadoopHadoop

HadoopHadoop

HadoopHadoop

HadoopHadoop

Page 8: Participatory Networking: An API for Application Control of SDNs

8

SDN ControllersSDN Controllers

SSHGuarSSHGuardd

SSHGuarSSHGuarddSSHGuardSSHGuard EkigaEkiga ZooKeepeZooKeepe

rrHadoopHadoopEkigaEkiga

Page 9: Participatory Networking: An API for Application Control of SDNs

9

Page 10: Participatory Networking: An API for Application Control of SDNs

10

1. decompose control and visibility2. resolve conflicts between requests

Challenges

Page 11: Participatory Networking: An API for Application Control of SDNs

11

Participatory

Networking

Page 12: Participatory Networking: An API for Application Control of SDNs

12

PANE

Participatory

Networking1. Requests 2. Hints3. Queries

Page 13: Participatory Networking: An API for Application Control of SDNs

13

Participatory

Networking• End-user API for SDNs• Exposes existing mechanisms• No effect on

unmodified applications

Page 14: Participatory Networking: An API for Application Control of SDNs

14

Decomposing Control

Page 15: Participatory Networking: An API for Application Control of SDNs

15

Shares

Hadoop

Page 16: Participatory Networking: An API for Application Control of SDNs

16

root

root adf

bandwidth100Mbps

bandwidth50Mbps

Share Tree

Page 17: Participatory Networking: An API for Application Control of SDNs

17

PANE

Reserve 2 Mbpsfrom now to +5min?

Yes

This traffic will be

short and bursty

OKHow much web trafficin the last hour?

67,560 bytes

Page 18: Participatory Networking: An API for Application Control of SDNs

18

bandwidth100Mbps

bandwidth100Mbps

bandwidth100Mbps

PANE

Current: 0 Mbps Current: 0 Mbps

Current: 0 Mbps

Reserve 80 Mbps?

Current: 80 Mbps

Yes

Current: 80 Mbps

Res

erve

50

Mbp

s?

No

ShareA

ShareB

Page 19: Participatory Networking: An API for Application Control of SDNs

19

Resolving Conflicts

Page 20: Participatory Networking: An API for Application Control of SDNs

20

root

root adf

bandwidth100Mbps

bandwidth50Mbps

Share Tree

Page 21: Participatory Networking: An API for Application Control of SDNs

21

(dstPort = 22, Deny)

(dstIP=10.0.0.2, GMB=30)

(dstPort=80, GMB=10) (srcIP=10.0.0.1, Allow)

Policy Trees

(srcIP=10.0.0.2, GMB=20)

Page 22: Participatory Networking: An API for Application Control of SDNs

22

(dstPort = 22, Deny)

(dstIP=10.0.0.2, GMB=30)

(dstPort=80, GMB=10) (srcIP=10.0.0.1, Allow)

Packet:

src 10.0.0.1

dst 10.0.0.2:80

Packet:

src 10.0.0.1

dst 10.0.0.2:80

Policy Trees

(srcIP=10.0.0.2, GMB=20)

Page 23: Participatory Networking: An API for Application Control of SDNs

23

(dstPort = 22, Deny)

(dstIP=10.0.0.2, GMB=30)

(dstPort=80, GMB=10) (srcIP=10.0.0.1, Allow)

Packet:

src 10.0.0.1

dst 10.0.0.2:80

Packet:

src 10.0.0.1

dst 10.0.0.2:80

Allow?++SS

GMB=10GMB=30

0 ++PP

GMB=30

Packet Evaluation

(srcIP=10.0.0.1, GMB=20) GMB=10

++DD

HierarchicalFlow Tables

Page 24: Participatory Networking: An API for Application Control of SDNs

24

GMB=10GMB=30

GMB=30

Conflict Resolution

Only Requirements:Associative, 0-

identity

GMB=10(dstPort=80, GMB=10)

Allow(srcIP=10.0.0.1,

Allow)

(srcIP=10.0.0.1, GMB=20)

(dstIP=10.0.0.2, GMB=30)

++PP

++DD++

SS

HierarchicalFlow Tables

Page 25: Participatory Networking: An API for Application Control of SDNs

25

++DD

++PP

++SS

Sibling

Parent-Sibling

In nodeD and S identical.

Deny overrides Allow.GMB combines as max

Rate-limit combines as min

Child overrides Parentfor Access Control

GMB combines as maxRate-limit combines as min

PANE’s Conflict Resolution Operators

Page 26: Participatory Networking: An API for Application Control of SDNs

26

Implementation

Page 27: Participatory Networking: An API for Application Control of SDNs

27

(dstPort = 22, Deny)

(dstIP=10.0.0.2, G

MB=30)

(dstPort=80, GMB=10)

(srcIP=10.0.0.1, Allow)

(dstPort = 22, Deny)

(dstIP=10.0.0.2, G

MB=30)

(dstPort=80, GMB=10)

(srcIP=10.0.0.1, Allow)

(dstPort = 22, Deny)

(dstIP=10.0.0.2, G

MB=30)

(dstPort=80, GMB=10)

(srcIP=10.0.0.1, Allow)

(dstPort = 22, Deny)

(dstIP=10.0.0.2, G

MB=30)

(dstPort=80, GMB=10)

(srcIP=10.0.0.1, Allow)

(dstPort = 22, Deny)

(dstIP=10.0.0.2, G

MB=30)

(dstPort=80, GMB=10)

(srcIP=10.0.0.1, Allow)PA

NE

Page 28: Participatory Networking: An API for Application Control of SDNs

28

(dstPort = 22, Deny)

(dstIP=10.0.0.2, GMB=30)

(dstPort=80, GMB=10) (srcIP=10.0.0.1, Allow)

(srcIP=10.0.0.2, GMB=20)

Page 29: Participatory Networking: An API for Application Control of SDNs

29

PANE

Page 30: Participatory Networking: An API for Application Control of SDNs

30

PANE

Page 31: Participatory Networking: An API for Application Control of SDNs

31

PANE

Page 32: Participatory Networking: An API for Application Control of SDNs

32

PANE

Page 33: Participatory Networking: An API for Application Control of SDNs

33

24Mbps5Mbps8Mbps24Mbps

PANE

Page 34: Participatory Networking: An API for Application Control of SDNs

34

24Mbps

PANE

Page 35: Participatory Networking: An API for Application Control of SDNs

35

PANE

0.6

0.6

Page 36: Participatory Networking: An API for Application Control of SDNs

36

Evaluation

Page 37: Participatory Networking: An API for Application Control of SDNs

37

Page 38: Participatory Networking: An API for Application Control of SDNs

38

Evaluation

2. Ekiga3. ZooKeeper4. Hadoop

1. SSHGuard

access controlbandwidth

reservationsqueues for low latency

centralized traffic weights

Page 39: Participatory Networking: An API for Application Control of SDNs

39

Three equal-sized sort jobs:•Two Low Priority with 25% weight•One High Priority with 50% weight

Dynamically apply QoS to High Priority flows using PANE.

PANE2

2Hosts

Page 40: Participatory Networking: An API for Application Control of SDNs

40

Hadoop’s OpenFlow rules

PANE2

2Hosts

Page 41: Participatory Networking: An API for Application Control of SDNs

41

Conclusion

1.For applications that know what they want from the network

• Allows these applications to co-exist

Page 42: Participatory Networking: An API for Application Control of SDNs

42

Andrew [email protected]

Page 43: Participatory Networking: An API for Application Control of SDNs

43

Andrew [email protected]

• Arjun Guha

• Chen Liang

• Rodrigo

Fonseca

• Shriram

Krishnamurthi

Co-

auth

or

s

pane.cs.brown.edu

Brown ↦ Cornell ↦ UMass Amherst

Brown ↦ Duke

Brown

Brown

Page 44: Participatory Networking: An API for Application Control of SDNs

44

BackupSlides

Page 45: Participatory Networking: An API for Application Control of SDNs

45

Proof of Correctness

Page 46: Participatory Networking: An API for Application Control of SDNs

46

Packet:

src 10.0.0.1

dst 10.0.0.2:80

Packet:

src 10.0.0.1

dst 10.0.0.2:80(dstPort = 22, Deny)

(dstIP=10.0.0.2, GMB=30)

(dstPort=80, GMB=10) (srcIP=10.0.0.1, Allow)

AllowGMB=10

++SS

GMB=10GMB=30++PP

GMB=30

Hierarchical Flow Tables

Page 47: Participatory Networking: An API for Application Control of SDNs

47

Compiler Correctness

Page 48: Participatory Networking: An API for Application Control of SDNs

48

Coq Proof Assistant

Page 49: Participatory Networking: An API for Application Control of SDNs

49

Packet:

src 10.0.0.1

dst 10.0.0.2:80

Packet:

src 10.0.0.1

dst 10.0.0.2:80GMB 30compile

Theorem

Page 50: Participatory Networking: An API for Application Control of SDNs

50

Protocol

Page 51: Participatory Networking: An API for Application Control of SDNs

51

NewShare aBW for (user=Alice) [reserve <=

10Mb]on rootShare.

PANE

OK

Grant aBW to Alice.

OK

reserve(user=Alice,dstPort=80) = 5Mb on aBW

from now to +10min.

reserve(user=Alice,dstPort=80) = 5Mb on aBW

from now to +10min.

reserve(user=Alice,dstPort=80) = 5Mb on aBW

from now to +10min.

NewShare aBW for (user=Alice) [reserve <=

10Mb]on rootShare.

Root

Alice

Page 52: Participatory Networking: An API for Application Control of SDNs

52

PANE

reserve(user=Alice,dstPort=80) = 5Mb on aBW

from now to +10min.

Page 53: Participatory Networking: An API for Application Control of SDNs

53

PANE

reserve(user=Alice,dstPort=80) = 5Mb on aBW

from now to +10min.

Page 54: Participatory Networking: An API for Application Control of SDNs

54

PANE

reserve(user=Alice,dstPort=80) = 5Mb on aBW

from now to +10min.

Page 55: Participatory Networking: An API for Application Control of SDNs

55

PANE

reserve(user=Alice,dstPort=80) = 5Mb on aBW

from now to +10min.

Page 56: Participatory Networking: An API for Application Control of SDNs

56

PANE

reserve(user=Alice,dstPort=80) = 5Mb on aBW

from now to +10min.NO

reserve(user=Alice,dstPort=80) = 5Mb on aBWfrom +20min to +30min.

Alice

Page 57: Participatory Networking: An API for Application Control of SDNs

57

PANE

reserve(user=Alice,dstPort=80) = 5Mb on aBWfrom +20min to +30min.

Page 58: Participatory Networking: An API for Application Control of SDNs

58

PANE

reserve(user=Alice,dstPort=80) = 5Mb on aBWfrom +20min to +30min.

Page 59: Participatory Networking: An API for Application Control of SDNs

59

PANE

reserve(user=Alice,dstPort=80) = 5Mb on aBWfrom +20min to +30min.

Page 60: Participatory Networking: An API for Application Control of SDNs

60

PANE

reserve(user=Alice,dstPort=80) = 5Mb on aBW

from now to +10min.NO

reserve(user=Alice,dstPort=80) = 5Mb on aBWfrom +20min to +30min.

OKAlice

Page 61: Participatory Networking: An API for Application Control of SDNs

61

NewShare aAC for (dstHost=10.0.0.2) [deny =

True]on rootShare.

PANE

OK

Grant aAC to Alice.

OK

10.0.0.2Alice

Root

Page 62: Participatory Networking: An API for Application Control of SDNs

62

10.0.0.3 Eve

PANE

10.0.0.2

deny(dstHost=10.0.0.2, srcHost=10.0.0.3) on

aACfrom now to +5min.

OK

Alice

Page 63: Participatory Networking: An API for Application Control of SDNs

63

Netflix

Page 64: Participatory Networking: An API for Application Control of SDNs

64

Page 65: Participatory Networking: An API for Application Control of SDNs

6565

Page 66: Participatory Networking: An API for Application Control of SDNs

66

Page 67: Participatory Networking: An API for Application Control of SDNs

67

Page 68: Participatory Networking: An API for Application Control of SDNs

68

Page 69: Participatory Networking: An API for Application Control of SDNs

69

Datacenter

Page 70: Participatory Networking: An API for Application Control of SDNs

70

Based on “Delusional Boot: Securing Cloud Hypervisors without Massive Re-Engineering” (EuroSys 2012)

ProductionPlatform

BootService

Page 71: Participatory Networking: An API for Application Control of SDNs

71

Based on “Delusional Boot: Securing Cloud Hypervisors without Massive Re-Engineering” (EuroSys 2012)

ProductionPlatform

BootService

Page 72: Participatory Networking: An API for Application Control of SDNs

72

Based on “Delusional Boot: Securing Cloud Hypervisors without Massive Re-Engineering” (EuroSys 2012)

ProductionPlatform

BootService

Page 73: Participatory Networking: An API for Application Control of SDNs

73

Based on “Delusional Boot: Securing Cloud Hypervisors without Massive Re-Engineering” (EuroSys 2012)

ProductionPlatform

BootService

Page 74: Participatory Networking: An API for Application Control of SDNs

74

Enterprise

Page 75: Participatory Networking: An API for Application Control of SDNs

75

Page 76: Participatory Networking: An API for Application Control of SDNs

76

Page 77: Participatory Networking: An API for Application Control of SDNs

77

Page 78: Participatory Networking: An API for Application Control of SDNs

78

Page 79: Participatory Networking: An API for Application Control of SDNs

79

A problem in the datacenter

Page 80: Participatory Networking: An API for Application Control of SDNs

80

Page 81: Participatory Networking: An API for Application Control of SDNs

81

Page 82: Participatory Networking: An API for Application Control of SDNs

82

Participatory

Networking

Page 83: Participatory Networking: An API for Application Control of SDNs

8383Ken Thompson & Dennis Ritchie

Page 84: Participatory Networking: An API for Application Control of SDNs

Jon Postel

Page 85: Participatory Networking: An API for Application Control of SDNs

8585

Page 86: Participatory Networking: An API for Application Control of SDNs

86

Safe?Secure? Fair?Loop freedom

?

Participatory

NetworkingBlack holes?


Recommended