A Practical Byzantine-Based Approach for Faulty Switch Tolerance in Software-Defined Networks

Over the past few years, software-defined networking (SDN) has stimulated worldwide interests in both academia and industry for its proven benefits. However, the reliability of SDN has become a significant barrier in adopting it. Many efforts have been made to enhance the reliability of SDNs. However, the research all assume a benign data plane, and overlook the fundamental question: what if the switches provide tainted network state information (controller’s inputs) to the controller? To obtain a global view and produce networking decisions, SDN controllers must collect detailed and up-to-date network state information from the switches. Therefore, tainted inputs can easily disrupt the correctness of controller and reduce the reliability of SDN. In this paper, we argue that faulty switches can easily taint the controller’s inputs in SDN, which would further mislead the controller. We investigate possible consequences of the existence of faulty switches with thorough analyses and practical examples. Aiming at enhancing the reliability of SDNs, we design and implement a prototype system that leverages Byzantine model to automatically tolerate faulty switches. Extensive experiments show that the proposed system can guarantee the correctness of the controller’s inputs (specifically, flow statistics information) even when faulty switches exist with trivial overheads.

[1]  Arun Venkataramani,et al.  ZZ and the art of practical BFT execution , 2011, EuroSys '11.

[2]  Yi Liu,et al.  Flow Stealer: lightweight load balancing by stealing flows in distributed SDN controllers , 2016, Science China Information Sciences.

[3]  David A. Maltz,et al.  Data center TCP (DCTCP) , 2010, SIGCOMM 2010.

[4]  Vijay Mann,et al.  JURY: Validating Controller Actions in Software-Defined Networks , 2016, 2016 46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).

[5]  Miguel Correia,et al.  Efficient Byzantine Fault-Tolerance , 2013, IEEE Transactions on Computers.

[6]  Kevin Benton,et al.  OpenFlow vulnerability assessment , 2013, HotSDN '13.

[7]  Hai Jin,et al.  Defending Against Flow Table Overloading Attack in Software-Defined Networks , 2019, IEEE Transactions on Services Computing.

[8]  Song Guo,et al.  Can We Beat DDoS Attacks in Clouds? , 2014, IEEE Transactions on Parallel and Distributed Systems.

[9]  Johannes Behl,et al.  CheapBFT: resource-efficient byzantine fault tolerance , 2012, EuroSys '12.

[10]  Min Zhu,et al.  B4: experience with a globally-deployed software defined wan , 2013, SIGCOMM.

[11]  Theophilus Benson,et al.  Tolerating SDN Application Failures with LegoSDN , 2014, HotNets.

[12]  Lei Xu,et al.  Poisoning Network Visibility in Software-Defined Networks: New Attacks and Countermeasures , 2015, NDSS.

[13]  Miguel Correia,et al.  How to tolerate half less one Byzantine nodes in practical distributed systems , 2004, Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems, 2004..

[14]  Dennis Shasha,et al.  Building secure file systems out of byzantine storage , 2002, PODC '02.

[15]  Vinod Yegneswaran,et al.  AVANT-GUARD: scalable and vigilant switch flow management in software-defined networks , 2013, CCS.

[16]  Zibin Zheng,et al.  BFTCloud: A Byzantine Fault Tolerance Framework for Voluntary-Resource Cloud Computing , 2011, 2011 IEEE 4th International Conference on Cloud Computing.

[17]  Tuomas Aura,et al.  Spook in Your Network: Attacking an SDN with a Compromised OpenFlow Switch , 2014, NordSec.

[18]  Ehab Al-Shaer,et al.  FlowChecker: configuration analysis and verification of federated openflow infrastructures , 2010, SafeConfig '10.

[19]  Nick Feamster,et al.  The road to SDN: an intellectual history of programmable networks , 2014, CCRV.

[20]  Jim Esch,et al.  Software-Defined Networking: A Comprehensive Survey , 2015, Proc. IEEE.

[21]  Yifei Lu,et al.  SED: An SDN-Based Explicit-Deadline-Aware TCP for Cloud Data Center Networks , 2016 .

