Slide 1

Slide 1 text

Introduction to Software Defined Networking

Slide 2

Slide 2 text

“It's a way of trying to put control of how the network gets configured in some sense, into the hands of programmers.” — Dr. Richard Mortier, University of Cambridge The concept

Slide 3

Slide 3 text

But wait... Is it really for programmers?

Slide 4

Slide 4 text

Programmer functions ● Cycles, sequences, recursion ● Data structures (arrays, linked lists, graphs) ● Algorithms and computation complexity ● Thinks "programmatically", the programmer understands: ○ Programming languages syntax and libraries ○ Breaking big problems into small problems ○ Paradigms (Imperative, OO, Functional)

Slide 5

Slide 5 text

Network Engineer / Sys Admin functions ● Interconnects networking devices ● Infrastructure planning and deployment ● Network and systems performance monitoring ● Deep knowledge of network services and protocols

Slide 6

Slide 6 text

Full Stack Network Engineer ● Automation ● Software defined everything (network, compute, storage) ● Define a state of how things should run and interconnect ● Then build a set of programs (and/or configs) that does that ● Has programming knowledge to augment it's capabilities

Slide 7

Slide 7 text

Legacy networks

Slide 8

Slide 8 text

The present of Networking Layer Device Purpose Data type 7 Application send a message Data Stream 4 Firewall filter traffic Data Segments 3 Router routing decisions IP Packets 2 Switch local forwarding MAC Frames ● Open Systems Interconnection (OSI) based ● Usually dedicated hardware for each function

Slide 9

Slide 9 text

The new Software Defined Networking model

Slide 10

Slide 10 text

The Software Defined Networking paradigm ● Set of techniques to ease software implementation of network protocols ● The physical layer is mostly unchanged (optical fiber, wireless) ● Mostly affects the data link, network, and transport layers ● Can inspect up to the application layer (DPI) ● Turns the legacy networking into a new model ● Splitting of the control and data forwarding functions

Slide 11

Slide 11 text

The new model ● Open Networking Foundation suggests a reference model ○ Application layer ○ Control layer ○ Infrastructure layer

Slide 12

Slide 12 text

Application layer (SDN Applications) ● Traffic Engineering ● Multicast, L2 switching between designated nodes ● Interaction with legacy protocols for external communication (BGP, OSPF…) ● SDN Applications such as NAT, Firewalls, Load Balancers

Slide 13

Slide 13 text

Control layer (Controllers) ● Interacts with the Infrastructure layer (via southbound protocols) ● Generates patterns/code that the devices under it can understand ● Establishes the connection between the Application Layer and the Infrastructure layer ● It’s written in common programing languages (Java, Python…)

Slide 14

Slide 14 text

Infrastructure layer (Switching devices) ● Dumb switching devices ● Only accepts rules or patterns from the controller ● Get the network status such as topology, statistics, throughput ○ Link Layer Discovery Protocol ○ This data is sent back to the controller ● Usually the edge nodes ● Common to be virtualized (OpenvSwitch)

Slide 15

Slide 15 text

Benefits ● Reduced functionality to do only what is required ● No expensive inline firewalls ● Advantageous having thousands of nodes (large scale) ● Centralized management view ● Reduced device cost (white-box switches)

Slide 16

Slide 16 text

Disaggregation and white-box switches [1] ● Bare metal switch ○ No NOS, just hardware ● White-box switch ○ Same as the previous ○ Usually open source hardware ● Brite-box switch ○ NOS, hardware and software support included ● Known brands for this type of hardware ○ Edge-Core, Mellanox, Broadcom, Barefoot Tofino (NOS = Network Operating System)

Slide 17

Slide 17 text

Drawbacks ● Software bugs, it is not thoroughly tested as hardware components ● Cost of upgrading if you already have a working infrastructure ● Personnel training ● Non mature protocols ● Perhaps no cost/benefit for small scale networks (yet)

Slide 18

Slide 18 text

Ways to build an SDN network [1] ● Rip-and-Replace, Direct Fabric Programming ○ Pure SDN-enabled devices, no legacy hardware or routing protocols (no RIB) ○ (e.g. every virtual or physical switch is OpenFlow enabled, Cisco ACI) ● Overlay ○ Mixed SDN and legacy networks (uses FIB) ○ (e.g. VMware NSX, OpenStack Neutron) ● Hybrid ○ Legacy hardware that supports an optional SDN controller ○ (e.g. Ubiquiti UniFi)

Slide 19

Slide 19 text

Notes from SDN at scale at Google [2] ● Massive amounts of traffic ● Economic motives (cost per bit/second) ● Better traffic distribution per link ● Manage and monitor the network as a whole

Slide 20

Slide 20 text

Not included in this presentation ● But relevant, are: ○ IO Abstraction (DPDK, IO Visor, FD.io …) ○ Mininet (network simulator) ○ Network Operating Systems (SONiC, Cumulus Linux …) ○ OpenvSwitch ○ SmartNICs, FPGAs ○ Southbound protocols (P4 language, OpenFlow ...) ○ SDN Controllers (OpenStack Ryu, OpenDaylight ...)

Slide 21

Slide 21 text

Cost / Benefit and software development ● Available software might not do what you want ● Software development release cycles ● If you are consuming the network instead of selling it as a service

Slide 22

Slide 22 text

References ● [1] Introduction to Open Source Networking Technologies (Linux Foundation) ○ Modified content of ○ https://courses.edx.org/courses/course-v1:LinuxFoundationX+LFS165x+2T2018/course/ ○ https://creativecommons.org/licenses/by/4.0/ (CC BY 4.0) ● [2] Software Defined Networking at Scale (Google) ○ Notes taken from ○ https://ai.google/research/pubs/pub42948 ○ There was a video presentation that I can’t find