DevOpsPorto Meetup21: Introduction to Software Defined Networking by Remi Dias

DevOpsPorto Meetup21: Introduction to Software Defined Networking by Remi Dias

Remi Dias provides an introduction to the concepts and state of the art of Software Defined Networks



October 16, 2018


  1. Introduction to Software Defined Networking

  2. “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
  3. But wait... Is it really for programmers?

  4. 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)
  5. Network Engineer / Sys Admin functions • Interconnects networking devices

    • Infrastructure planning and deployment • Network and systems performance monitoring • Deep knowledge of network services and protocols
  6. 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
  7. Legacy networks

  8. 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
  9. The new Software Defined Networking model

  10. 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
  11. The new model • Open Networking Foundation suggests a reference

    model ◦ Application layer ◦ Control layer ◦ Infrastructure layer
  12. 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
  13. 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…)
  14. 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)
  15. 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)
  16. 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)
  17. 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)
  18. 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)
  19. 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
  20. Not included in this presentation • But relevant, are: ◦

    IO Abstraction (DPDK, IO Visor, …) ◦ Mininet (network simulator) ◦ Network Operating Systems (SONiC, Cumulus Linux …) ◦ OpenvSwitch ◦ SmartNICs, FPGAs ◦ Southbound protocols (P4 language, OpenFlow ...) ◦ SDN Controllers (OpenStack Ryu, OpenDaylight ...)
  21. 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
  22. References • [1] Introduction to Open Source Networking Technologies (Linux

    Foundation) ◦ Modified content of ◦ ◦ (CC BY 4.0) • [2] Software Defined Networking at Scale (Google) ◦ Notes taken from ◦ ◦ There was a video presentation that I can’t find