BGP Controller Clusters Preventing Conflicting Primary Roles
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Networks implementing Border Gateway Protocol (BGP) are vulnerable to failures due to issues in the controller cluster, leading to instability and unreliability as multiple controllers may incorrectly assume the primary role, causing inconsistencies in controlling network elements (NEs).
Innovation Solution
Implementing enhanced BGP sessions between network elements (NEs) and all controllers in the cluster, allowing them to communicate status information redundantly, ensuring accurate detection of primary controller status and preventing multiple controllers from taking control simultaneously.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Stability of the object's composition
If a single primary controller is elected in the controller cluster, then network control consistency is improved, but network reliability deteriorates because the system becomes vulnerable to single points of failure and controller failures
Solution Approach 1:
The patent segments the single primary controller role into multiple controller instances within a cluster, where each controller can independently handle control plane functions. This segmentation allows the system to maintain control consistency through coordinated operation while improving reliability by distributing failure risk across multiple segments.
Solution Approach 2:
The patent implements local quality by allowing individual controllers within the cluster to have different roles (primary or secondary) and capabilities. Each controller maintains local state information and can independently detect failures, enabling localized response to failures without compromising overall system reliability.
2Reliability
If multiple controllers are deployed in the cluster, then network reliability is improved through redundancy, but control consistency deteriorates because multiple controllers may incorrectly assume primary role simultaneously
Solution Approach 1:
The patent implements feedback mechanisms where controllers continuously exchange status information and primary role assignments through BGP sessions. This feedback loop ensures that all controllers have up-to-date information about which controller is currently primary, preventing multiple controllers from simultaneously assuming the primary role and maintaining control consistency.
Solution Approach 2:
The patent applies preliminary action by establishing clear primary/secondary role assignments and failover protocols before failures occur. Controllers are pre-configured with knowledge of their potential roles and the conditions under which they should transition, enabling orderly failover without conflict when failures occur.
3Measurement precision
If BGP sessions are established between all controllers and network elements, then control accuracy is improved, but system complexity increases due to multiple redundant connections
Solution Approach 1:
The patent implements universality by designing the BGP session protocol to serve multiple functions simultaneously: it establishes control plane connectivity, exchanges status information, enables failure detection, and facilitates role transitions. This multi-functionality reduces the need for separate dedicated communication channels, thereby limiting the increase in system complexity while maintaining high control accuracy.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method implemented by a first controller in a network comprising a cluster of controllers including the first controller and a second controller, the method comprises transmitting, to a network element (NE), a first BGP message comprising a first controllers network layer reachability information (NLRI), the first controllers NLRI carrying a position of the first controller relative to other controllers in the cluster of controllers, receiving, from the NE, a second BGP message comprising a second controllers NLRI, the second controllers NLRI carrying a position of the second controller relative to the other controllers in the cluster of controllers, and determining the primary controller from the cluster of controllers based on the position of the first controller and the position of the second controller, with the primary controller being responsible for controlling the network.