BIT451 Network and System Administration

Network and System AdministrationUnit 1214 min read

SDN: Architecture, Controllers, OpenFlow & Real-World Deployments

Unit 12 of Network and System Administration explores Software-Defined Networking (SDN), covering its layered architecture, OpenFlow protocol, SDN controllers (centralized vs. distributed), northbound/southbound interfaces, and real-world applications in cloud providers, ISPs, and enterprise networks. Includes comparis

TAKEAWAYS:

  • SDN decouples the control plane (logic) from the data plane (forwarding), enabling centralized network management via a controller.
  • The OpenFlow protocol defines how SDN controllers communicate with forwarding devices (switches/routers) to install flow tables.
  • SDN controllers use northbound APIs (REST, OpenDaylight) for applications and southbound protocols (OpenFlow, NetConf) for devices.
  • Real-world examples include Google’s B4 global WAN, Facebook’s SDN-powered data centers, and Ncell’s traffic optimization.
  • Open-source tools like OpenDaylight, ONOS, and Ryu enable cost-effective SDN deployments for universities and startups.
  • Challenges include controller scalability, security risks (single point of failure), and vendor lock-in with proprietary SDN solutions.

What is SDN? Breaking the Traditional Network Model

Traditional networks (like those used by NTC or Ncell) rely on distributed control: each router/switch makes forwarding decisions independently using routing protocols (OSPF, BGP). This creates silos of intelligence, making large-scale changes (e.g., rerouting traffic during a Pathao surge) slow and error-prone.

SDN centralizes control into a logical controller, which programs forwarding devices (switches/routers) via standardized protocols. This is like eSewa centralizing all bill payments instead of each merchant managing their own system.

[object Object][object Object][object Object][object Object]Traditional NetworkRouter1Switch1SDN ControllerSDN Network
Comparison: Traditional vs. SDN control planes (NTC/Ncell analogy)

Why SDN?

  • Agility: Change network behavior dynamically (e.g., Daraz rerouting orders during sales).
  • Cost: Use cheaper "dumb" switches (no routing tables) and offload intelligence to servers.
  • Programmability: Automate tasks like load balancing or security policies via scripts.

SDN Architecture: The Three Layers

SDN is organized into three planes (not to be confused with the OSI model!):

Application LayerControl LayerInfrastructure Layer
SDN’s three-plane architecture (NTC’s centralized billing vs. distributed merchants analogy)
Plane Role Example Components
Application Defines network policies (e.g., QoS for WhatsApp calls). REST APIs, OpenDaylight apps, custom scripts.
Control Centralized brain (SDN controller) that translates apps into rules. OpenDaylight, ONOS, Ryu, Cisco ACI.
Infrastructure Physical/data plane: switches/routers that forward traffic. Open vSwitch, Pica8 switches, Juniper QFX.

The SDN Controller: The Brain of the Network

The SDN controller is the single point of control that:

  1. Receives requests from applications (e.g., "Prioritize video traffic for YouTube").
  2. Translates them into flow rules (e.g., "Send all UDP port 5000 to switch port 3").
  3. Pushes rules to forwarding devices via southbound protocols (primarily OpenFlow).

How an SDN Controller Works: A Worked Example

Scenario: Nepal Telecom (NTC) wants to prioritize voice traffic (VoIP) during peak hours to reduce call drops.

  1. Application Layer: An NTC admin writes a policy in OpenDaylight: "All SIP (VoIP) traffic (UDP port 5060) gets low latency, high bandwidth."
  2. Control Layer: The controller parses this and generates flow rules:
    • Match: IP protocol = UDP, dst port = 5060
    • Action: Send to queue 1 (high priority), set DSCP EF (Expedited Forwarding)
  3. Infrastructure Layer: The controller pushes this rule to all edge switches via OpenFlow.
  4. Result: VoIP packets bypass congested queues, improving call quality.
