Software Defined Networks: History, Hype, and Hope

48
1 Software Defined Networks: History, Hype, and Hope Scott Shenker with Martín Casado, Teemu Koponen, Nick McKeown (and many others….)

description

Software Defined Networks: History, Hype, and Hope. Scott Shenker with Martín Casado , Teemu Koponen , Nick McKeown (and many others….). Caveat Audiens. I have a startup in area ( Nicira ) - PowerPoint PPT Presentation

Transcript of Software Defined Networks: History, Hype, and Hope

Page 1: Software Defined Networks: History, Hype, and Hope

1

Software Defined Networks:

History, Hype, and Hope

Scott Shenkerwith Martín Casado, Teemu Koponen, Nick McKeown

(and many others….)

Page 2: Software Defined Networks: History, Hype, and Hope

2

Caveat Audiens

• I have a startup in area (Nicira)- Feel free to regard everything I am saying as the self-

serving comments of a greedy, lying entrepreneur…

• Some of you have heard parts of this talk before- First part: people who know nothing about SDN- Second part: people who know more about SDN than I do

Page 3: Software Defined Networks: History, Hype, and Hope

3

Roots of SDN

• ~2004: Research on new management paradigms- RCP, 4D [Princeton, CMU,….]- SANE, Ethane [Stanford/Berkeley]- Industrial efforts with similar flavor (not published)

• 2008: Software-Defined Networking (SDN)- NOX Network Operating System [Nicira]- OpenFlow switch interface [Stanford/Nicira]

• 2011: Open Networking Foundation (~69 members)- Board: Google, Yahoo, Verizon, DT, Msoft, F’book, NTT- Members: Cisco, Juniper, HP, Dell, Broadcom, IBM,…..

Page 4: Software Defined Networks: History, Hype, and Hope

4

Current Status of SDN

• SDN widely accepted as “future of networking”- ~1000 engineers at latest Open Networking Summit- Commercialized, in production use (few places)- Much more acceptance in industry than in academia

• There is an insane level of SDN hype, and backlash- SDN doesn’t work miracles, merely makes things easier- Think of SDN as a programming model

• But the real question is: why the rapid adoption?- And that requires more history…starting with the Internet

Page 5: Software Defined Networks: History, Hype, and Hope

5

Key to Internet Success: Layers

Applications

…built on…

…built on…

…built on…

…built on…

Reliable (or unreliable) transport

Best-effort global packet delivery

Best-effort local packet delivery

Physical transfer of bits

Page 6: Software Defined Networks: History, Hype, and Hope

6

The Importance of Layering

• Decomposed delivery into fundamental components

• Independent but compatible innovation at each layer

• The Internet has been an amazing success…

• …but an academic failure

Page 7: Software Defined Networks: History, Hype, and Hope

7

Built an Artifact, Not a Discipline

• Other fields in “systems”: OS, DB, etc.- Teach basic principles- Are easily managed- Continue to evolve 

• Networking:- Teach big bag of protocols- Notoriously difficult to manage- Evolves very slowly

Page 8: Software Defined Networks: History, Hype, and Hope

8

Why Is Networking Behind Other Fields?

• Networks originally had single goal: Deliver packets

• Resulting designs were conceptually very simple- Ethernet- IP- TCP/UDP

• But the success of the Internet had a downside- Just delivering packets is no longer enough!

Page 9: Software Defined Networks: History, Hype, and Hope

9

New Requirements on Packet Delivery

• Isolation

• Traffic engineering

• Packet processing

• Payload analysis

• ….

Page 10: Software Defined Networks: History, Hype, and Hope

10

Which Led to New Control Mechanisms

• Isolation: VLANs, ACLs

• Traffic engineering: MPLS, weighted routing, ECMP

• Packet processing: Firewalls, NATs, middleboxes

• Payload analysis: Deep packet inspection (DPI)

• ….

Page 11: Software Defined Networks: History, Hype, and Hope

11

A More Complex “Control Plane”

• Mechanisms designed and deployed independently- Resulting in greatly increased network complexity…- …but only primitive control functionality

