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

A2c14a1c4e16aa337c7d36abe7d1cf8f?s=128

DevOpsPorto

October 16, 2018
Tweet

Transcript

  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, FD.io …) ◦ 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 ◦ 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