SDN

25
Software Defined Networking (SDN) Teng Chee Seng ITE College West, Institute of Technical Education Singapore Software Defined Networking - Introduction 1

description

Software Defined Network

Transcript of SDN

Software Defined Networking (SDN)

Teng Chee Seng

ITE College West, Institute of Technical Education Singapore

Software Defined Networking - Introduction 1

Software Defined Networking

• Objective: share with you some insight into SDN as a new trend in network provisioning

• Starting to see some significant deployments appearing – Currently typically within data centres – One example is Google , Vmware

• Key takeaway from this lecture is the principle behind SDN, and how it can be implemented using OpenFlow

• At the end of the slide deck we give you pointers to an

example that you can try later using Mininet – SDN using open source components

Software Defined Networking - Introduction 2

Software Defined Networking

• One part of a number of interesting emerging trends

• Software Defined Networking (SDN)

• Network Function Virtualisation (NFV) – Network as a Service (NaaS) – One of many *aaS services

• Service Function Chaining (SFC)

– Directing traffic through virtualised services • Firewall, NAC, DDoS mitigation, IDS, …

– New IETF SFC WG just formed – very popular

Software Defined Networking - Introduction 3

Existing switching / routing

• Switching and routing today uses dedicated hardware – Commonly combined in one device

• Routers:

– Control plane – routing protocol, e.g. OSPF, BGP – creates the Routing Information Base (RIB)

– Data plane – Forwarding Information Base (FIB), written by control plane, from RIB information it holds

– Management plane – via ssh, via SNMP

• Switches:

– Dumb devices, optimised for fast layer 2 switching – Some additional capability, e.g. ACLs, DHCP snooping, …

Software Defined Networking - Introduction 4

Key SDN concepts

• Separation of control and data plane • Centralising network ‘intelligence’

– Through one or more controller device(s)

• Enabling a ‘programmable’ network – Through a control protocol, running between the controller and the

underlying network devices – e.g. using OpenFlow as the control protocol

• Highly dynamic – Can be per-flow, on demand

• Rapid provisioning • Rapid innovation

– Potentially no need to wait for new vendor features – In principle, can empower network owners

Software Defined Networking - Introduction 5

SDN drivers

• Changing traffic patterns – e.g. emerging data centre requirements – Need elasticity in services – Be able to meet peak demand; ‘big data’, peak hours – But don’t pay for capacity in quiet periods

• Abstraction of services from hardware

– Firewalls, IDS, … – Need to be able to control traffic paths

• We have seen compute and storage functions virtualised

– SDN is doing the equivalent for the network – One part of a bigger network function virtualisation picture

Software Defined Networking - Introduction 6

Challenges

• SDN might provide answers for – Complexity

• Devices have many protocols working in isolation

• A resulting tendency for networks to be static

– Consistency (across a network) • Simpler devices, single logical control point

– Scalability • With flexibility

– Vendor independence • Through generic interfaces to underlying functions

• Underlying equipment interoperable, e.g. via OpenFlow

Software Defined Networking - Introduction 7

Manageability

Flexibility

Scalability

Robustness

SDN

ad hoc

low

highest

high

Traditional

IGP, tunnelling (RSVP-TE)

by design

high

low

low

Challenges

SDN architecture – high level

Software Defined Networking - Introduction 9

OpenFlow

• OpenFlow is one of many ways to implement a SDN – Origins in Stanford and Berkeley – Open interface to packet forwarding – Provides forwarding abstraction

• Two parts:

– Control protocol – Configuration

Software Defined Networking - Introduction 10

The OpenFlow instruction set

• OpenFlow provides a “Match – Action” model • Instructions can be programmed dynamically

– On a per-flow basis, if required

• Allows a controller to populate a device flow table – e.g. “If see this header, send to port N” – “If see header like this, rewrite that part” – “If see this, drop the packet” – “Forward packets matching this a this bit rate”

• Default action is usually to send packet to controller • Provides an abstraction of how all forwarding works today,

as a set of “match – action” instructions • Currently at OpenFlow version 1.4, or OF1.4

Software Defined Networking - Introduction 11

Match – Action - Counters

Software Defined Networking - Introduction 12

Examples

Software Defined Networking - Introduction 13

Programming the network

• The ‘intelligence’ lies with the controller • Can implement whatever algorithms you like in the controller for

provisioning the devices – This in principle allows innovation – Could develop own load-balancing algorithms per application – Can’t do this with vendor-specific routers/switches

• Many open source controllers available – Mininet example later uses a modified NOX controller – Can rapidly prototype using mininet

• Strategies – Can prepopulate the flow table

• Might mean some rules/instructions never used

– Can program on the fly • Will mean some amount of flow creation latency

