Abstract
Introduction
Concerning the weaknesses in the traditional network architecture that focus on connectivity but lack of controllability, the new network architecture of SDN (software-defined networking)1,2 is proposed and recognized. This new type of future network architecture is characterized by the separation of the network control plane and the data forwarding plane; through its advantages such as open communication protocols (e.g. OpenFlow), open interfaces, and programmability, this flexible architecture enables the network management and control capabilities to be simpler, more dynamic, and more flexible.
However, early SDNs were mainly used for small-scale and simple environments, and adopt single-controller mode to implement centralized network control. 3 Nowadays, SDNs are gradually spreading to large-scale (such as data centers) and complex networks (such as large multi-agency collaborative environments). Although some network environments (such as data centers and cloud) still use a single control center structure, most other SDNs have expanded to large-scale collaborative network environments, such as government and large enterprise. The single-controller mode has become a performance bottleneck. Therefore, inspired by the idea of multi-information approaches,4–6 the multi-controller SDN, that is, the distributed deployment of multiple controllers in an SDN,7–9 becomes an inevitable choice. In a multi-controller SDN architecture, different controllers often support different types of management, for example, for security control and quality of service (QoS), which may lead to a policy conflict. For example, the policy that rewriting the source address flow for QoS should cause the failure of the source-based firewall policy, and traffic scheduling policies for different QoS-class services may generate routing confliction of the flow with same source and target address. Obviously, how to effectively detect these conflicts of control policies in a multi-controller SDN and thus provide a basis for further conflict resolution has become a key issue for the current SDN.
Currently, research on policy conflict detection for SDN has been gradually carried out. For example, for the conflict between traffic scheduling policies and firewall policies, Hu et al. 10 proposed the FlowGuard framework to track traffic flows to detect the conflicts with firewall strategies when policies are issued, but this method does not involve conflicts between forwarding policies; FortNOX 11 proposed a security constraint mechanism for OpenFlow controllers to detect indirect security conflicts based on role authorization and constraints, and this mechanism also fails to handle forwarding policy conflicts; Wang et al. 12 proposed a detection method for the conflict between traffic scheduling policies and firewall strategies, and this method also unable to resolve the forwarding policy conflict; Shu et al. 13 proposed a controller module FLOVER based on NOX to prevent conflicts between network security policies and flow strategies of application, but this method does not involve conflicts between forwarding and auditing. However, most of these methods are only for the strategies conflict between application level and security level. They cannot yet solve other types of policy conflicts such as within application level itself. In addition to this, researchers have also studied the conflict between control strategies for different services. However, most of these methods do not consider the policy conflict between forwarding and security. For example, Dixit et al. 14 proposed the FlowBricks framework to solve the problem of control entries compatibility among heterogeneous controllers; Pisharody et al. 15 proposed to use hash table and logical reasoning to detect the conflict of flow entries between different virtual subnets. But these methods are mainly aimed at the conflicts of flow table entries on switcher devices rather than the flow policy of entire network. In addition, Wang et al. 16 proposed a conflict detection method for network permission allocation among multiple administrators, but it can only solve the policy inconsistency problem caused by permission conflicts; O’Connor et al. 17 proposes a two-tier strategy architecture and several detection methods for conflicting strategies, but this method can only detect conflicts mostly concentrated at the application level. Therefore, from the perspective of accurately detecting possible policy conflicts in a multi-controller SDN, the existing research results of conflict detection methods have the following deficiencies:
Based on the analysis, focusing on the accurate and effective detection of policy conflicts in multi-controller SDN environment, this article proposes a detection mechanism based on the existing research. First, for the multi-type-application coexisting SDN environment, the policy conflicts in the multi-controller architecture are determined and analyzed, and the conflicts are quantified and classified to provide the basis for conflict detection mechanism. Then, combining the multi-controller SDN architecture, the conflict detection model and its deployment scheme are proposed to ensure that the detection mechanism is effectively deployed and implemented. Finally, the policy conflict detection algorithm based on multi-branch trees is proposed. The experimental results under the campus network prove that the proposed method can effectively detect the conflict of control policies in the multi-controller SDN and has advantages over the existing methods in the integrity, accuracy, and detection efficiency of the detection.
The remainder of this article is organized as follows. The conflict detection model in multi-controller SDN environment is presented in section “Conflict detection model based on multi-controller SDN.” Section “Conflict detection method for multi-controller SDN” describes policy conflict detection method based on multi-branch trees, including a detection algorithm and a detection mechanism deployment method. The test method of this article is verified and analyzed in section “Experiment and result analysis.” Section “Conclusion” details the summary and prospect.
Conflict detection model based on multi-controller SDN
Description and relevant concepts
SDN separates the forwarding plane and the controlling plane, and the controller makes decisions on the traffic transmission in the network. However, as the network environment expands and becomes more complex, the network manager introduces multiple controllers and divides the physical network into multiple network slices 18 to enhance control. However, these measures also cause inconsistencies and even conflicts between policies on the forwarding switchers from different controllers or different network slices, which bring disadvantages to the network management and control. To better discuss the phenomenon of policy conflicts, this article first gives the following problem description and related concepts.
Problem description: policy conflict
Given a multi-controller or multi-slice SDN autonomous network, the control policy conflict problem can be described as: all the policies for the same matching conditions (conditions can be expressed as source address, destination address, port, slice ID, etc.) examine control flow entries on all possible forwarding switchers involved in these policies; if there are inconsistent actions on the same switcher, we say that there are policy conflicts. Two examples are given below.
Example 1
In the network topology shown in Figure 1, the deployment policy of controller1 at the forwarding switcher A is that all flows with the source address 10.0.0.110 and the destination address 10.0.0.3 are forwarded to node B, and the deployment policy of controller2 on switcher A is that all flows with the source address 10.0.0.110 and the destination address 10.0.0.3 are forwarded to node C. So, on switcher A, there is a forwarding action policy conflict between policy 1 and policy 2.

