“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
Network Engineer / Sys Admin functions ● Interconnects networking devices ● Infrastructure planning and deployment ● Network and systems performance monitoring ● Deep knowledge of network services and protocols
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
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
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
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
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…)
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)
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)
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)
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)
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)
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
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
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