📡Systems Approach to Computer Networks Unit 22 – Software-Defined Networking & Virtualization

Software-Defined Networking (SDN) and virtualization are revolutionizing network architecture. By decoupling control from data planes and abstracting physical resources, these technologies enable programmable, flexible networks that can be managed centrally and adapted on-demand. Together, SDN and virtualization create more efficient, scalable networks. They support virtual networks with custom topologies and policies, facilitate automation through APIs, and enable network functions to run as software instances. This approach transforms how networks are designed, deployed, and managed.

What's SDN & Virtualization?

  • Software-Defined Networking (SDN) decouples network control and forwarding functions, enabling network control to become directly programmable and the underlying infrastructure to be abstracted for applications and network services
  • Virtualization creates a virtual version of a device or resource (servers, storage devices, networks) that can be managed and deployed independently of the underlying physical hardware
  • SDN and virtualization work together to create more flexible, scalable, and efficient networks by separating the control plane from the data plane and abstracting physical resources
  • Enables centralized management of network resources through a software-based controller (OpenFlow) that can dynamically configure and optimize network behavior
  • Allows for the creation of virtual networks that can be isolated, customized, and deployed on-demand to meet specific application or tenant requirements
    • Virtual networks can have their own topology, addressing scheme, and security policies
  • Facilitates network automation and orchestration through APIs and programming languages (Python, Java) that can be used to automate network provisioning, configuration, and management tasks
  • Supports the deployment of network functions as virtualized software instances (NFV) that can be dynamically scaled and placed based on demand and resource availability

Key Concepts & Technologies

  • Network Function Virtualization (NFV) decouples network functions (routing, firewalling, load balancing) from proprietary hardware appliances and runs them as software on virtualized infrastructure
    • Enables the deployment of network services as virtualized instances that can be dynamically scaled and placed based on demand
  • OpenFlow is a communication protocol that enables an SDN controller to interact with the forwarding plane of network devices (switches, routers) and control their behavior
    • Allows the controller to define flow tables and rules that determine how packets are forwarded and processed by network devices
  • Network Slicing is a technique that allows multiple virtual networks to be created on top of a shared physical infrastructure, each with its own resources, performance characteristics, and service level agreements (SLAs)
  • Virtual Switching enables the creation of virtual switches that can connect virtual machines (VMs) and containers within a host or across multiple hosts
    • Supports advanced features such as VLANs, QoS, and security policies
  • Overlay Networks create virtual networks on top of existing physical networks using tunneling protocols (VXLAN, NVGRE) that encapsulate and transport packets across the underlying infrastructure
  • Network Automation tools (Ansible, Puppet) enable the automated provisioning, configuration, and management of network devices and services using declarative languages and APIs
  • Intent-Based Networking allows network administrators to define high-level policies and intents that are automatically translated into low-level configurations and enforced across the network
  • Edge Computing brings compute and storage resources closer to the edge of the network (IoT devices, mobile users) to reduce latency, improve performance, and enable new applications and services

SDN Architecture Breakdown

  • SDN architecture consists of three main layers: application layer, control layer, and infrastructure layer
    • Application layer contains network applications and services that communicate their requirements and behavior to the control layer through northbound APIs
    • Control layer consists of one or more SDN controllers that maintain a global view of the network and make decisions on how to configure and optimize the network based on application requirements and policies
      • Controllers communicate with the infrastructure layer through southbound APIs (OpenFlow) to program the behavior of network devices
    • Infrastructure layer consists of physical and virtual network devices (switches, routers, firewalls) that forward and process packets based on the instructions received from the control layer
  • Northbound APIs enable communication between the application layer and the control layer, allowing applications to express their network requirements and receive network services and resources
    • RESTful APIs and programming languages (Python, Java) are commonly used for northbound communication
  • Southbound APIs enable communication between the control layer and the infrastructure layer, allowing the controller to program and manage the behavior of network devices
    • OpenFlow is the most widely used southbound protocol, but other protocols (NETCONF, OVSDB) are also used for specific use cases
  • East-West APIs enable communication between multiple SDN controllers to support scalability, high availability, and federation of SDN domains
  • Data Plane (forwarding plane) is responsible for forwarding packets based on the flow tables and rules installed by the control plane
    • Consists of physical and virtual switches and routers that perform packet forwarding and processing
  • Control Plane is responsible for making decisions on how to configure and optimize the network based on application requirements and policies
    • Consists of one or more SDN controllers that maintain a global view of the network and communicate with the data plane through southbound APIs
  • Management Plane is responsible for monitoring, configuring, and troubleshooting the network
    • Includes tools and interfaces (CLI, GUI, APIs) for network administrators to manage and operate the SDN environment

Network Virtualization Techniques

  • VLAN (Virtual Local Area Network) is a technique that allows multiple logical networks to be created on top of a single physical network by tagging packets with VLAN IDs
    • Enables network segmentation, isolation, and security by separating traffic between different VLANs
  • VXLAN (Virtual Extensible LAN) is an overlay network protocol that encapsulates Layer 2 Ethernet frames within Layer 3 UDP packets to enable the creation of large-scale virtual networks across multiple physical networks
    • Supports up to 16 million virtual networks and enables network isolation, mobility, and scalability
  • NVGRE (Network Virtualization using Generic Routing Encapsulation) is another overlay network protocol that encapsulates Layer 2 Ethernet frames within Layer 3 GRE packets to create virtual networks across multiple physical networks
  • Geneve (Generic Network Virtualization Encapsulation) is an extensible overlay network protocol that supports the creation of large-scale virtual networks with custom metadata and options
  • STT (Stateless Transport Tunneling) is an overlay network protocol that encapsulates Layer 2 Ethernet frames within TCP packets to enable the creation of virtual networks across multiple physical networks
    • Designed to provide high performance and low latency for virtualized workloads
  • Virtual Routing and Forwarding (VRF) is a technique that allows multiple virtual routing tables to be created on a single physical router, enabling network isolation and segmentation
  • Virtual Switching is a technique that allows virtual switches to be created within a hypervisor or container host to enable communication between virtual machines or containers
    • Supports advanced features such as VLANs, QoS, and security policies

