software defined networking CS 6410 Fall 2017 Eric Campbell and - - PowerPoint PPT Presentation

software defined networking
SMART_READER_LITE
LIVE PREVIEW

software defined networking CS 6410 Fall 2017 Eric Campbell and - - PowerPoint PPT Presentation

software defined networking CS 6410 Fall 2017 Eric Campbell and Rolph Recto software defined networking software defined networking (OpenFlow, originally) Stanford computer scientist Nick McKeown and colleagues developed a standard called


slide-1
SLIDE 1

software defined networking

CS 6410 Fall 2017 Eric Campbell and Rolph Recto

slide-2
SLIDE 2

software defined networking

slide-3
SLIDE 3

software defined networking

(OpenFlow, originally)

slide-4
SLIDE 4
slide-5
SLIDE 5

“Stanford computer scientist Nick McKeown and colleagues developed a standard called OpenFlow that essentially opens up the Internet to researchers, allowing them to define data flows using software–a sort of ‘software-defined networking.’ Installing a small piece of OpenFlow firmware (software embedded in hardware) gives engineers access to flow tables, rules that tell switches and routers how to direct network traffic.”

slide-6
SLIDE 6
slide-7
SLIDE 7

control plane routing isolation traffic engineering data plane packet forwarding packet scheduling

slide-8
SLIDE 8

traditional networking

slide-9
SLIDE 9

SDN

slide-10
SLIDE 10

software defined networking

(programmable)

slide-11
SLIDE 11

Active Networks Separating the Data and Control Planes OpenFlow SDN Today

slide-12
SLIDE 12

1995 2000 2005 2010 2015 Tennenhouse & Wetherall Smart Packets NetScript ANTS

slide-13
SLIDE 13

use pulls technology pushes

network ossification desire for unified middlebox interface

slide-14
SLIDE 14

use pulls technology pushes

lower compute costs advances in programming languages DARPA Active Networks

slide-15
SLIDE 15

programmable switches

slide-16
SLIDE 16

sniff.java

slide-17
SLIDE 17

srcIP count with sniff.java installed, switch maintains table of packet counts by source IP

slide-18
SLIDE 18

srcIP count 10.0.0.1 1

...

slide-19
SLIDE 19

srcIP count 10.0.0.1 1 10.0.0.2 1

...

slide-20
SLIDE 20

capsules

slide-21
SLIDE 21

packet contains instructions to push switch info at every hop

Tiny Packet Programs Jeyakumar et al, 2014 In-Band Network Telemetry Kim et al, 2016

...

slide-22
SLIDE 22

switch ID egress time 2 1510765743

...

slide-23
SLIDE 23

switch ID egress time 3 1510765745 2 1510765743

...

slide-24
SLIDE 24

whither active networks?

slide-25
SLIDE 25

performance and security concerns no “killer app” no practical deployment plan

whither active networks?

“The misconception that packets would necessarily carry Java code written by end users made it possible to dismiss active network research as too far removed from real networks and inherently unsafe.”

“The Road to SDN,” Feamster et al 2014

slide-26
SLIDE 26

performance and security concerns no “killer app” no practical deployment plan “The misconception that packets would necessarily carry Java code written by end users made it possible to dismiss active network research as too far removed from real networks and inherently unsafe.”

whither active networks?

“The Road to SDN,” Feamster et al 2014

slide-27
SLIDE 27

1995 2000 2005 2010 2015 Tennenhouse & Wetherall Smart Packets NetScript SIGCOMM 2014 Tiny Packet Programs In-Band Network Telemetry Whippersnapper P4FPGA ANTS

slide-28
SLIDE 28

Active Networks Separating the Data and Control Planes OpenFlow SDN Today

slide-29
SLIDE 29

1995 2000 2005 2010 2015 PCE 4D RCP ForCES protocol Tempest SoftRouter IRSCP Ethane

slide-30
SLIDE 30

1995 2000 2005 2010 2015 PCE 4D RCP ForCES protocol Tempest SoftRouter IRSCP Ethane

slide-31
SLIDE 31

use pulls technology pushes

burgeoning network speeds insufficient network reliability specialized services (VPNs)

slide-32
SLIDE 32
  • pen interface between

control and data planes logically centralized control

use pulls technology pushes

slide-33
SLIDE 33

...

1μs

Open Shortest Path First (OSPF)

slide-34
SLIDE 34

1μs 2μs 10μs 2μs 5μs 1μs 20μs 3μs 1μs

OSPF

slide-35
SLIDE 35

1μs 2μs 10μs 2μs 5μs 1μs 20μs 3μs 1μs

... ...

OSPF

slide-36
SLIDE 36

... ... ... ...

1μs 2μs 10μs 2μs 5μs 1μs 20μs 3μs 1μs

OSPF

slide-37
SLIDE 37

ForCES Network Entity (NE) Control Element (CE) Forwarding Entity (FE)

SoftRouter

slide-38
SLIDE 38

SoftRouter

slide-39
SLIDE 39

1μs 2μs 10μs 2μs 5μs 1μs 20μs 3μs 1μs Network Entity (NE) Control Element (CE) Forwarding Entity (FE)

SoftRouter

slide-40
SLIDE 40

1μs 2μs 10μs 2μs 5μs 1μs 20μs 3μs 1μs

A B

Shortest Path Routing

slide-41
SLIDE 41

vendors didn’t adopt ForCES (and others) not general enough no practical deployment plan

whither SoftRouter (and others)?

slide-42
SLIDE 42

Active Networks Separating the Data and Control Planes OpenFlow SDN Today

slide-43
SLIDE 43

1995 2000 2005 2010 2015 OpenFlow NOX Ethane

slide-44
SLIDE 44