• The control plane became an ad hoc mess- Stark contrast to the elegantly modular “data plane”

• The infrastructure still works...- Only because of our great ability to master complexity

• This ability to master complexity is both a blessing…- …and a curse!

Page 12: Software Defined Networks: History, Hype, and Hope

12

A Simple Story About Complexity

• ~1985: Don Norman visits Xerox PARC - Talks about user interfaces and stick shifts

Page 13: Software Defined Networks: History, Hype, and Hope

13

What Was His Point?

• The ability to master complexity is valuable- But not the same as the ability to extract simplicity

• Each has its role:- When first getting systems to work, master complexity- When making system easy to use, extract simplicity

• You will never succeed in extracting simplicity- If you don’t recognize it is a different skill set than

mastering complexity

Page 14: Software Defined Networks: History, Hype, and Hope

14

What Is My Point?

• Networking has never made the distinction…- And therefore has never made the transition from

mastering complexity to extracting simplicity

• Still focused on mastering complexity- Networking “experts” are those that know all the details

• Extracting simplicity lays the intellectual foundations- This is why networking has weak foundation- We are still building the artifact, not the discipline

Page 15: Software Defined Networks: History, Hype, and Hope

15

Forcing People To Make The Transition

• We are really good at mastering complexity- And it has worked for us for decades, why change?

• A personal lesson in loving complexity too much

• Networking has now hit its complexity limits- Large datacenters, particularly multitenant environments- 100,000s machines; 10,000s switches; 10,000s customers

• The era of ad hoc control mechanisms is over- So how do you “extract simplicity”?

Page 16: Software Defined Networks: History, Hype, and Hope

16

An Example Transition: Programming

• Machine languages: no abstractions- Had to deal with low-level details- Mastering complexity was crucial

• Higher-level languages: OS and other abstractions- File system, virtual memory, abstract data types, ...

• Modern languages: even more abstractions- Object orientation, garbage collection,...

Abstractions key to extracting simplicity

Page 17: Software Defined Networks: History, Hype, and Hope

17

“The Power of Abstraction”

“Modularity based on abstraction is the way things get done”

− Barbara Liskov

Abstractions Interfaces Modularity

Page 18: Software Defined Networks: History, Hype, and Hope

18

What About Networking Abstractions?

• Layers are great abstractions, for the data plane

• We have no abstractions for the control plane!- That’s why the control plane is such a mess!

• How do we find those abstractions?

• Define the control plane problem….- ….and then decompose it.

Page 19: Software Defined Networks: History, Hype, and Hope

19

For Any Task, The Control Plane Must:

• Operate without communication guarantees- A distributed system with arbitrary failures

• Compute the configuration of each physical device- Switch, router, middlebox: complete forwarding tables- “Configuration” here means filling in tables by any means

• Operate within given network-level protocol- Must live with the capabilities of IP, Ethernet, etc.

Page 20: Software Defined Networks: History, Hype, and Hope

20

This Seems Normal To Us

• Another sign of how much we love complexity

• No other field would deal with such a problem!

Page 21: Software Defined Networks: History, Hype, and Hope

21

Programming Analogy

• What if programmers had to:- Specify where each bit was stored- Explicitly deal with all internal communication errors- Within a programming language with limited expressability

• Programmers would redefine problem by:- Defining higher level abstractions for memory- Building on reliable communication abstractions- Using a more general language

• Abstractions provide clean separation of concerns- How can we do this for networking?

Page 22: Software Defined Networks: History, Hype, and Hope

22

Concerns/Problems to be Separated

1. Operate without communication guarantees Need an abstraction for distributed state

2. Compute the configuration of each physical device Need an abstraction that simplifies configuration

3. Operate within given network-level protocol Need an abstraction for general forwarding model

Page 23: Software Defined Networks: History, Hype, and Hope

23

1. Distributed State Abstraction

• Shield mechanisms from vagaries of distributed state- While allowing access to this state

• Proposed abstraction: global network view- Annotated network graph provided through an API- Will later talk about ways to scale this….

• Control mechanism is now program using API- No longer a distributed protocol, now just a graph algorithm- Distributed state issues hidden behind abstraction