Software Defined Networking - Introduction 14

Example: video streaming

Software Defined Networking - Introduction 15

Standards development

• To be interoperable, we still need standards • Open Networking Foundation (ONF)

– Defining OpenFlow – Implemented on switches, routers, wireless APs, … – https://www.opennetworking.org/

• Internet Engineering Task Force (IETF) – SDN RG, i2rs WG, SFC WG, … – http://www.ietf.org

• European Telecommunications Standards Institute (ETSI) – Network Function Virtualisation (NFV) – http://www.etsi.org/technologies-clusters/technologies/nfv

• …

Software Defined Networking - Introduction 16

SDN use cases

• SDN is being proposed for many scenarios, e.g.: – Data centres, cloud computing, campus networks,

home networks, cellular access networks, …

• And for many use cases, e.g.: – Load balancing, enabling QoS, enforcing security

policies, IPv6 transition, DDoS mitigation, device quarantining, …

• Growing vendor support: – Some 15 vendors of OpenFlow switches and routers – A growing number of software controllers

Software Defined Networking - Introduction 17

Example: OFERTIE

• ECS is part of a European research project called OFERTIE – http://www.ofertie.org/

• Applying SDN / OpenFlow to real-time interactive online applications (ROIAs) – Collaborative 3D editing software

– Multiplayer gaming

• Allows analysis of use cases – Within a data centre (hosting provider, “server lag”)

– Between ISPs (end user access networks)

Software Defined Networking - Introduction 18

OFERTIE: ROIAs

• OFERTIE’s target application domain is Real-Time Online Interactive Applications (ROIAs) and their challenging network demands

• Example Application Scenarios: – Collaborative real-time world editor – Large-scale multiplayer online games

• Characteristics include: – High level of interactivity and update rates – Dynamically changing game situations – Network requirements change dynamically – Variable player loads over time – Impact of packet loss and latency on QoE will

depend on what player is doing

Software Defined Networking - Introduction 19

Content (assets and artwork) by courtesy of PrävEM research group of the University of Applied Sciences Mittweida.

OFERTIE: Network QoS in ROIAs

• Specification of a novel API that allows ROIA applications to specify their dynamic network requirements and to meet them using SDN technology

• Improve network utilisation by allowing applications to signal type of traffic

• The API frees ROIA developers from specifying detailed, low-level network metrics

Software Defined Networking - Introduction 20

OFERTIE: Classes of data transfer

• ROIA data transfers can be classified into various categories:

• Game updates / State synchronisaton – Depends on number of players, proximity, and their activities

• State transfer/migration – e.g. need to migrate ten players (and their data) in 10 seconds – Network Control Layer can feed back to application on path availability

• Asset transfer (upload or download) – e.g. a 2MB asset in 1 minute, or 50MB in 30 seconds

• If the application developer can express these requirements, the

Network Control Layer can make better decisions about provisioning the flows

Software Defined Networking - Introduction 21

OFERTIE: Network Control Layer

Software Defined Networking - Introduction 22

SDN future

• SDN promises a lot – The network abstraction is very appealing

• The OpenFlow specification hardening – Vendors now shipping OF1.4 support (but 1.51 now out!) – Lots of support out there

• Deploying SDN is a big challenge • It can be deployed incrementally • Examples already within data centres

– e.g. Google, Facebook

• Bigger challenge is end-to-end – Requires inter-ISP/site orchestration

Software Defined Networking - Introduction 23

Mininet SDN example

• If you’d like to get a feel for SDN in action…

• Grab mininet

– http://mininet.org/download/

• Example is available via github

– https://github.com/drn05r/ofsoftswitch13-testing

– Wiki contains a walkthrough and example exercises

– Uses NOX OpenFlow 1.4 controller

– Includes OpenFlow 1.4 tutorial

– Uses IPv4, but IPv6 is also supported in latest OF specs

Software Defined Networking - Introduction 24

Links

• Open Networking Foundation (ONF) – https://www.opennetworking.org/

• Mininet – http://mininet.org/

• Early OpenFlow paper (2008): – http://archive.openflow.org/documents/openflow-wp-latest.pdf

• SDN white paper (2012): – https://www.opennetworking.org/images/stories/downloads/sdn-resources/white-

papers/wp-sdn-newnorm.pdf

• OFELIA presentation – http://www.fp7-ofelia.eu/assets/Publications-and-Presentations/SDN-The-Next-Wave-of-

Networking.pdf

• Coursera – https://www.coursera.org/course/sdn

• Google – http://googlecloudplatform.blogspot.co.uk/2014/04/enter-andromeda-zone-google-cloud-

platforms-latest-networking-stack.html

Software Defined Networking - Introduction 25