SDN Architecture
| Plane | Function | Location |
| Application | Network apps: routing, firewall, LB | Northbound API |
| Control | Central brain — topology, path decisions | SDN Controller (ONOS, ODL) |
| Data | Packet forwarding — match/action | Switches (OVS, hardware) |
OpenFlow Basics
| Item | Description |
Flow Table | Match fields (src/dst IP, port, VLAN) → action (forward, drop, modify) |
OpenFlow Channel | TLS-secured control channel between controller and switch |
Packet-In | Switch sends unmatched packet to controller for decision |
Flow-Mod | Controller installs forwarding rule in switch flow table |
Reactive vs Proactive | Reactive: controller queried per flow. Proactive: rules pre-installed |
Network Overlays
| Technology | Encapsulation | Use Case |
| VXLAN | L2 over UDP (port 4789) | Multi-tenant cloud, VMware NSX |
| NVGRE | L2 over GRE | Microsoft Hyper-V networks |
| Geneve | Extensible L2 over UDP | Modern cloud networking |
| GENEVE | Flexible metadata | Open vSwitch, Linux kernel |
SDN Controllers
| Controller | Protocol | Notes |
| ONOS | OpenFlow, NETCONF | Carrier-grade, distributed |
| OpenDaylight | OpenFlow, NETCONF, BGP | Modular Java platform |
| Ryu | OpenFlow | Python framework — research/learning |
| Floodlight | OpenFlow | Java — Big Switch Networks |
Pro Tip: SDN decouples the control plane (decision-making) from the data plane (packet forwarding). This centralizes network intelligence and makes automation possible via APIs.