participatory networking: an api for application control of sdns

86
1 An API for Application Control of SDNs Andrew Ferguson, Arjun Guha, Chen Liang, Rodrigo Fonseca, and Shriram Krishnamurthi Cornell

Upload: axl

Post on 02-Feb-2016

106 views

Category:

Documents


0 download

DESCRIPTION

Participatory Networking: An API for Application Control of SDNs. Andrew Ferguson, Arjun Guha, Chen Liang, Rodrigo Fonseca, and Shriram Krishnamurth i. Cornell. Participatory Networking. 1. SSHGuard. 2. Ekiga. 3. ZooKeeper. 4. Hadoop. Motivation. 1. SSHGuard. - PowerPoint PPT Presentation

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?