Software - Defined - Networking Prof. Hengky "Hank" Susanto
Software - Defined - Networking Prof. Hengky "Hank" Susanto
Software - Defined - Networking Prof. Hengky "Hank" Susanto
Closed equipment
• Software bundled with hardware. Operating a network is expensive
• Vendor-specific interfaces. • More than half the cost of a network.
• Yet, operator error causes most outages.
Over specified : Slow protocol standardization.
Buggy software in the equipment
Few people can innovate • Routers with 20+ million lines of code
• Equipment vendors write the code. • Cascading failures, vulnerabilities, etc.
• Long delays to introduce new features.
Traditional Network Router
• Router can be partitioned into control and data plane
• Management plane/ configuration
• Control plane / Decision: OSPF (Open Shortest Path First)
• Data plane / Forwarding
Dumb,
fast
Switches
Data Plane
Software-Defined Network with key Abstractions
Network
Well-defined API Virtualization
Traffic Other
Application Plane Security Routing Engineering Applications
Network Map
Abstraction
Control Plane Network Operating System
Instructions
Forwarding
SDN Basic Concept
• Separate Control plane and Data plane entities.
• Network intelligence and state are logically centralized.
• The underlying network infrastructure is abstracted from the
applications.
• Execute or run Control plane software on general purpose
hardware.
• Decouple from specific networking hardware.
• Use commodity servers and switches.
• Have programmable data planes.
• Maintain, control and program data plane state from a central
entity.
• An architecture to control not just a networking device
but an entire network.
SDN in Real World – Google’s Story
• The industries were skeptical whether SDN was possible.
• Google had big problems:
• High financial cost managing their datacenters: Hardware and software upgrade,
over provisioning (fault tolerant), manage large backup traffic, time to manage
individual switch, and a lot of men power to manage the infrastructure.
• Delay caused by rebuilding connections after link failure.
• Slow to rebuild the routing tables after link failure.
• Difficult to predict what the new network may perform.
• Google went a head and implemented SDN.
• Built their hardware and wrote their own software for their internal datacenters.
• Surprised the industries when Google announced SDN was possible in production.
• How did they do it?
• Read “B4: Experience with a Globally-Deployed Software Defined WAN”, ACM Sigcomm 2013.
The Origin of SDN Martin Casado
• 2006: Martin Casado, a PhD student at Stanford and team propose a clean-slate
security architecture (SANE) which defines a centralized control of security (in stead of
at the edge as normally done). Ethane generalizes it to all access policies.
• The idea of Software Defined Network is originated from OpenFlow project (ACM
SIGCOMM 2008).
• 2009: Stanford publishes OpenFlow V1.0.0 specs.
• June 2009: Martin Casado co-founds Nicira.
• March 2011: Open Networking Foundation is formed.
• Oct 2011: First Open Networking Summit. Many Industries (Juniper, Cisco announced
to incorporate.
• July 2012: VMware buys Nicira for $1.26B.
• Lesson Learned: Imagination is the key to unlock the power of possibilities.
What is OpenFlow?
Application A Application B
OpenFlow Protocols
DataControl
PlanePath OpenFlow
Separation of Data
and Control Plane
Basic OpenFlow: How Does it Work?
• Controller manages the traffic (network flows) by
manipulating the flow table at switches.
• Instructions are stored in flow tables.
• When packet arrives at switch, match the header
fields with flow entries in a flow table.
• If any entry matches, performs indicated actions
and update the counters.
• If Does not match, Switch asks controller by
Control Plane : sending a message with the packet header.
Flow table
Data Plane
Protocol QoS
OpenFlow Table: Basic Actions
• All: To all interfaces except incoming interface.
• Controller: Encapsulate and send to controller.
• Local: send to its local networking stack.
• Table: Perform actions in the next flow table (table chaining or multiple
table instructions).
• In_port: Send back to input port.
• Normal: Forward using traditional Ethernet.
• Flood: Send along minimum spanning tree except the incoming interface.
OpenFlow Table: Basic Stats
• Provide counter for
incoming flows or
packets.
• Information on
counter can be
retrieved to control
plane.
• Can be used to
monitor network
traffic.
Additional Feature to Rules and Stats
Threshold
Switches That Support OpenFlow
Available OpenFlow Switches as 2014.
Juniper MX-series NEC IP8800 WiMax (NEC)
More coming
21
soon...
OpenFlow Switch Software
• Indigo: Open source implementation that runs on Mac OS X.
• LINC: Open source implementation that runs on Linux, Solaris, Windows,
MacOS, and FreeBSD.
• Pantou: Turns a commercial wireless router/access point to an OpenFlow
enabled switch. OpenFlow runs on OpenWRT. Supports generic Broadcom
and some models of LinkSys and TP-Link access points with Broadcom and
Atheros chipsets.
• Of13softswitch: User-space software switch based on Ericsson TrafficLab
1.1 softswitch.
• Open vSwitch: Open Source and popular as 2014.
Open Vswitch Switch Software
• Open Source Virtual Switch
• Based on Nicira Concept.
• Can Run as a stand alone hypervisor switch or as a distributed switch
across multiple physical servers.
• Default switch in XenServer 6.0, Xen Cloud Platform and supports
Proxmox VE, VirtualBox, Xen KVM.
• Integrated into many cloud management systems including OpenStack,
openQRM, OpenNebula, and oVirt.
• Distributed with Ubuntu, Debian, Fedora Linux. Also FreeBSD.
Controller Plane Software
• POX: (Python) Out of Date.
• IRIS: (Java) Scalability and High Availability
• MUL: (C) MūL, is an openflow (SDN) controller. It has a C based multi-threaded infrastructure at its core.
• NOX: (C++/Python) NOX was the first OpenFlow controller.
• Jaxon: (Java) Jaxon is a NOX-dependent Java-based OpenFlow Controller.
• Trema: (C/Ruby) Trema is a full-stack framework for developing OpenFlow controllers in Ruby and C.
• Beacon: (Java) Beacon supports both event-based and threaded operation.
• Floodlight: (Java) It was forked from the Beacon controller, originally developed by David Erickson at
Stanford.
• And many more.
Basic OpenFlow Recap
SDN Concept: OpenFlow:
(Application Plane) • Support different applications: routing, load balancers, monitoring,
security, etc.
• Programmable: Modify and interact with the network model in control
Plane.
Hardware (switches)
Network Hypervisor (Virtualization)
• Hide complexity (Dump it down)
• Present only the necessary information and avoid too many details.
• Network operators “Delegate” control of subsets of network hardware
and/or traffic to other network operators or users
• Multiple controllers can talk to the same set of switches.
• Allow experiments to be run on the network in isolation of each other
and production traffic.
• Virtualized network model (topology, routing, etc.).
OpenFlow
Switch
Controller 1
OpenFlow Controller 2
Switch
OpenFlow
Switch
Network Hypervisor (software): FlowVisor
• A network hypervisor developed by Stanford.
• A software proxy between the forwarding and control planes of
network devices.
• Allow resources to be sliced (shared) according to defined policies.
• The policy language specifies the slice’s resource limits, flowspace, and
controller’s location in terms of IP and TCP port-pair.
• FlowVisor enforces transparency and isolation between slices by inspecting,
rewriting, and policing OpenFlow messages as they pass.
Network Hypervisor: Slicing Resources (FlowVisor)
Assigns hardware resources to “Slices”
Topology http
Network Device or Openflow Instance (DPID) Multicast Load-balancer
Broadcast
Physical Ports.
Bandwidth
Each slice can be assigned a per port queue with a
fraction of the total bandwidth.
CPU
Employs Course Rate Limiting techniques to keep new
flow events from one slice from overrunning the CPU. dl_dst=FFFFFFFFFFFF OpenFlow tp_src=80, or
Forwarding Tables Protocol tp_dst=80
Each slice has a finite quota of forwarding rules per
device.
OpenFlow OpenFlow
Switch FlowVisor & Policy Control
OpenFlow
Protocol
OpenFlow OpenFlow
Switch Switch
Northbound Interface
• Supplement Documents:
• “Software-Defined Networking: State of the Art and Research Challenges”, M.
Jammal, T. Singh, et el.
• “The Road to SDN: An Intellectual History of Programmable Networks”, N. Feamster,
Jenniger Rexford, E. Zegura.
• “A Survey of Software-Defined Networking: Past, Present, and Future of
Programmable Network”, B. Astuto, et el.
Question????
• Thank you