Multi-controller is a scalable control plane solution for the large-scale Software-Defined Networking (SDN). To achieve high resilience, an SDN switch can connect one master controller for normal operation and one slave controller that backup the function of the master controller. Once the master controller fails, one of the slave controllers will be assigned to switches to works as the new master controller. However, the inappropriate slave controller assignment may cause controller chain failure, where running out of the capacity of the assigned controller, even crash the entire network. In this paper, we propose a dynamic slave controller assignment that prevents the network crash by planning slave controller assignment ahead of the controller failures. We first describe the controller chain failure phenomenon: due to unreasonable slave controller assignment, the entire network may crash when one controller fails. To prevent the phenomenon, we formulate the slave controller assignment problem as a multi-objective mixed optimization problem that considers latency, load balancing and robustness, and prove its NP-complete complexity. We solve the problem with a dynamic slave controller assignment (DSCA) scheme. It firstly checks whether there are controller failures in state detection module, then completes the elastic slave assignment and generates a new slave assignment for switches in efficient slave assignment module. Finally, in role adjustment module, it changes the roles of some controllers and reconnects switches. Simulation results show our solution can decrease the worst case latency under controller failures by 35.1% averagely, and reduce the probability of network crash.
Bibliographical noteFunding Information:
This work is supported by the Project of National Network Cyberspace Security, China (Grant No. 2017YFB0803204 ), Foundation for Innovative Research Group of National Natural Science Foundation of China (Grant No. 61521003 ), National Natural Science Foundation of China (Grant No. 61502530 , 61802429 , 61872382 ).
- Control plane
- Controller failure
- Software-defined networking