The example of forwarding action policy conflict.
Example 2
In the network topology shown in Figure 2, the controller1 is responsible for making the security policy 1. The policy of switcher B is to drop all flows with the source address 10.0.0.110 and the destination address 10.0.0.3. And, for a certain purpose, controller2 is responsible for making the policy 2 for all flows with a source address of 10.0.0.110 and a destination address of 10.0.0.3; at the switcher A, the policy changed its source address to 10.0.0.111, and at switcher C, the policy changed the source address back to 10.0.0.110. At this point, there is a conflict between policy 1 and policy 2 at node B, and there are two inconsistent actions: forwarding and dropping.

The example of forwarding and security action policy conflict.
To facilitate the discussion on the above-mentioned policy conflicts, the following definitions are given.
Definition 1: graphs, nodes, and edges
Given the topology of autonomous domain, as shown in Figure 3, the network topology can be abstracted as a graph

The example of autonomous domain topology.
Definition 2: control policy
In a given autonomous domain, control policy can be described as
Definition 3: conflict
In a given autonomous domain, if there are control policy 1
According to the nature of the conflict itself, conflicts can be divided into two types: strong conflict and weak conflict.
Definition 4: strong and weak conflicts
The distinction between strong and weak conflicts is mainly determined by the level of influence. Strong conflicts can cause transmission paths or security rules to fail, directly affecting the network services (e.g. inconsistent forwarding actions on nodes can cause transmission failure). Weak conflict will not cause the network service failure, but it will interfere with the network’s monitoring (e.g. the audit information cannot be correctly transmitted) and ultimately will affect the operation of the network. In general, both strong and weak conflicts need to be effectively detected.
Conflict detection model
To effectively implement policy conflict detection, the model of conflict detection method in this article first needs to embed a detection layer between the control plane and the forwarding plane. This layer begins to detect the conflict when the controller generates any policies; only if there is no conflict among the new policies and the existing policies, the new policies are authorized and deployed to switchers. If a conflict is found, detection layer gives feedback to the controller and manager according the conflict type (strong to weak). In order to ensure that the conflict detection layer is not bypassed, this layer is deployed in each controller of the network. At the same time, a third-party authentication center is introduced. When the conflict detection layer completes the test and confirms that there are no conflicts, the policy should be signed and deployed to the forwarding device. All forwarding devices in the network should verify every receiving policy, and the policy should not be deployed if it has no signature. Based on this, this article presents the conflict detection model and deployment framework for multi-controller SDNs. The architecture of the system is shown in Figure 4. The entire conflict detection model includes four modules: policy reception, policy analysis, conflict detection, and authorization deployment:

Conflict detection model and deployment framework for multi-controller SDNs.
The above module division is mainly performed from the perspective of logic function. In actual operation, these modules are distributed and deployed on each controller and forwarding node.
Conflict detection method for multi-controller SDN
Constructing method of SDN’s policy view based on two-dimensional linked list
In the SDN AS with multiple controllers, to accurately detect conflicts between the policies issued by different controllers, first, it is necessary to solve how to build the policies from each controller into a complete view from the overall level of the network. Then, provide the reasonable data for the detection. First, from the perspective of the controller, we examine the control policies. These policies can be described essentially as a series of operations (such as a forwarding path) for a network flow with a certain condition (usually, a 5-tuple description can be used), then these policies can be decomposed into a series of forwarding rules on the forwarding node, and on each forwarding node, its conditions and operations will be transformed and adjusted (e.g. Example 2), so there is the definition of policy view for the controller.
Definition 5: policy view for the controller, Policy_C
The
Through this view, the policy generated by the controller can be represented by a linked list (single or multi-branch). In Example 1, the control strategies issued by the two controllers can be represented by this view as shown in Figure 5. Controller1 and Controller2, respectively, issue policies

Example of the policy view for the controller.
Then, from the perspective of each forwarding node to examine the policy, it can be found that the forwarding node deploys a series of actions that are generated by the controller. These actions have execution conditions and correspond to different control strategies. So, there is the definition of policy views for the forwarding node.
Definition 6: policy views for forwarding nodes, Policy_N
For each forwarding node
Through this view, a series of policies executed on each forwarding node can be represented by a linked list (single branch). The strategy of Example 1 is represented by this view, as shown in Figure 6.

