Introduction to SDN

Daniel Farrell
SDN Intern, Red Hat

VERY QUICK: INTRO TO ME

Daniel Farrell, SDN Intern Red Hat

Very Quick: Intro to ME

Code!
  • Worked on OpenFlow, OpenStack and OpenDaylight

VERY QUICK: INTRO TO ME

Robots!
 

VERY QUICK: INTRO TO ME

(Craft) Beer!

VERY QUICK: INTRO TO ME

Biking!

VERY QUICK: INTRO TO ME

SCUBA!

rationale over Design

RATIONALE OVER DESIGN

SDN is a concept, not a piece of software

Very Recent Development


Game: When was X started?

TCP?

TCP?

1973

Python?

PYTHON?

1989

SDN?

SDN?

~2008-2010*
*Hard to put a date on a conceptual change

Very Rapid ACCEPTANCE

Huge industry shift already
lol @ IPv6

VERY RAPID ACCEPTANCE

Google's G-Scale Network

VERY RAPID ACCEPTANCE

*Many* other deployments in the works

Not socrates, But...

Going to ask and answer my own questions 

How do we build Software?

HOW DO WE BUILD SOFTWARE?

Divide the problem into tasks

HOW DO WE BUILD SOFTWARE?

Build abstractions for the tasks

HOW DO WE BUILD SOFTWARE?

Modular interface between abstractions

HOW DO WE BUILD SOFTWARE?

Allows code reuse

HOW DO WE BUILD SOFTWARE?

Can change implementations if you respect interfaces 

HOW DO WE BUILD SOFTWARE?

Separates concerns

HOW DO WE BUILD SOFTWARE?

So fundamentally, it's all about abstractions

What Abstractions Have been Applied to NETWORKING?

Data vs Control Plane

Data Plane

DATA PLANE

  1. Look at packet header
  2. Look at forwarding state
  3. Make forwarding decision

Control Plane

CONTROL PLANE

Puts the forwarding state in boxes

Data Plane Abstractions

DATA PLANE ABSTRACTIONS

Great abstractions, allowed the Internet to develop

DATA PLANE ABSTRACTIONS


DATA PLANE ABSTRACTIONS

Modular layers with well-defined API

DATA PLANE ABSTRACTIONS

Allows for innovation at each layer
(Ethernet -> Fiber)
(TCP [Reno, Vegas, New Reno, BIC, CUBIC])

Control PLANE ABSTRACTIONS?

CONTROL PLANE ABSTRACTIONS

None

CONTROL PLANE ABSTRACTIONS

Routing and isolation?

CONTROL PLANE ABSTRACTIONS

Routing and isolation?
Mechanisms, not abstractions

CONTROL PLANE ABSTRACTIONS

Routing and isolation?
No modularity, no reuse

Let's Design Some Abstractions

WHAT PROBLEM IS CP SOLVING?


WHAT Problem IS CP SOLVING?

Compute forwarding state

WHAT PROBLEM IS CP SOLVING?

Three constraints:
  1. Possible on low-level hardware/software
  2. Accounts for full network topo
  3. Able to configure every box

CP Abstractions

CP ABSTRACTIONS

Issue: Possible on low-level hardware/software
Abstraction: General forwarding model

CP ABSTRACTIONS

Issue: Accounts for full network topo
Abstraction: Global network abstraction

CP ABSTRACTIONS

Issue: Able to configure every box
Abstraction: Abstract network view

General forwarding model

GENERAL FORWARDING MODEL

Need to not care about Cisco vs Juniper vs Extreme...

GENERAL FORWARDING MODEL

Express intent about what happens to packets

GENERAL FORWARDING MODEL

OpenFlow 1.0/1.3, BGP

Global network abstraction

GLOBAL NETWORK ABSTRACTION

Need to hide complex distributed algos

GLOBAL NETWORK ABSTRACTION

Network Operating System

GLOBAL NETWORK ABSTRACTION

Network Operating System
Runs on commodity servers

GLOBAL NETWORK ABSTRACTION

Info from boxes provides view

GLOBAL NETWORK ABSTRACTION

Config to boxes controls forwarding

GLOBAL NETWORK ABSTRACTION


Abstract network view

ABSTRACT NETWORK VIEW

We have a global view, but it's still complex

ABSTRACT NETWORK VIEW


ABSTRACT NETWORK VIEW

Control program shouldn't need to think about that

ABSTRACT NETWORK VIEW

Provide virtualized (abstract) view

ABSTRACT NETWORK VIEW

Analogy: Programming using compilers

ABSTRACT NETWORK VIEW

Do you write in x86 assembly?

ABSTRACT NETWORK VIEW

Write in high level language, use compiler

ABSTRACT NETWORK VIEW

Compiler is complex, but reusable

ABSTRACT NETWORK VIEW

Abstraction win!

ABSTRACTION WIN!

Control program: User goals -> abstract view

ABSTRACTION WIN!

Virtualization layer:  Abstract -> global network
(compiler)

ABSTRACTION WIN!

Network OS: Global view -> actual boxes

ABSTRACTION WIN!

Info travels in both directions
s/->/<->

Magic?

MAGIC?

Where did the complexity go?

MAGIC?

We didn't eliminate it!

MAGIC?

We moved it to the right places

MAGIC?

Virtualization and Network OS are complex!

MAGIC?

But they are reusable!
(Think: compilers, modules with APIs)

Implementation Details

OpenFlow

OPENFLOW

*Very* simple protocol

OPENFLOW

Defines forwarding state

OpenFlow

Vendor agnostic

OPENFLOW

Match condition and action

OPENFLOW

If a packet matches these conditions...
(MAC, IP, VLAN, port, etc.)

OPENFLOW

...take these actions
(drop, rewrite, forward, etc.)

OpenDaylight

OPENDAYLIGHT

Open Source SDN controller

OPENDAYLIGHT


OPENDAYLIGHT

Contact

Daniel Farrell
SDN Intern, Red Hat

Let's have a beer/coffee and talk about SDN/ODL/Linux/etc!

919.576.0112

dfarrell07 [IRC, Gmail, GitHub, Twitter]

SDN Introduction

By Daniel Farrell

SDN Introduction

Intro to SDN for a presentation at a UNCG DevTalk

  • 2,363