sequenceDiagram
    participant Admin as NTC Admin
    participant Controller as OpenDaylight Controller
    participant Switch as Edge Switch (Open vSwitch)
    participant User as VoIP Call

    Admin->>Controller: Policy: "Prioritize SIP (UDP 5060)"
    Controller->>Switch: Push Flow Rule (OpenFlow)
    User->>Switch: SIP Packet (UDP 5060)
    Switch-->>User: Forward via High-Priority Queue
    Note over Switch: Flow Table Updated Dynamically

OpenFlow: The Language of SDN

OpenFlow is the southbound protocol that lets controllers program switches. Key features:

  • Flow Tables: Switches store rules like:
    • Match Fields: Source IP, destination port, VLAN ID.
    • Actions: Forward, drop, modify packet headers.
  • Secure Channel: Uses TLS to encrypt controller-switch communication.
  • Versioning: OpenFlow 1.0 (basic) to 1.5+ (advanced features like group tables).
016324863Match Fields32 bitsPriority8 bitsActions32 bitsCookie32 bits
OpenFlow table entry format (VoIP prioritization example)

Example OpenFlow Rule (for Khalti transactions):

Field Value
Match IP src = 192.168.1.100, TCP dst = 443 (HTTPS)
Priority 1000
Action Output to port 2, set VLAN ID = 10
Timeout Hard: 300s, Idle: 60s

Northbound vs. Southbound Interfaces

Interface Direction Protocol/Example Purpose
Northbound Controller → Apps REST, OpenDaylight APIs, Python SDK Let apps request network changes (e.g., eSewa load balancing).
Southbound Controller → Devices OpenFlow, NetConf, OVSDB Program switches/routers (e.g., Ncell traffic shaping).
East-Westbound Controller ↔ Controller XMPP, gRPC Multi-controller coordination (e.g., Google B4 global WAN).

SDN in the Real World

1. Google’s B4: SDN for Global WAN

  • What it does: Google uses SDN to manage its B4 global network, connecting data centers across continents.
  • How SDN helps:
    • Centralized routing: Instead of OSPF/BGP, B4 uses a global SDN controller to optimize paths in real time.
    • Traffic engineering: Dynamically reroutes traffic during outages (e.g., if a fiber cable fails in Nepal-India link).
    • Cost savings: Uses cheaper switches and reduces WAN link costs by 30%.

2. Facebook’s SDN-Powered Data Centers

  • What it does: Facebook’s Wedge switches and FBOSS (SDN controller) manage traffic across 100+ data centers.
  • How SDN helps:
    • Automated load balancing: Distributes WhatsApp traffic evenly across servers.
    • Security: SDN controllers can drop malicious flows (e.g., DDoS attacks) instantly by updating all switches.

3. Ncell’s Traffic Optimization

  • What it does: Ncell uses SDN to prioritize mobile traffic during events (e.g., Dashain festivals).
  • How SDN helps:
    • QoS policies: VoLTE (voice) and Ncell TV traffic get higher priority than background data.
    • Dynamic bandwidth allocation: Extra capacity is allocated to busy cell towers automatically.

Open-Source SDN Tools

Tool Use Case Key Features
OpenDaylight Enterprise SDN (like NTC core network). Modular, supports OpenFlow, NetConf.
ONOS ISPs and large-scale networks (e.g., Nepal Telecom). Scalable, supports SDN for 5G.
Ryu Prototyping and education (e.g., TU labs). Python-based, easy to extend.
Open vSwitch Virtual SDN (used in KVM/Xen clouds). OpenFlow support, integrates with VMs.

Example: A Pokhara University lab could deploy Ryu + Open vSwitch to simulate an SDN-controlled campus network.


Advantages and Challenges of SDN

Advantages Challenges
✅ Centralized management: One interface to configure entire network. ❌ Single point of failure: Controller downtime = network paralysis.
✅ Programmability: Automate tasks via scripts (e.g., Daraz order routing). ❌ Security risks: Controller compromise = full network control.
✅ Cost-effective: Use cheap switches (e.g., Pica8 for startups). ❌ Vendor lock-in: Proprietary SDN (e.g., Cisco ACI) limits flexibility.
✅ Agility: Instantly change policies (e.g., Nepal Rastra Bank fraud detection). ❌ Learning curve: Requires new skills (OpenFlow, Python for controllers).
✅ Multi-vendor support: Works with Cisco, Juniper, and white-box switches. ❌ Performance overhead: Controller may become a bottleneck.

