an overview of software-defined network
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 PresentationTRANSCRIPT
![Page 1: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/1.jpg)
An Overview of Software-Defined Network
Presenter: Xitao Wen
![Page 2: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/2.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/3.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/4.jpg)
![Page 5: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/5.jpg)
![Page 6: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/6.jpg)
![Page 7: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/7.jpg)
![Page 8: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/8.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/9.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/10.jpg)
![Page 11: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/11.jpg)
![Page 12: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/12.jpg)
![Page 13: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/13.jpg)
Software-Defined Network
![Page 14: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/14.jpg)
OpenFlow Architecture
Routing Engine
Packet Forwarding FabricInput Ports Output
Ports
Switch
Controller
Network Protocol over SSL
![Page 15: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/15.jpg)
Roadmap
• Overview• Switch Model• OpenFlow Protocol• Controller
Switch
Controller
OpenFlow ProtocolSwitch
Switch
Switch
![Page 16: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/16.jpg)
Step 1: Separate Control from Datapath
![Page 17: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/17.jpg)
Step 2: Cache flow decisions in datapath
![Page 18: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/18.jpg)
Roadmap
• Overview• Switch Model• OpenFlow Protocol• Controller
Switch
Controller
OpenFlow ProtocolSwitch
Switch
Switch
![Page 19: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/19.jpg)
OpenFlow Switch ModelController
OpenFlow Switch
FlowTable
SecureChannel
PCOpenFlow
Protocol
SSL
hw
sw
OpenFlow Switch specification
![Page 20: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/20.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/21.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/22.jpg)
![Page 23: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/23.jpg)
![Page 24: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/24.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/25.jpg)
Current OpenFlow Hardware
![Page 26: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/26.jpg)
Roadmap
• Overview• Switch Model• OpenFlow Protocol• Controller
Switch
Controller
OpenFlow ProtocolSwitch
Switch
Switch
![Page 27: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/27.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/28.jpg)
Reactive vs. Proactive (pre-populated)
![Page 29: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/29.jpg)
Reactive Flow-Push
![Page 30: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/30.jpg)
Proactive Flow-Push
![Page 31: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/31.jpg)
Evolving Protocol
![Page 32: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/32.jpg)
Roadmap
• Overview• Switch Model• OpenFlow Protocol• Controller
Switch
Controller
OpenFlow ProtocolSwitch
Switch
Switch
![Page 33: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/33.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/34.jpg)
Architectural View: Network OS
OF Controller
Operating System
App AppApp App
Switch Switch Switch
![Page 35: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/35.jpg)
Open Controllers
![Page 36: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/36.jpg)
Open Controllers (2)
![Page 37: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/37.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/38.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/39.jpg)
NOX
• Centralized programming model• High-level abstraction
![Page 40: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/40.jpg)
Programming Interface
• Events• Namespace• Libraries
– Routing– Packet classification– DNS– Network filtering
![Page 41: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/41.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/42.jpg)
![Page 43: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/43.jpg)
![Page 44: An Overview of Software-Defined Network](https://reader035.vdocument.in/reader035/viewer/2022062323/56815c68550346895dca79e6/html5/thumbnails/44.jpg)