an overview of software-defined network

44
An Overview of Software-Defined Network Presenter: Xitao Wen

Upload: muriel

Post on 10-Feb-2016

23 views

Category:

Documents


1 download

DESCRIPTION

An Overview of Software-Defined Network. Presenter: Xitao Wen. routing algorithm. local forwarding table. header value. output link. 0100 0101 0111 1001. 3 2 2 1. value in arriving packet’s header. 1. 0111. 2. 3. Review: How a Router Works. * Copied from slides of EECS 340. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: An Overview of  Software-Defined Network

An Overview of Software-Defined Network

Presenter: Xitao Wen

Page 2: An Overview of  Software-Defined Network

Review: How a Router Works

1

23

0111

value in arrivingpacket’s header

routing algorithm

local forwarding tableheader value output link

0100010101111001

3221

* Copied from slides of EECS 340

Page 3: An Overview of  Software-Defined Network

Inside a Router

Routing Engine

Packet Forwarding FabricInput Ports Output

Ports

General-purpose CPU

ASIC, or specialized

chips

Page 4: An Overview of  Software-Defined Network
Page 5: An Overview of  Software-Defined Network
Page 6: An Overview of  Software-Defined Network
Page 7: An Overview of  Software-Defined Network
Page 8: An Overview of  Software-Defined Network

The Stanford Clean Slate Program http://cleanslate.stanford.edu

Experimenter’s Dream(Vendor’s Nightmare)

StandardNetwork

Processinghwsw Experimenter writes

experimental codeon switch/router

User-defined

Processing

Page 9: An Overview of  Software-Defined Network

The Stanford Clean Slate Program http://cleanslate.stanford.edu

Furthermore, we want… Isolation: Regular production traffic untouched Virtualized and programmable: Different flows

processed in different ways Equipment we can trust in our wiring closet Open development environment for all

researchers (e.g. Linux, Verilog, etc). Flexible definitions of a flow

Individual application trafficAggregated flowsAlternatives to IP running side-by-side…

Page 10: An Overview of  Software-Defined Network
Page 11: An Overview of  Software-Defined Network
Page 12: An Overview of  Software-Defined Network
Page 13: An Overview of  Software-Defined Network

Software-Defined Network

Page 14: An Overview of  Software-Defined Network

OpenFlow Architecture

Routing Engine

Packet Forwarding FabricInput Ports Output

Ports

Switch

Controller

Network Protocol over SSL

Page 15: An Overview of  Software-Defined Network

Roadmap

• Overview• Switch Model• OpenFlow Protocol• Controller

Switch

Controller

OpenFlow ProtocolSwitch

Switch

Switch

Page 16: An Overview of  Software-Defined Network

Step 1: Separate Control from Datapath

Page 17: An Overview of  Software-Defined Network

Step 2: Cache flow decisions in datapath

Page 18: An Overview of  Software-Defined Network

Roadmap

• Overview• Switch Model• OpenFlow Protocol• Controller

Switch

Controller

OpenFlow ProtocolSwitch

Switch

Switch

Page 19: An Overview of  Software-Defined Network

OpenFlow Switch ModelController

OpenFlow Switch

FlowTable

SecureChannel

PCOpenFlow

Protocol

SSL

hw

sw

OpenFlow Switch specification

Page 20: An Overview of  Software-Defined Network

OpenFlow Switch Model

• Hardware– One or more flow tables– Group table (since Spec 1.1)

• Software– Secure Channel

Page 21: An Overview of  Software-Defined Network

Flow Table Entry

SwitchPort

MACsrc

MACdst

Ethtype

VLANID

IPSrc

IPDst

IPProt

TCPsport

TCPdport

Matcher Action Counters

1. Forward packet to port(s)2. Encapsulate and forward to controller3. Drop packet4. Rewrite headers5. Map to queue

+ mask

Packet + byte counters

Page 22: An Overview of  Software-Defined Network
Page 23: An Overview of  Software-Defined Network
Page 24: An Overview of  Software-Defined Network

Secure Channel

• SSL Connection, site-specific key• Controller discovery protocol• Encapsulate packets for controller• Send link/port state to controller

Page 25: An Overview of  Software-Defined Network

Current OpenFlow Hardware

Page 26: An Overview of  Software-Defined Network

Roadmap

• Overview• Switch Model• OpenFlow Protocol• Controller

Switch

Controller

OpenFlow ProtocolSwitch

Switch

Switch

Page 27: An Overview of  Software-Defined Network

OpenFlow Protocol

• Connection– Hello, Echo, Feature, Config…

• Read-State– Statistics, Port-status, Error

• Modify-State– Flow, Group, Config

• Packet-in/Packet-out• Barrier

Page 28: An Overview of  Software-Defined Network

Reactive vs. Proactive (pre-populated)

Page 29: An Overview of  Software-Defined Network

Reactive Flow-Push

Page 30: An Overview of  Software-Defined Network

Proactive Flow-Push

Page 31: An Overview of  Software-Defined Network

Evolving Protocol

Page 32: An Overview of  Software-Defined Network

Roadmap

• Overview• Switch Model• OpenFlow Protocol• Controller

Switch

Controller

OpenFlow ProtocolSwitch

Switch

Switch

Page 33: An Overview of  Software-Defined Network

Key Task of OF Controller

• OpenFlow protocol is largely deltas:– Switch-to-Controller: changes of network state– Controller-to-Switch: changes of configuration

• It is a natural way to write control logic

Page 34: An Overview of  Software-Defined Network

Architectural View: Network OS

OF Controller

Operating System

App AppApp App

Switch Switch Switch

Page 35: An Overview of  Software-Defined Network

Open Controllers

Page 36: An Overview of  Software-Defined Network

Open Controllers (2)

Page 37: An Overview of  Software-Defined Network

NOX: A Bit of History

• NOX was the first SDN controller• Released under GPL in 2008

– Extensively used in research• Now maintained by research community

Page 38: An Overview of  Software-Defined Network

NOX Highlights

• Linux• C++ and Python• Component system• Event-based programming model• Applications:

– Forwarding (reactive), topology discovery, host tracking, …

Page 39: An Overview of  Software-Defined Network

NOX

• Centralized programming model• High-level abstraction

Page 40: An Overview of  Software-Defined Network

Programming Interface

• Events• Namespace• Libraries

– Routing– Packet classification– DNS– Network filtering

Page 41: An Overview of  Software-Defined Network

POX

• A new platform in pure Python– Clean dependencies– Take good things from NOX– Target Linux, Mac OS, and Windows

• Goal: Good for research• Non-goal: Performance

Page 42: An Overview of  Software-Defined Network
Page 43: An Overview of  Software-Defined Network
Page 44: An Overview of  Software-Defined Network