Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOpsPorto Meetup21: Introduction to Software Defined Networking by Remi Dias

DevOpsPorto
October 16, 2018

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

DevOpsPorto

October 16, 2018
Tweet

More Decks by DevOpsPorto

Other Decks in Technology

Transcript

  1. Introduction to Software
    Defined Networking

    View Slide

  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

    View Slide

  3. But wait... Is it really for
    programmers?

    View Slide

  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)

    View Slide

  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

    View Slide

  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

    View Slide

  7. Legacy networks

    View Slide

  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

    View Slide

  9. The new Software Defined
    Networking model

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

  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…)

    View Slide

  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)

    View Slide

  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)

    View Slide

  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)

    View Slide

  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)

    View Slide

  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)

    View Slide

  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

    View Slide

  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 ...)

    View Slide

  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

    View Slide

  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

    View Slide