The Controller is responsible for centralized control of the entire SDN network and plays an important role in grasping the resource view of the entire network and improving network resource delivery. However, the centralization of control capabilities also means that the security and performance of the controller board become the bottleneck of the whole network. Once the controller is not guaranteed in performance or security, the downgrading or even paralysis of the service capability of the entire network is followed .; In addition, a single controller cannot cope with SND network problems across multiple regions. A distributed cluster composed of multiple SDN controllers is required, to avoid the reliability, scalability, and performance problems of a single controller node. Currently, no standards have been defined for East-West interfaces used for communication and connection between multiple controllers, but experts say some very mature cluster technologies can be applied to SDN networks to solve the above problems.
The software-based controller allows the server to act as the carrier of the controller. The controller cluster can be built based on the server cluster. Because SDN controllers play an important role in SDN networks, the design of controller clusters is more special. For example, to support adding new controllers to running clusters, in order to improve scalability and save the status of the switch corresponding to the failure controller to ensure reliability, especially because the controller is familiar with SDN switches across the network and ensures network status consistency through distributed collaboration, A typical SDN Architecture Based on controller clusters.
Controller cluster-based SDN Architecture
SDN can make full use of server cluster technology (such as Hazelcast) to deploy software-implemented controllers. For a distributed cluster, the most important thing is the collaboration between controllers, the system requires a dedicated cluster communication mechanism for information transmission between controllers. For example, the JGroups communication library has become a mature technology.
To ensure the control effect of controller clusters on SDN networks, two aspects of design and implementation are very important. The first is the election of the master controller. The master controller is mainly responsible for generating and maintaining the status information of controllers and switches throughout the network. Once the status information becomes invalid, you need to select a new master controller from the cluster's secondary controller. The second is the transparency of the controller cluster to the vswitch. That is, during the operation of the SDN network, the vswitch does not need to worry about which controller the current command is sent, at the same time, when it sends data packets to the Controller, it can maintain the operation mode of the previous single controller, thus ensuring the logical concentration of the controller. To achieve the above objectives, the key elements of the controller cluster design include the following:
1. Primary controller election
During network operation, the secondary controller of the cluster needs to periodically monitor the working status of the master controller. Once the access is not reachable, the election of the master controller and the election of the master controller in the cluster are required, there are already many algorithms in the industry, such as paxos-based distributed election algorithms. In algorithm design, the complexity of algorithm implementation needs to be considered. In particular, if the Controller cluster is deployed in the wide area network, network quality factors such as bandwidth and latency should also be considered.
2. Cluster virtual address
To achieve load balancing between controllers, the Controller cluster can use the traditional load balancing technology. For example, when a switch registers with the Controller, it can send a static virtual IP address, then, the Controller cluster determines and records the Controller corresponding to the virtual address through communication between controllers based on the server Load balancer algorithm, and requires the Controller to be responsible for controlling the switch, the data packets returned by the Controller to the vswitch also use the virtual IP address as the source address to make the Controller cluster transparent to the vswitch.
3. network-wide topology acquisition
Topology Information in SDN networks is the key to optimizing resource scheduling. To obtain the status of controllers and switches across the network, link discovery is required for each controller cycle, and collected network information is sent to the master controller for summary, the master controller is then uniformly distributed to each controller. If the controller finds that the device involved in data stream transmission exceeds the Switch range controlled by the controller when customizing the data stream forwarding policy, it will notify the corresponding controller of the switch according to the network topology, A consistent policy is developed through negotiation, and then uniformly distributed to the switch.
4. Controller Failure Handling
No matter whether the master controller or the secondary controller is invalid, the cluster can use the Server Load balancer technology to map the virtual IP addresses of the previously assigned invalid servers to other controllers that work normally, it also triggers the update and acquisition of the network-wide top information.
Using a cluster controller, the SDN network can avoid single point of failure caused by a single controller. It also has good scalability to cope with huge switch traffic. In the WAN environment, controllers deployed in multiple regions can effectively improve the delay of openflow data packet transmission and improve network performance.
Controller cluster is one of the important technologies to solve the east-west expansion of controllers. Although many mature technologies and successful experiences are available for reference, there is still much more to be studied for SDN networks, for example, to specify the east-west interface standards between controllers, this will help provide better openness at the control layer, achieve compatibility between controllers, and better support the improvement of SDN deployment scale.