Benefits & Use Cases

  • Enables network agility and flexibility by allowing network resources to be dynamically provisioned, configured, and optimized based on application requirements and policies
  • Reduces network complexity and operational costs by automating network provisioning, configuration, and management tasks through APIs and programming languages
  • Improves network scalability and performance by enabling the creation of large-scale virtual networks that can span multiple physical networks and data centers
  • Enhances network security and isolation by enabling the creation of virtual networks with their own security policies, access controls, and encryption mechanisms
  • Facilitates the deployment of new applications and services by providing on-demand network resources and services that can be quickly provisioned and scaled based on demand
  • Enables the creation of multi-tenant environments where multiple customers or departments can share the same physical infrastructure while maintaining isolation and security
    • Commonly used in cloud computing and service provider networks
  • Supports the deployment of network functions as virtualized software instances (NFV) that can be dynamically scaled and placed based on demand and resource availability
    • Enables the creation of virtualized network services (firewalls, load balancers, VPN gateways) that can be deployed and managed as software
  • Facilitates the adoption of DevOps practices and continuous integration/continuous deployment (CI/CD) pipelines by enabling network infrastructure to be managed as code and integrated with application development and deployment processes
  • Enables the creation of software-defined WAN (SD-WAN) solutions that can intelligently route traffic across multiple WAN links based on application requirements and network conditions
    • Improves WAN performance, reliability, and cost-efficiency by leveraging software-defined policies and automation

Challenges & Limitations

  • Requires a significant shift in network architecture and operations, which can be complex and disruptive to existing networks and processes
  • Depends on the availability and maturity of SDN and virtualization technologies, which may not be fully supported by all network devices and vendors
  • Introduces new security risks and attack surfaces, such as the centralization of network control in SDN controllers, which can become a single point of failure or attack
  • Requires new skills and expertise in software development, automation, and network programming, which may be difficult to find or develop in-house
  • May introduce performance overhead and latency due to the additional layers of abstraction and virtualization, which can impact application performance and user experience
  • Can be limited by the scalability and performance of the underlying physical infrastructure, which may not be able to support the demands of large-scale virtual networks and applications
  • Requires careful planning and design to ensure interoperability and compatibility between different SDN and virtualization technologies and vendors
  • May be subject to regulatory and compliance challenges, particularly in industries with strict data privacy and security requirements (healthcare, finance)

Implementation & Tools

  • OpenDaylight is an open-source SDN controller platform that supports a wide range of southbound protocols (OpenFlow, NETCONF, OVSDB) and provides a modular and extensible architecture for building SDN applications and services
  • ONOS (Open Network Operating System) is another open-source SDN controller platform that is designed for high availability, scalability, and performance, and supports a variety of use cases (service provider networks, data center networks, enterprise networks)
  • Kubernetes is an open-source container orchestration platform that provides a powerful and flexible framework for deploying, scaling, and managing containerized applications and services
    • Supports network virtualization and SDN through plugins and extensions (Flannel, Calico, Cilium)
  • OpenStack is an open-source cloud computing platform that provides a set of tools and services for building and managing private and public clouds
    • Supports network virtualization and SDN through plugins and extensions (Neutron, Contrail, OpenDaylight)
  • Ansible is an open-source automation platform that enables the automated provisioning, configuration, and management of network devices and services using a simple and declarative language (YAML)
  • Puppet is another open-source automation platform that enables the automated provisioning, configuration, and management of network devices and services using a declarative language and a client-server architecture
  • Mininet is a network emulation platform that enables the creation of realistic virtual networks on a single machine, and supports the development and testing of SDN applications and protocols
  • Wireshark is a network protocol analyzer that enables the capture, inspection, and analysis of network traffic, and supports the decoding and dissection of a wide range of protocols (OpenFlow, VXLAN, NVGRE)
  • Increasing adoption of SDN and virtualization in enterprise and service provider networks, driven by the need for greater agility, flexibility, and cost-efficiency
  • Growing convergence of SDN and NFV, enabling the creation of fully virtualized and software-defined networks that can be dynamically provisioned and optimized based on application requirements and policies
  • Emergence of intent-based networking, which enables network administrators to define high-level policies and intents that are automatically translated into low-level configurations and enforced across the network
  • Expansion of SDN and virtualization to the edge of the network, enabling the creation of distributed and intelligent edge computing platforms that can support new applications and services (IoT, AR/VR, autonomous vehicles)
  • Integration of SDN and virtualization with other emerging technologies, such as artificial intelligence and machine learning, to enable the creation of self-driving networks that can automatically optimize and heal themselves based on real-time data and insights
  • Increasing focus on network security and resilience, leveraging SDN and virtualization techniques to create more secure and resilient networks that can detect and respond to threats in real-time
  • Growing adoption of open-source and standardized SDN and virtualization technologies, enabling greater interoperability and innovation across the networking ecosystem
  • Emergence of new business models and services enabled by SDN and virtualization, such as network-as-a-service (NaaS), software-defined perimeter (SDP), and virtualized network functions (VNFs) as a service.


© 2024 Fiveable Inc. All rights reserved.
AP® and SAT® are trademarks registered by the College Board, which is not affiliated with, and does not endorse this website.

© 2024 Fiveable Inc. All rights reserved.
AP® and SAT® are trademarks registered by the College Board, which is not affiliated with, and does not endorse this website.