Page 24: Software Defined Networks: History, Hype, and Hope

24

2. Specification Abstraction

• Control program should express desired behavior

• It should not be responsible for implementing that behavior on physical network infrastructure- Requires configuring the forwarding tables in each switch

• Proposed abstraction: abstract view of network- Abstract view models only enough detail to specify goals

• This is “network virtualization”- Abstract view is “virtual network”

Page 25: Software Defined Networks: History, Hype, and Hope

25

Simple Example: Access Control

GlobalNetwork View

Abstract NetworkView

A

B

A

B

Page 26: Software Defined Networks: History, Hype, and Hope

26

3. Forwarding Abstraction

• Two related goals:- Freedom from dataplane limitations- Freedom from vendor-specific solutions

• OpenFlow is current proposal for forwarding- Uses flow entries of the form: <header, action>

• Design details concern exact nature of:- Header matching- Allowed actions

Page 27: Software Defined Networks: History, Hype, and Hope

27

• SDN is defined precisely by these abstractions- Distributed state- Specification- Forwarding

• Abstractions make it easier to build control plane- Just write control program to API, not design new protocol- Just specify goals, not how to implement them

• SDN is not a particular set of mechanisms, it is any realization of these abstractions- But what would such a system look like?

My Talk in One Sentence

Page 28: Software Defined Networks: History, Hype, and Hope

28

Realizing These SDN Abstractions

• The core challenge is to turn a fully distributed control problem into a more centralized one

• This involves designing a common distribution layer- Gathers information from network elements (topology)- Disseminates control commands to network elements- Must be scalable and flexible (not tied to control task)

• This is done by a “Network Operating System”- Runs on servers in network (replicated for resilience)- NOX, ONIX, Trema, Beacon, some proprietary systems

Page 29: Software Defined Networks: History, Hype, and Hope

29

Control Program

Software Defined Network (SDN)

Network OS

Global Network View

Traditional Control MechanismsNetwork of Switches and/or Routers

Distributed algorithm running between neighborsComplicated task-specific distributed algorithm

e.g. routing, access control

Page 30: Software Defined Networks: History, Hype, and Hope

30

Specification Abstraction

• Abstraction is a simplified view/model of network- Only enough details to specify intent- No need to have enough details for implementation!

• Requires a new shared layer:- Map abstract configuration to physical configuration

Page 31: Software Defined Networks: History, Hype, and Hope

31

Network OS

Global Network View

Abstract Network View

Control ProgramNetwork Virtualization

Software Defined Network

Page 32: Software Defined Networks: History, Hype, and Hope

32

Simple Example: Access Control

GlobalNetwork View

Abstract NetworkView

A

B

A

B

Page 33: Software Defined Networks: History, Hype, and Hope

33

Network OS

Global Network View

Abstract Network View

Control Program

Network Virtualization

Software Defined Network

Page 34: Software Defined Networks: History, Hype, and Hope

34

Major Change in Paradigm

• Control program: Configuration = Function(view)- Applied to abstract network view

• Easier to write, verify, maintain, reason about, ….- Logically centralized, abstract, stateless

• Requires sophisticated systems support to achieve- No reduction in overall system complexity

Page 35: Software Defined Networks: History, Hype, and Hope

35

Clean Separation of Concerns

• Control program: map behavior to abstract view- Driven by Task Semantics

• Net Virtualization: abstract view to global view- Driven by Specification Abstraction

• NOS: global view to physical switches- API: driven by Distributed State Abstraction- Switch interface: driven by Forwarding Abstraction

Page 36: Software Defined Networks: History, Hype, and Hope

36

Common Questions about SDN?

• Is SDN less scalable, secure, resilient,…?

• Is SDN incrementally deployable?

• Can SDN be extended to the WAN?

• Can you troubleshoot an SDN network?

• Is OpenFlow the right fwding abstraction?

Page 37: Software Defined Networks: History, Hype, and Hope

37

Common Questions about SDN?

• Is SDN less scalable, secure, resilient,…? No