SDN vs. Traditional Networking

Feature Traditional Networking SDN
Control Plane Distributed (each router/switch runs OSPF/BGP). Centralized (SDN controller).
Configuration CLI (e.g., router(config)#ip route). Programmatic (REST APIs, Python scripts).
Scalability Manual scaling (add more routers). Automatic (controller handles growth).
Innovation Speed Slow (vendor-specific). Fast (new apps can use northbound APIs).
Cost Expensive (enterprise routers). Cheaper (dumb switches + servers).
Example Use Case NTC core network (OSPF/BGP). Google B4 global WAN.

Security Considerations in SDN

SDN introduces new attack surfaces:

  1. Controller Compromise:

    • If hackers take over the controller (e.g., via MITM on OpenFlow), they can rewrite all flow rules.
    • Mitigation: Use TLS encryption, authentication (TLS certificates), and controller clustering.
  2. Flow Table Exhaustion:

    • Attackers flood switches with fake flow rules, filling up tables and causing drops.
    • Mitigation: Limit flow table size, use timeout policies.
  3. Northbound API Abuse:

    • Malicious apps can request unauthorized network changes (e.g., blackholing legitimate traffic).
    • Mitigation: Role-based access control (RBAC) for northbound APIs.

Real Example: In 2018, researchers demonstrated how an attacker could hijack an SDN controller to redirect eSewa payments to their own servers by spoofing OpenFlow messages.


Exam Tip: How to Score Full Marks

  1. Define SDN Clearly:

    • Always start with: "SDN decouples the control plane (logic) from the data plane (forwarding) using a centralized controller."
    • Mention OpenFlow as the key southbound protocol.
  2. Draw the Three Layers:

    • Examiners love diagrams. Sketch the application-control-infrastructure planes with arrows for northbound/southbound interfaces.
  3. Compare with Traditional Networking:

    • Use a table (like above) to highlight differences in control plane, scalability, and programmability.
  4. Real-World Examples:

    • Google B4 (global WAN), Facebook’s Wedge switches, or Ncell traffic prioritization are safe bets.
    • For open-source tools, mention OpenDaylight or Ryu with their use cases.
  5. Security is a Hot Topic:

    • Always discuss controller security (TLS, clustering) and flow table attacks when asked about challenges.
  6. Avoid Vague Statements:

    • ❌ "SDN is faster." → ✅ "SDN enables dynamic policy changes (e.g., rerouting Pathao traffic during peak hours) without manual CLI commands."

Practical Exercise: Design an SDN for a University Campus

Scenario: Tribhuvan University (TU) wants to deploy SDN to:

  1. Prioritize exam result uploads (HTTP traffic) during results day.
  2. Isolate student Wi-Fi from faculty traffic.
  3. Automatically block torrent traffic (BitTorrent) during exams.

Steps:

  1. Choose a Controller: OpenDaylight (open-source, scalable).
  2. Define Policies:
    • Policy 1: If (HTTP dst port = 80 AND src IP in "exam-servers") → High Priority Queue.
    • Policy 2: If (VLAN ID = 10) → Isolate from VLAN 20 (faculty).
    • Policy 3: If (DPI detects BitTorrent) → Drop packet.
  3. Deploy:
    • Install Open vSwitch on campus switches.
    • Push policies via OpenFlow from the controller.
  4. Monitor: Use OpenDaylight’s UI to track compliance.

Mermaid Diagram of the Setup:

[object Object][object Object][object Object]OpenDaylight ControllerEdge Switch 1Edge Switch 2Student Wi-Fi (VLAN 10)Faculty LAN (VLAN 20)Exam Result ServerBitTorrent Drop Zone
University campus SDN deployment with traffic prioritization

Based on the TU BIT syllabus for Network and System Administration (BIT451), unit 12.

Discussion

Loading…