[22]  Karim M. El Defrawy,et al.  Byzantine Fault Tolerant Software-Defined Networking (SDN) Controllers , 2016, 2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC).

[23]  Song Guo,et al.  Byzantine-resilient secure software-defined networks with multiple controllers , 2014, 2014 IEEE International Conference on Communications (ICC).

[24]  Song Guo,et al.  Byzantine-Resilient Secure Software-Defined Networks with Multiple Controllers in Cloud , 2014, IEEE Transactions on Cloud Computing.

[25]  Arun Venkataramani,et al.  Separating agreement from execution for byzantine fault tolerant services , 2003, SOSP '03.

[26]  Ramakrishna Kotla,et al.  Zyzzyva: speculative byzantine fault tolerance , 2007, TOCS.

[27]  Roberto Bifulco,et al.  Position Paper: Reactive Logic in Software-Defined Networking: Accounting for the Limitations of the Switches , 2014, 2014 Third European Workshop on Software Defined Networks.

[28]  Li Li,et al.  Joint power optimization of data center network and servers with correlation analysis , 2014, IEEE INFOCOM 2014 - IEEE Conference on Computer Communications.

[29]  Nick Feamster,et al.  CORONET: Fault tolerance for Software Defined Networks , 2012, 2012 20th IEEE International Conference on Network Protocols (ICNP).

[30]  An Yang,et al.  DPTSV: A dynamic priority task scheduling strategy for TSS deadlock based on value evaluation , 2016, China Communications.

[31]  Geyong Min,et al.  Performance Modelling and Analysis of Software-Defined Networking under Bursty Multimedia Traffic , 2016, ACM Trans. Multim. Comput. Commun. Appl..

[32]  Vijay Mann,et al.  SPHINX: Detecting Security Attacks in Software-Defined Networks , 2015, NDSS.

[33]  Christo Wilson,et al.  Better never than late , 2011, SIGCOMM 2011.

[34]  Marco Canini,et al.  FatTire: declarative fault tolerance for software-defined networks , 2013, HotSDN '13.

[35]  John Lane,et al.  Prime: Byzantine Replication under Attack , 2011, IEEE Transactions on Dependable and Secure Computing.

[36]  Scott Shenker,et al.  Attested append-only memory: making adversaries stick to their word , 2007, SOSP.

[37]  Fernando M. V. Ramos,et al.  Towards secure and dependable software-defined networks , 2013, HotSDN '13.

[38]  David Walker,et al.  Consistent updates for software-defined networks: change you can believe in! , 2011, HotNets-X.

[39]  Marco Canini,et al.  Automatic failure recovery for software-defined networks , 2013, HotSDN '13.

[40]  Fan Yao,et al.  A comparative analysis of data center network architectures , 2014, 2014 IEEE International Conference on Communications (ICC).

[41]  Adrian Perrig,et al.  Fleet: defending SDNs from malicious administrators , 2014, HotSDN.

[42]  Jacek Rak Resilient Routing in Communication Networks , 2015, Computer Communications and Networks.

[43]  Hai Jin,et al.  HostWatcher: Protecting hosts in cloud data centers through software-defined networking , 2017, Future Gener. Comput. Syst..

[44]  Brighten Godfrey,et al.  VeriFlow: verifying network-wide invariants in real time , 2012, HotSDN '12.

[45]  An Yang,et al.  Dynamic measurement protocol in infrastructure as a service , 2014 .

[46]  Miguel Castro,et al.  Practical byzantine fault tolerance and proactive recovery , 2002, TOCS.

[47]  Jean-Philippe Martin,et al.  Fast Byzantine Consensus , 2006, IEEE Transactions on Dependable and Secure Computing.

[48]  Fernando M. V. Ramos,et al.  On the Design of Practical Fault-Tolerant SDN Controllers , 2014, 2014 Third European Workshop on Software Defined Networks.

[49]  Masayuki Murata,et al.  Evaluation of data center network structures considering routing methods , 2012, ICNS 2013.