← Back to Projects

SDN Router — POX/OpenFlow (Mininet)

Python SDN app on the POX controller. Implements routing and basic firewall over a campus‑style topology (Core, Faculty, Student Housing, IT, Data Center, Internet stubs). Handles ARP, per‑subnet forwarding, and policy enforcement.

POX OpenFlow Mininet Python Routing Firewall (ACL)
~[X] msavg ICMP RTT (lab)
[Y]/[Y]tests passed
+[Z]%policy coverage

Objectives

  • Forward IPv4 traffic across distinct LAN subnets via OpenFlow rules.
  • Handle ARP separately (flood/learn) and avoid type errors on non‑IP frames.
  • Enforce firewall policies (e.g., block guest → data‑center, allow trusted PCs).

Implementation

  • Topology: s1 core; s2 Faculty; s3 Student Housing; s4 IT; s5 Data Center; Internet stubs on s1:6–8.
  • Hard‑coded subnet→port mapping helper for deterministic routing.
  • ARP handled first by ethertype; flood, learn, and cache sender IP↔MAC.
  • Routing via ip matches and output ports; idle‑timeout flows reduce controller load.
  • Firewall rules installed at higher priority before general forwarding.

Results

  • End‑to‑end connectivity across all subnets with stable throughput.
  • Unauthorized guest→data‑center traffic blocked while preserving trusted access.
  • Concise rule sets with clear control/data‑plane separation.
Mininet topology and POX logs
Topology & POX events
Flow table and connectivity checks
Flow table & connectivity