Example of the policy view for forwarding nodes.
Examining Definitions 5 and 6, we can see that the two different views describing the policy are consistent with the actions performed on each node. Therefore, the two description views are merged to form a two-dimensional linked list.
Definition 7: control strategy view based on two-dimensional linked list: policy
For multi-controller SDNs, after the policies are formulated by different controllers and deployed on the forwarding nodes, the two-dimensional linked list views are {

Example of the policy view based on two-dimensional linked list.
In the example described in Figure 7, after each controller generates a policy, one or more columns of data are added longitudinally in the two-dimensional linked list. Each column of data is linked horizontally according to the node it is deployed to and then forms a two-dimensional table. The detection algorithm can start from each node in the horizontal direction and detect whether there is a conflict in the control strategy in the row.
Obviously, for the policy view of the two-dimensional linked list, once vertical data have been added or changed, it is necessary to detect the affected rows to determine whether there is conflict. The conflict is detected based on all forwarding policies deployed on each node. Therefore, all the policies deployed on the node will be detected regardless of whether the node is controlled by one or more control centers, thus ensuring the completeness of the detection. The policy view update algorithm is given below. The main idea of the algorithm is: the policy view based on two-dimensional linked list should be stored as a table with
Algorithm complexity analysis: if the number of nodes is
Conflict detection algorithm based on policy view
By constructing the control policy view of the AS domain, the complete information of all the control policies issued by multiple controllers can be obtained from the overall perspective. On the basis of this, the problem to be solved is how to detect the conflicts between possible control strategies. In order to facilitate the deployment, the triggering time of the policy conflict detection should be immediately issued before the controller is ready to deliver the control policy.
The idea of the detection algorithm is as follows: first, when the controller formulates the control strategy
Obviously, the time complexity of the algorithm is
According to the mechanism of control policy deployment in SDN, the trigger timings of Algorithms 1 and 2 are different. Algorithm 1 will be executed when the network is initialized (the policy is a global policy and to ensure that there is no conflict) or will be executed after the policy is checked and deployed. Algorithm 2 will be executed after the controller sends the policy to detection layer, and the policy can be further deployed only if the detection result is no conflict.
Experiment and result analysis
Experimental content
In order to evaluate the accuracy and effectiveness of the detection mechanism, this article builds a simulation experiment environment based on the campus network of Suzhou University of Science and Technology. The experimental network topology is shown in Figure 8.

Experimental network topology.
We use the Linux host + OpenSwitch software to construct an OpenFlow switcher. There are 18 forwarding switcher (
The experimental comparison methods include the following: method 1 uses the flow entry conflict detection algorithm proposed by Pisharody et al. 15 for the switching device, method 2 uses FlowGuard 10 method, and method 3 uses collision detection algorithm for traffic scheduling and firewall policies proposed by Wang et al. 12 The main idea of the experiment is that four independent controllers randomly generate various control strategies including traffic scheduling, firewall policy, traffic monitoring, and so on, and to manually analyze them to determine that the policy contains a certain number and type of forwarding policy conflicts. The types of conflicts include: forwarding action conflicts (inconsistencies forwarding actions under the same conditions on a single forwarding switcher), forwarding and discarding conflicts (both forwarded and discarded actions under the same conditions on a single forwarding switcher), forwarding and security conflicts (strategic conflicts between forwarding action and security policy), and discarding and auditing conflicts (traffic discards and audit-type policy conflicts); the first three are strong conflicts, and fourth item is a weak conflict.
The types and quantities of conflict policies are shown in Table 1. In our experiment, policies (including strong and weak conflicts) are sent by each controller; various types of transmission tasks are injected into the network; then, the conflict detection module detects the policies; we compare our detection mechanism and comparison methods with the accuracy of detection, the success rate of transmission task, and the time efficiency of detection. The experiment was carried out for three rounds, and the average was taken as the results.
Experiment using control strategy configuration.
The forwarding action conflict data design ideas in the experiment are described as follows. Calculate two forwarding paths (e.g.
Experiment design and result analysis
Experiment 1: accuracy of the detection methods
We directly calculate the ratio of the number of policy conflicts detected to the number of actual conflicts by our method and the comparison methods 1, 2, and 3, and we find the ratio of different types of conflicts, respectively. The results are shown in Figure 9.

Accuracy of the detection methods results in experiment 1.
As can be seen from the results in Figure 9, our method can detect all types of policy conflicts, but the comparison method has its own shortcomings. Method 1 detects conflict based on the flow entries of the switcher, so its detection capability for forwarding and security is weak. It can only detect policy conflicts that cause forwarding error (such as forwarding policy and security policies of discarding), and cannot detect conflicting between the forwarding and modifying packets (or bandwidth controlling). In addition, the type of conflict between auditing and discarding cannot be detected because there is no conflict of forwarding actions. Method 2 is based on traffic path tracking, so the forwarding and security detection capabilities are similar to method 1. It is impossible to detect conflicts between forwarding and modifying packets (or bandwidth controlling, etc.). In addition, the detection capability of weak conflicts is also poor. Method 3 detects conflict between traffic policies and firewall policies, so the conflict between the forwarding and the security policy is completely detected, but the ability to detect the forwarding action conflicts and forwarding discarding conflicts is insufficient, and the detection capability of the weak conflicts is also insufficient.
Experiment 2: comparison of the success rate of the transmission task
We deployed all detection methods in the experimental network, injected the transmission task (the transmission task itself may violate some security control strategies), and calculated the success rate of tasks that are finally completed. The results are shown in Figure 10.

Success rate of the transmission task results in experiment 2.
It can be seen from the results in Figure 10 that due to the high accuracy of our method, the success rate of the transmission task is better, but some tasks are still not completed, and we found that these transmission tasks violated the security control policy tasks. The comparison methods 1 and 2 have higher success rate because of their strong collision-type detection ability, but there are some tasks that violate the security policy, so this type of success rate is not desirable. In comparison method 3, since the ability to detect forwarding action conflicts and forwarding discarding conflicts is weak, the success rate of the transmission task is also poor. In addition, in this experiment, it can be found that the weak conflict detection capability has little effect on the success rate of the transmission task, but it will affect the observation of the network state data and the corresponding control feedback, so it still needs attention.
Experiment 3: time efficiency of detection
We calculate the time overhead used by different methods. The experimental results are shown in Figure 11.

Time efficiency results in experiment 3.
Our method is implemented based on the hash table, so it can be seen from the results in Figure 11 that the time spent on the detection is less than method 3, but the time spent is more than methods 1 and 2. With the computing power of the experimental platform, it can be completed within 10 s. The comparison method 1 is performed separately based on the forwarding device, and the detection time is short on each device, which is about 2–3 s; but considering the detection in the whole network, the overhead of global synchronization should also be considered. The comparison method 2 searches based on the traffic path, and when the network reaches a certain scale, the time overhead is large; the comparison method 3 needs to collect the flow table of all devices first and then analyze and detect it, so the time overhead is large.
Conclusion
Multi-center-based SDN architecture is promoted in a variety of large and complex scenarios, such as enterprise networks and campus networks. Therefore, how to detect conflicts between control policies issued by different controllers has become an urgent problem to be solved. In view of the insufficiency of existing conflict detection method, this article proposes a new policy conflict detection mechanism for multi-controller SDNs. First, it quantifies and classifies the SDN policy conflicts; then, proposes a detection model and deployment scheme; and finally, a multi-branch tree-based policy conflict detection algorithm is proposed to detect the universal types of conflicts. The experimental results in campus network environment prove that our method can effectively detect the conflicts in the multi-controller SDN and has advantages over the existing methods in the accuracy and efficiency. In our future work, we will introduce the machine learning methods to capture and identify conflict features, thereby improving the universality of the detection methods.