• Is SDN incrementally deployable? Yes

• Can SDN be extended to the WAN? Yes

• Can you troubleshoot an SDN network? Yes

• Is OpenFlow the right fwding abstraction? No

Page 38: Software Defined Networks: History, Hype, and Hope

38

Why Isn’t SDN Less Scalable, etc.?

• In terms of mechanism, SDN is similar to today- If you look at where state is passed

• But the programmatic interface is radically different

• The interface extracts the simplicity, lets SDN platform manage the complexity for you….

Page 39: Software Defined Networks: History, Hype, and Hope

39

Why Is SDN Incrementally Deployable?

• Can implement most control functionality at edge- Access control, QoS, mobility, migration, monitoring…

• Controllable switch in host software- Hypervisor or OS: Open vSwitch (OVS)- Can build SDN using OVS with no hardware change!

• Physical switch infrastructure can be simple/legacy- Provides big reliable crossbar

• Enables incremental deployment of SDN- Might never need OpenFlow in hardware switches….

Page 40: Software Defined Networks: History, Hype, and Hope

40

How Do You Scale SDN to WANs?

• Build system out of two logical components:- Logical servers: highly-available, high-capacity- Logical xBars: distributed unit of switching w/ fwding table

• Use locality to create hierarchical structure- Levels: physical switches, PoPs, Regional, National, etc.- Each level’s abstract view is a logical xBar

• Use Function(view) to configure each layer below- Recursive application of same code- No iteration, bounded depth of computation- Transactional changes, no disruption during convergence

Page 41: Software Defined Networks: History, Hype, and Hope

41

How to Troubleshoot SDN Platforms?

• SDN simplifies specification of behavior- That’s the whole goal

• SDN platform responsible for implementing spec.- That’s the whole challenge

• That’s where the bugs will be….at least for now- How do we know when the platform is misbehaving?

• Current research: localize problem in layer and time- Correspondence checking: semantics same at each layer- Replay simulator: identify minimal set of triggering events

Page 42: Software Defined Networks: History, Hype, and Hope

42

Is OpenFlow the Answer?

• There are two key interfaces (headers)- Host tells the network what service it wants- Packet tells a switch how to handle it

• OpenFlow uses a single standard to handle both- Must be general enough to express host requirements- But simple enough to implement cheaply - OpenFlow is destined to fail in both respects…..

• MPLS split these two interfaces- Complex host-network interface at edge (full header)- Simple packet-switch interface in core (label)

Page 43: Software Defined Networks: History, Hype, and Hope

43

From OpenFlow to Fabrics

• Fabric: a unified set of forwarding elements that offers a delivery interface- Maps general headers to output port

• Internal headers decoupled from external headers- Probably something MPLS-like

• Edge of fabric can use software- Internally can use very simple hardware

• Fabrics are now being used in datacenters….- SDN should embrace them as internal forwarding model- With a more general mapping at edge

Page 44: Software Defined Networks: History, Hype, and Hope

44

The Hope

What are the larger implications of SDN?

Page 45: Software Defined Networks: History, Hype, and Hope

45

Separating Control and Data Planes

• Changes the deployment model- Can buy the control plane separately from the switches

• Changes the business model- Commodity hardware- 3rd party control software

• Changes the testing model- Unit test hardware- Simulator to analyze large-scale control planes

• Changes balance of power between HW and SW

Page 46: Software Defined Networks: History, Hype, and Hope

46

Networking is Now a Software Problem

• Think of control plane as a program, not a protocol- We are programming the network, not designing it- Focus on modularity and abstractions, not packet headers- Open-source or proprietary, but not standardized by IETF

• Networking is now (largely) an edge problem- Core remains simple- Edge handles complexity- Software is fast enough at the edge (Open vSwitch)

• Software lends itself to clean abstractions

Page 47: Software Defined Networks: History, Hype, and Hope

47

Networking as an Academic Discipline

• Clean abstractions lead to increased rigor- WAN extensions are an example

• Networking can now become more of a science

Page 48: Software Defined Networks: History, Hype, and Hope

48

Grato pela atenção

Perguntas?