Byzantine Fault Tolerant Software-Defined Networking (SDN) Controllers
Karim Eldefrawy, Tyler Kaczmarek · 2016
A Software-Defined Network (SDN) with a centralized controller suffers from a single point of compromise and failure which is detrimental to both security and reliability. Currently, the design space for robust and reliable distributed controllers remains largely unexplored except for some initial proposals incorporating simple majority voting. This paper develops, and assesses performance of, a prototype SDN controller that can tolerate Byzantine faults in both the control and data planes. The performance of our resilient controller implementation is measured against current standard fault vulnerable open source SDN controllers. We experiment with our prototype and show a reasonable slowdown as is expected in the transition from a fault vulnerable to a fault tolerant design, our best controller exhibits only a 2x slowdown even though we have 4 replica components, and thus can tolerate a single compromised component without affecting control and/or forwarding decisions in the networks. Our controllers do not yet achieve high performance levels to be adopted in large-scale networks, e.g., to handle tens of thousands of new flows or flow modification requests per second, but we argue that (as a proof of concept) our controllers demonstrate feasibility of constructing such resilient programmable networks.