OpenFlow: enabling innovation in campus networks

Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru Parulkar, Larry Peterson, Jennifer Rexford, Scott Shenker, Jonathan Turner

SIGCOMM 2008

slide-45
SLIDE 45

Nick McKeown Stanford Scott Shenker Berkeley Jennifer Rexford Princeton

slide-46
SLIDE 46

Nick McKeown Stanford Jennifer Rexford Princeton Martín Casado Stanford Scott Shenker Berkeley

slide-47
SLIDE 47

use pulls technology pushes

networking research market factors datacenter networks

slide-48
SLIDE 48

use pulls technology pushes

backwards compatible general packet processing (more fields to match on)

slide-49
SLIDE 49

fields counter action srcIp=10.0.0.*, ipProto=TCP 10 pt = 2 dstPort=80 drop OpenFlow protocol flow table

slide-50
SLIDE 50

1 2 3

learning switch

slide-51
SLIDE 51

1 2 3

MAC port controller maintains hash table of MAC to port number mappings

slide-52
SLIDE 52

1 2 3 src: spongebob dst: patrick msg: I’M READY

...

MAC port

slide-53
SLIDE 53

1 2 3

...

packet_in

MAC port

slide-54
SLIDE 54

1 2 3

...

packet_in

MAC port spongebob 1

slide-55
SLIDE 55

1 2 3

...

MAC port spongebob 1

packet_out

slide-56
SLIDE 56

1 2 3

MAC port spongebob 1

... ...

slide-57
SLIDE 57

1 2 3

MAC port spongebob 1

flow_mod

install rule: forward packets for spongebob to port 1

slide-58
SLIDE 58

1 2 3

MAC port spongebob 1

...

src: patrick dst: spongebob msg: i’m patrick

slide-59
SLIDE 59

1 2 3

...

no flooding required! MAC port spongebob 1

slide-60
SLIDE 60

1 2 3

firewall

slide-61
SLIDE 61

1 2 3 flow_mod

install rule: drop packets destined for squidward

slide-62
SLIDE 62

1 2 3 src: spongebob dst: squidward msg: hello

...

slide-63
SLIDE 63

Active Networks Separating the Data and Control Planes OpenFlow/SDN SDN Today

slide-64
SLIDE 64

1995 2000 2005 2010 2015 Frenetic NetKAT Abstractions for Network Update Propane

slide-65
SLIDE 65

1995 2000 2005 2010 2015 Frenetic NetKAT Abstractions for Network Update Propane

slide-66
SLIDE 66

A B

1 2 1 2

NetKAT

Forwarding Policy (F) Topology (T) H1 H2

if sw==A then (if pt==1 then pt=2 elif pt==2 then pt=1) elif sw==B then (if pt==1 then p=2 elif pt=2 then pt=1) else drop if sw==A and pt==2 then (sw=B; pt=1) elif sw==B and pt==1 then (sw=A; pt=2) else drop run(F;T)

Network Behavior

slide-67
SLIDE 67

A B

1 2 1 2

NetKAT

Forwarding Policy (F) Topology (T) H1 H2

if sw==A then (if pt==1 then pt=2 elif pt==2 then pt=1) elif sw==B then (if pt==1 then p=2 elif pt=2 then pt=1) else drop if sw==A and pt==2 then (sw=B; pt=1) elif sw==B and pt==1 then (sw=A; pt=2) else drop run(F;T)

Network Behavior Intuition: These are functions from packets to sets of packets

slide-68
SLIDE 68

A B

1 2 1 2

Want to show: SSH packets sent from H1 get to H2 H1 H2

if typ==SSH and @h1 then run(F;T); eventually(@h2) if typ==SSH and @h1 then run(F;T)

P1 P2 Invariant true when P1 is equivalent to P2. let @h1 be sw==A and pt==1 let @h2 be sw==B and pt==2

slide-69
SLIDE 69

A B

1 2 1 2

H1 H2

if typ==SSH and @h1 then run(F;T); eventually(@h2) if typ==SSH and @h1 then run(F;T)

P1 P2 Invariant true when P1 is equivalent to P2. SSH packets from H1 Want to show: SSH packets sent from H1 get to H2

slide-70
SLIDE 70

A B

1 2 1 2

H1 H2

if typ==SSH and @h1 then run(F;T); eventually(@h2) if typ==SSH and @h1 then run(F;T)

P1 P2 Invariant true when P1 is equivalent to P2. “run” the network Want to show: SSH packets sent from H1 get to H2

slide-71
SLIDE 71

A B

1 2 1 2

H1 H2

if typ==SSH and @h1 then run(F;T); eventually(@h2) if typ==SSH and @h1 then run(F;T)

P1 P2 Invariant true when P1 is equivalent to P2. packets received by H2 Want to show: SSH packets sent from H1 get to H2

slide-72
SLIDE 72

if sw == A then: if port == 1 then port := 2 elif port == 2 then port := 3 else drop elif sw == B then: if port==1 drop else port := 1 elif sw == C if port == 1 then port :=3 elif port == 3 then port :=2 elif port == 2 drop;

A C

1 2 1 3 1 2

B

2 3 3

NetKAT

slide-73
SLIDE 73

NetKAT

if sw == A then: if port == 2 then alert_ctrl else port := 3 if sw == B then: if port == 1 then drop elif port == 2 then port := 3 elif port == 3 then port := 2 if sw == C if port == 1 then alert_ctrl elif port == 2 then port := 1 elif port == 3 then port := 2

A C

1 2 1 3 1 2

B

2 3 3

slide-74
SLIDE 74

whither SDN?

slide-75
SLIDE 75

whither SDN?

slide-76
SLIDE 76

questions?

slide-77
SLIDE 77

thanks!