CN114500257A - Network configuration distribution method, device, control node and storage medium - Google Patents

Network configuration distribution method, device, control node and storage medium Download PDF

Info

Publication number
CN114500257A
CN114500257A CN202111499583.3A CN202111499583A CN114500257A CN 114500257 A CN114500257 A CN 114500257A CN 202111499583 A CN202111499583 A CN 202111499583A CN 114500257 A CN114500257 A CN 114500257A
Authority
CN
China
Prior art keywords
configuration information
cluster
configuration
message
control node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111499583.3A
Other languages
Chinese (zh)
Inventor
万达
马涛
何胜元
郭芬
高进军
梅岚翔
王玺霖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202111499583.3A priority Critical patent/CN114500257A/en
Publication of CN114500257A publication Critical patent/CN114500257A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0889Techniques to speed-up the configuration process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

The application discloses a network configuration distribution method, a device, a control node and a storage medium, wherein the method comprises the following steps: a first control node acquires a first message issued by a management plane network element, wherein the first message represents a message for issuing network configuration; based on the first message, the first control node determines first configuration information; the first control node sends the first configuration information to the first cluster; wherein the first cluster characterizes a cluster for storing configuration information. The second control node obtains configuration information from the first control node and/or the first cluster, and configures the data plane network element based on the configuration information. The control plane architecture applicable to the configuration issuing method can be universally applied to virtual networks of various scales, the configuration difficulty of the expanded virtual network is reduced, and the configuration efficiency is improved.

Description

Network configuration distribution method, device, control node and storage medium
Technical Field
The present application relates to the field of network technologies, and in particular, to a method and an apparatus for distributing network configuration, a control node, and a storage medium.
Background
With the rising of technologies such as cloud computing, big data, mobile networks and Internet of Things (IoT), application programs are increasingly diversified, and the requirements on network functions are higher and higher. In this case, a Software Defined Network (SDN) is created, which is a technology for separating a Control Plane (CP) of a Network device from a Data Plane (DP), and realizes Control of Network traffic. When the existing SDN architecture is applied to a large-scale virtual network, the difficulty of configuring the virtual network is very high, and the configuration efficiency of the virtual network is not high.
Disclosure of Invention
In view of this, embodiments of the present application provide a method, an apparatus, a control node, and a storage medium for distributing network configuration, so as to at least solve the problem in the related art that the configuration efficiency of a virtual network is not high.
The technical scheme of the embodiment of the application is realized as follows:
the embodiment of the application provides a network configuration distribution method, which is applied to a first control node and comprises the following steps:
acquiring a first message issued by a management plane network element; the first message represents a message for issuing network configuration;
determining first configuration information based on the first message;
sending the first configuration information to a first cluster; wherein the content of the first and second substances,
the first cluster characterizes a cluster for storing configuration information.
The embodiment of the present application further provides a network configuration distribution method, which is applied to a second control node, and includes:
receiving a second message sent by the first control node; the second message carries first configuration information;
under the condition that third configuration information needs to be pulled from a first cluster, pulling the third configuration information from the first cluster, and configuring a data plane network element based on the third configuration information and the first configuration information; wherein the content of the first and second substances,
the first cluster characterizes a cluster for storing configuration information; the third configuration information represents associated configuration information of the first configuration information.
The embodiment of the present application further provides a network configuration distribution method, which is applied to a second control node, and includes:
under the condition that it is detected that a first mark is written into a first cluster, pulling fourth configuration information from the first cluster;
configuring a data plane network element based on the fourth configuration information; wherein the content of the first and second substances,
the first cluster characterizes a cluster for storing configuration information.
An embodiment of the present application further provides a network configuration distribution apparatus, which is applied to a first control node, and the apparatus includes:
a first obtaining unit, configured to obtain a first message sent by a management plane network element; the first message represents a message for issuing network configuration;
a processing unit configured to determine first configuration information based on the first message;
a first sending unit, configured to send the first configuration information to a first cluster; wherein the content of the first and second substances,
the first cluster characterizes a cluster for storing configuration information.
The embodiment of the present application further provides a network configuration distribution apparatus, which is applied to a second control node, and the apparatus includes:
the receiving unit is used for receiving a second message issued by the first control node; the second message carries first configuration information;
a second obtaining unit, configured to, in a case that third configuration information needs to be pulled from a first cluster, pull the third configuration information from the first cluster, and configure a data plane network element based on the third configuration information and the first configuration information; wherein the content of the first and second substances,
the first cluster characterizes a cluster for storing configuration information; the third configuration information represents associated configuration information of the first configuration information.
The embodiment of the present application further provides a network configuration distribution apparatus, which is applied to a second control node, and the apparatus includes:
a third obtaining unit, configured to, when it is detected that a first identifier is written in a first cluster, pull fourth configuration information from the first cluster;
a configuring unit, configured to configure a data plane network element based on the fourth configuration information; wherein the content of the first and second substances,
the first cluster characterizes a cluster for storing configuration information.
The embodiment of the present application further provides a control node, which includes: a processor and a memory for storing a computer program capable of running on the processor,
wherein the processor is configured to execute the steps of any one of the above network configuration distribution methods when running the computer program.
The embodiment of the present application further provides a storage medium, on which a computer program is stored, and the computer program, when executed by a processor, implements the steps of any one of the above network configuration distribution methods.
In the embodiment of the application, a first control node acquires a first message issued by a management plane network element, wherein the first message represents a message for issuing network configuration; based on the first message, the first control node determines first configuration information; the first control node sends the first configuration information to the first cluster; wherein the first cluster characterizes a cluster for storing configuration information. The second control node obtains configuration information from the first control node and/or the first cluster, and configures the data plane network element based on the configuration information. In the above scheme, a control plane architecture is provided, in which a control plane is split into two control planes implemented by corresponding control nodes, and based on network configuration issued by a management plane, a first control node writes corresponding configuration information into a first cluster in which the configuration information is stored, and a second control node obtains the corresponding configuration information from the first control node and/or the first cluster and configures a data plane network element based on the configuration information, thereby implementing network configuration issued from the management plane to the data plane. The control plane architecture applicable to the configuration issuing method can be universally applied to virtual networks of various scales, the difficulty of expanding the configuration of the virtual network is reduced, and the configuration efficiency of the virtual network is improved.
Drawings
Fig. 1 is a schematic diagram of a control plane architecture for network configuration distribution provided in an embodiment of the present application;
fig. 2 is an application schematic diagram of a control plane architecture for network configuration distribution provided in the embodiment of the present application;
fig. 3 is an interaction diagram of a network configuration distribution method according to an embodiment of the present application;
fig. 4 is a schematic view of an implementation flow of determining first configuration information in a network configuration distribution method according to an embodiment of the present application;
fig. 5 is a schematic diagram of an implementation flow for issuing a second message in the network configuration distribution method according to the embodiment of the present application;
fig. 6 is a schematic diagram illustrating an implementation flow of issuing a second message in a network configuration distribution method according to another embodiment of the present application;
fig. 7 is a schematic flowchart of CCP broadcast domain calculation provided in an embodiment of the present application;
fig. 8 is a schematic view of an implementation flow of determining to pull third configuration information in the network configuration distribution method according to the embodiment of the present application;
fig. 9 is a schematic flowchart of an LCP scheduling algorithm provided in an embodiment of the present application;
fig. 10 is an interaction diagram of a network configuration distribution method according to another embodiment of the present application;
fig. 11 is a schematic flowchart of a network configuration distribution method according to an embodiment of the present application;
FIG. 12 is a schematic diagram of a CCP module provided by an embodiment of the present application;
figure 13 is a schematic flow diagram of an LCP provided by an embodiment of the present application;
fig. 14 is a schematic structural diagram of a network configuration distribution apparatus according to an embodiment of the present application;
fig. 15 is a schematic structural diagram of a network configuration distribution apparatus according to another embodiment of the present application;
fig. 16 is a schematic structural diagram of a network configuration distribution apparatus according to yet another embodiment of the present application;
fig. 17 is a schematic structural diagram of a control node according to an embodiment of the present application.
Detailed Description
With the rise of technologies such as cloud computing, big data, mobile networks, IoT and the like, application programs are increasingly diversified, networks need to bear huge traffic, requirements on network functions are higher and higher, and network structures become more and more complex. For example, in a cloud computing scenario, a network is required to have high scalability; in a big data scenario, the network capacity demand of a data center shows a continuous and rapid increase; in a mobile network, a large amount of complex traffic such as pictures and videos can be generated, and a great burden is brought to enterprises providing network services; in an IoT scenario, a network needs to carry huge traffic generated by IoT terminals such as smart homes, car networking, smart cities, and the like. Moreover, with the increasing network bandwidth and the decreasing network delay, a large amount of multimedia data traffic such as voice, data, and video is collected in the network, making the traffic pattern more difficult to predict. In the face of the ever increasing complexity, dynamics and diversity of traffic, traditional network architectures are becoming increasingly unsuitable.
In this case, SDN comes from the birth, which is a technology for separating a control plane and a data plane of a network device, and realizes control of network traffic. The SDN separates the control and the forwarding of the network equipment through software, forwarding strategies are managed and issued in a centralized mode through separated controllers, and the lower-layer data forwarding can be flexibly controlled through the controllers. Currently, the existing SDNs include opendaylight (odl), Ryu, Open Network Operating System (ONOS), Open Virtual Network (OVN), VMware NSX, Cisco SDN controller, Google Orion.
When the existing SDN architecture is applied to a large-scale virtual network, the configuration difficulty of the virtual network is very high, and the configuration efficiency is not high.
Based on this, in various embodiments of the present application, a first control node obtains a first message issued by a management plane network element, where the first message represents a message used for issuing network configuration; based on the first message, the first control node determines first configuration information; the first control node sends the first configuration information to the first cluster; wherein the first cluster characterizes a cluster for storing configuration information. The second control node obtains configuration information from the first control node and/or the first cluster, and configures the data plane network element based on the configuration information. In the above solution, a control plane architecture is provided, where a control plane is split into two control planes implemented by corresponding control nodes, and based on network configuration issued by a management plane, a first control node writes corresponding configuration information into a first cluster used for storing the configuration information, and a second control node obtains corresponding configuration information from the first control node and/or the first cluster, and configures a data plane network element based on the configuration information, thereby implementing network configuration issued from the management plane to the data plane. The control plane architecture applicable to the configuration issuing method can be universally applied to virtual networks of various scales, the difficulty of expanding the configuration of the virtual network is reduced, and the configuration efficiency of the virtual network is improved.
In order to make the objects, technical solutions and advantages of the present application more apparent, the present application is described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the present application and are not intended to limit the present application.
Fig. 1 is a schematic diagram of a control plane architecture for network configuration distribution according to an embodiment of the present application. The Control Plane architecture includes a Management Plane (MP), a north Kafka cluster, a Central Control Plane (CCP) cluster, a south Kafka cluster, and a Local Control Plane (LCP).
MP: the MP manages various network elements (virtual switches, virtual routers, etc.) and provides interfaces to users, such as Application Programming Interfaces (APIs), User Interfaces (UIs), etc., to the north. Various network elements and corresponding topology configurations are sent southbound to the CCP in the form of configuration messages over the Kafka message channel. The user configuration may be maintained inside the MP according to the relational database MySQL.
Northbound Kafka cluster: the northbound Kafka cluster is the message channel between the MP and the CCP. The northbound Kafka cluster configuration has only one Topic (Topic) comprising N partitions (Partition), each of which may consist of M copies (Replica). Each Tenant (Tenant) maps uniquely to one partition, each containing configuration messages for K tenants. Each tenant message in each partition is ordered.
CCP clustering: the CCP cluster is composed of a plurality of CCPs, and is a part that stores complete network configuration information in a control plane and calculates a network topology. The CCP communicates with the MP through a northbound message middleware Kafka cluster, the MP issues network configuration to the northbound Kafka cluster, and the CCP pulls the network configuration from the northbound Kafka cluster.
The CCP consumes northbound Kafka data rules. All CCPs were in the same Kafka consumption Group (Consumer Group). Each northbound Kafka partition is uniquely mapped to a central controller CCP. Each CCP is responsible for processing messages in multiple northbound Kafka partitions. Thus, each tenant's messages are handled by a unique CCP; each CCP processes messages for multiple tenants.
CCP produces southward Kafka data rules. Each CCP processes the northbound Kafka data, generates data and writes the data into the Redis storage cluster, calculates a physical node host group to which network configuration (generated data) should be issued, finds out all corresponding southbound Kafka themes according to the mapping relation between the tenant to which the message belongs and the host, and broadcasts the data to the themes. Here, the mapping relationship is mainly determined according to the physical host location of the network element to which the configuration belongs and the corresponding relationship between the physical host and the theme. For example, a routing rule is sent to a virtual router vr-a, the route runs on a host A, the corresponding subject of the host A is topic-a, and the mapping relation is that a message sent to vr-a needs to be sent to topic-a.
Redis storage cluster: the Redis storage cluster is composed of a plurality of Redis nodes and stores network configuration information. Redis clusters use Hash slots (Hash Slot) for data fragmentation. Each hash slot maps uniquely to one Redis node. Redis uses a master-slave mode to realize high availability, and each hash slot corresponds to one master node and a plurality of slave nodes. The CCP writes data such as network configuration and the like into the Redis, the CCP records system states and coordinates among each other through the Redis, and the LCP pulls required configuration from the Redis according to calculation requirements (for example, reference relation of the configuration).
Southbound Kafka clusters: the southbound Kafka cluster is the message channel between CCP and LCP. The southbound Kafka cluster is configured with M topics, one partition per topic, and each partition may consist of N replicas. Each local controller LCP maps to a southbound Kafka consumption Group (Consumer Group). The data of each partition is read by K local controllers LCP.
LCP: processing southward Kafka message queue messages, pulling network configuration from southward Kafka clusters, calculating scheduling and accessing Redis to pull the latest configuration, constructing virtual network topology, calculating configuration according to the network topology, converting data into data plane recognizable data, and forwarding the data plane. The LCP is an agent installed on each host node in the control plane, and is responsible for receiving and processing CCP messages, interacting with the data plane, and reporting host network information.
Kafka is an open-source message middleware, is a high-throughput distributed publish-subscribe message system, and can be operated as a cluster on one or more servers which can span multiple data centers. The Kafka cluster stores the record streams in categories called topics and makes a backup of the copy for each topic according to the configuration. Each record in Kafka contains a key, a value, and a timestamp.
Redis (remote Dictionary Server): the remote dictionary service is an open source log-type and Key-Value database which is written by using ANSI C language, supports network, can be based on memory and can also be persistent, and provides API of multiple languages.
Fig. 2 shows an application schematic diagram of a control plane architecture for network configuration distribution provided in an embodiment of the present application, which supports at least one of the following network configuration distribution methods:
in a network configuration distribution method, an MP sends various network elements and corresponding topology configurations to a CCP in the form of configuration messages through a northbound Kafka cluster. And the CCP judges whether the Redis data needs to be read or not according to the specific content of the configuration, calculates according to the configuration message and the existing network configuration, updates the configuration and writes the updated configuration into the Redis cluster. The CCP calculates a broadcast domain, sends configuration updating configuration information to the LCP through the south-to-Kafka cluster, the LCP receives the configuration information sent by the CCP through the south-to-Kafka cluster, judges whether the association configuration needs to be pulled from the Redis cluster or not based on the configuration information, and stores the pulled configuration in a local cache and sends the configuration updating and all the association configuration to a configuration database of a data plane if the association configuration needs to be pulled from the Redis cluster.
In another network configuration distribution method, the MP sends various network elements and corresponding topology configurations to the CCP in the form of configuration messages through the northbound Kafka cluster. The CCP sends a message to the Redis cluster to enable the Redis cluster to be disconnected with all LCPs, and the LCP detects that the connection with the Redis cluster is disconnected due to the fact that the LCP and the Redis cluster have heartbeats, and starts to detect whether configuration information needs to be pulled or not. The CCP pulls configuration information from north to the Kafka cluster for calculation, and writes full configuration information to the Redis cluster. The CCP writes the LCP Start full Sync flag to the Redis cluster. LCP detects LCP starting full synchronous mark in Redis cluster, determines configuration information needed to be pulled, pulls configuration data from Redis cluster, and sends configuration update and all associated configuration to configuration database of data plane.
The following describes in detail the technical solutions of the present application and how the technical solutions of the present application solve the above technical problems by embodiments and with reference to the drawings. The following several specific embodiments may be combined with each other, and details of the same or similar concepts or processes may not be repeated in some embodiments.
Fig. 3 is an interaction diagram of a network configuration distribution method according to an embodiment of the present application. The execution subject of steps 301 to 303 in the interaction graph is a first control node, and the execution subject of steps 304 and 305 is a second control node. In practical applications, the first control node is any node of the CCP cluster in fig. 1 with a CCP loaded therein, and the second control node is any node of the CCP cluster in fig. 1 with an LCP loaded therein, in other words, the first control node and the second control node may implement corresponding functions by loading corresponding application programs (CCP, LCP). The first cluster is a Redis storage cluster in FIG. 1.
The network configuration distribution method shown in fig. 3 is applied to a first control node, and includes:
step 301: and acquiring a first message sent by a management plane network element.
Wherein the first message represents a message for issuing a network configuration.
And the management plane issues a first message to the control plane, and a corresponding first control node in the control plane acquires the first message issued by the management plane. The first message characterizes a message for issuing a network configuration.
In some embodiments, the obtaining the first message sent by the management plane network element includes:
acquiring a management plane network element and issuing a first message through a second cluster; the second cluster characterizes a cluster used for the management plane network element to transmit configuration information to the first control node.
Wherein the second cluster may be a Kafka cluster, and the first control node polls the get message from the second cluster. In this way, the second cluster can implement the decoupling of the above-mentioned message sending process and implement the message transmission between the clusters.
Step 302: first configuration information is determined based on the first message.
Based at least on the network configuration carried by the first message, the first control node determines updated configuration information, i.e. first configuration information.
Here, the first configuration information may be determined at least in the following manner: determining the configuration information carried by the first message as first configuration information; and calculating updated configuration information based on the configuration information carried by the first message and the existing configuration information of the virtual network, and determining the updated configuration information as the first configuration information. That is, the first configuration information may be a configuration message carried by the first message, and may be updated configuration information determined based on the configuration message carried by the first message and existing configuration information.
Step 303: and sending the first configuration information to a first cluster.
Wherein the first cluster characterizes a cluster for storing configuration information.
And the first control node sends the determined first configuration information to the first cluster so as to store the updated configuration information in the first cluster. Here, the first cluster stores the configuration information transmitted by the first control node, that is, the first cluster can store the entire configuration information of the virtual network according to the setting.
In this embodiment of the present application, a first control node obtains a message issued by a management plane, and based on a network configuration issued by the management plane, the first control node writes corresponding configuration information into a first cluster in which the configuration information is stored.
The network configuration distribution method shown in fig. 3 is applied to a second control node, and includes:
step 304: and receiving a second message sent by the first control node.
Wherein the second message carries first configuration information.
The first control node issues a second message carrying the first configuration information to at least one second control node, so that the second control node configures the data plane network element based on the first configuration information carried by the second message, the second control node receives the second message issued by the first control node, and the second message carries the first configuration information.
In some embodiments, the receiving the second message sent by the first control node includes:
acquiring a second message sent by the first control node through the third cluster; the third cluster characterizes a cluster for the first control node to transmit configuration information to the at least one second control node.
Wherein the third cluster may be a Kafka cluster, and the second control node polls for the get message from the third cluster. In this way, the third cluster may implement the decoupling of the above-described message sending process and implement message transmission between clusters.
Step 305: and under the condition that the third configuration information needs to be pulled from the first cluster, pulling the third configuration information from the first cluster, and configuring a data plane network element based on the third configuration information and the first configuration information.
Wherein the first cluster characterizes a cluster for storing configuration information; the third configuration information represents associated configuration information of the first configuration information.
Based on the received second message, the second control node determines whether the associated configuration information of the first configuration information, that is, the third configuration information, needs to be pulled from the first cluster, and obtains a corresponding determination result. Here, the first cluster may store therein the entire configuration information of the virtual network, in other words, all the configuration information of the virtual network.
And under the condition that the associated configuration information (third configuration information) needs to be pulled, the second control node sends a request to the first cluster, receives the configuration information which is sent by the first cluster based on the request and is associated with the first configuration information, and configures the data plane network element based on the first configuration information and the associated configuration information. And, the configuration of the data plane network element may be performed based on the first configuration information and the configuration information associated with the first configuration information. Here, the associated configuration information at least includes the third configuration information pulled from the first cluster, that is, the configuration information may also be configuration information of other sources, for example, configuration information in a cache of a node. The first cluster can store full configuration information, and the second control node pulls the corresponding configuration information according to the judgment result.
The second control node may issue the first configuration information and the associated third configuration information to a configuration database of the data plane, where the configuration database may be a database deployed on the second control node.
Here, before determining whether the third configuration information needs to be pulled from the first cluster, the second control node may determine, after receiving the second message, whether the node is a target object of the second message according to a field identifier of the second message. After the second message is determined to be the message addressed to the node, whether the third configuration information needs to be pulled from the first cluster is judged.
In the embodiment of the present application, a control plane architecture is provided, in which a control plane is split into two control planes implemented by corresponding control nodes, based on network configuration issued by a management plane, a first control node writes corresponding configuration information into a first cluster in which the configuration information is stored, and a second control node, after receiving the corresponding configuration information issued by the first control node, pulls associated configuration information from the first cluster according to actual needs, thereby implementing network configuration issued from the management plane to a data plane. The control plane architecture applicable to the configuration issuing method can be generally applicable to virtual networks of various scales, especially large-scale virtual networks. In addition, the difficulty of expanding the virtual network configuration is reduced, and the virtual network configuration efficiency is improved.
As mentioned above, the first control node may calculate updated configuration information based on the configuration message carried in the first message and the existing configuration information of the virtual network, and determine the updated configuration information as the first configuration information. For the first control node, referring to fig. 4, the determining the first configuration information based on the first message includes:
step 401: sending a first request to the first cluster based on the first message.
Wherein the first request is for requesting second configuration information; the second configuration information characterizes configuration information associated with a network configuration corresponding to the first message.
Step 402: receiving the second configuration information sent by the first cluster based on the first request.
Step 403: and determining the first configuration information based on the network configuration corresponding to the first message and the second configuration information.
Here, the first control node requests, based on the first message, configuration information associated with network configuration carried in the first message to the first cluster, receives, based on the first request, second configuration information associated with the first configuration information sent by the first cluster, and reads, by the first control node, the configuration information of the first cluster. Since the first cluster may store the full amount of configuration information, that is, the second configuration information sent by the first cluster is the existing associated configuration information, the first control node can determine, based on the network configuration information corresponding to the first message and the associated second configuration information, an update of the configuration information of the first message compared to the existing configuration information, thereby determining the updated configuration information (first configuration information).
The first control node can calculate the update of the configuration information issued by the management plane to the existing configuration information according to the existing full configuration information, and issues the updated configuration information, thereby accurately configuring the data plane network element.
In the embodiment of the present application, the number of LCPs in the control plane architecture is much larger than that of CCPs, in other words, each CCP needs to correspond to multiple LCPs, but due to the stateless design of CCPs, the extension can be easily extended to support the increase of the LCPs. For the first control node, referring to fig. 5, the sending the first configuration information to the first cluster includes:
step 501: and sending the first configuration information to the first cluster in an asynchronous mode.
Here, when the first control node sends the first configuration information to the first cluster, the first control node may perform concurrent processing in a multi-thread manner, and the first control node is enabled to quickly submit the first configuration information to the first cluster through asynchronous operation and pipeline support, so that the message processing delay of sending the configuration to the first cluster by the first control node is reduced, and the message processing throughput rate is improved.
In some embodiments, after the sending the first configuration information to the first cluster, the method further comprises:
sending a second message carrying the first configuration information; wherein the at least one second control node configures the data plane network element based on the second message.
And the second control node receives the second message and configures the data plane network element at least based on the first configuration information of the second message sent by the first control node.
In some embodiments, the sending the second message carrying the first configuration information includes:
sending a second message carrying the first configuration information through a third cluster; the third cluster characterizes a cluster used for the first control node to transmit configuration information to the second control node.
Wherein the third cluster may be a Kafka cluster, and the second control node polls for the get message from the third cluster. In this way, the third cluster may implement the decoupling of the above-described message sending process and implement message transmission between clusters. In a practical application scenario, considering that the number of LCPs in the control plane architecture is huge, the efficiency of the CCP distributing the configuration to the LCPs is low. For the first control node, referring to fig. 6, when sending the second message carrying the first configuration information, the method includes:
step 601: and under the condition that the second message carries first position information, determining a broadcast domain corresponding to the second message based on the first position information and the second position information.
Step 602: and under the condition that the second message does not carry the first position information, determining a broadcast domain corresponding to the second message based on third position information and the second position information.
Wherein the second location information characterizes location information cached by the first control node; the third location information represents a host mark corresponding to the VPC to which the first configuration information belongs; and the broadcast domain corresponding to the second message is used for determining the at least one second control node.
And when the first control node issues the second message, determining a receiving object of the second message, namely a broadcast domain corresponding to the second message, wherein the broadcast domain comprises at least one second control node.
And the first control node searches second position information corresponding to the first configuration information in the second message in the cache and judges whether the second message carries the first position information. And under the condition that the second message carries the first position information, determining a broadcast domain corresponding to the second message based on the first position information carried in the second message and the second position information in the cache. And under the condition that the second message does not carry the first position information, determining a broadcast domain corresponding to the second message based on the second position information in the cache and the VPC information and/or tenant information corresponding to the first configuration information.
The second location information represents broadcast range information (or referred to as location information in the cache) corresponding to the first configuration information, and if the corresponding second location information does not exist in the cache of the first control node, the second location information is an empty set or zero.
The first control node can determine the LCP which needs to correspondingly send the second message, namely the second control node, so that the first control node can rapidly distribute the second message, and the configuration distribution efficiency is improved.
In practical application, fig. 7 shows a schematic flowchart of CCP broadcast domain calculation provided in this embodiment of the present application, which includes the following steps:
1. the configuration message sent by the MP to Kafka in the north is received.
2. Querying the configured broadcast range information cache.
2A) If the configured broadcast range information (second location information) exists in the cache, the cached second location information is read out and marked old.
2B) It is determined whether the message itself carrying the latest configuration (first configuration information) carries the first location information.
i. If the first position information is carried and the broadcast domain is marked as new, the south broadcast domain is broadcast _ domain ═ old + new;
if the first location information is not carried, querying a VPC to which the configuration belongs, determining that the VPC is new according to a host mark (third location information) contained in the VPC, and determining that the southbound broadcast domain is broadcast _ domain ═ old + new;
send the configuration to the southbound broadcast domain broadcast _ domain.
2C) The cache of the currently configured broadcast range information is updated to new.
Wherein the broadcast range information may characterize the broadcast domain.
The CCP receives configuration information sent by the MP through north direction Kafka, the configuration information of the position information carried by the message is directly calculated and forwarded, and if the message does not carry the configuration information of the specific position information, broadcasting is carried out according to tenant information or VPC information. In this way, the CCP can calculate a broadcast domain according to the first location information, the third location information (such as tenant information and VPC information) carried by the CCP, and the like, and forward the configuration to one or more subjects of the south Kafka.
The flow chart of the network configuration distribution method shown in fig. 8, applied to the second control node, includes the following steps:
step 801: and receiving a second message sent by the first control node.
Wherein the second message carries first configuration information.
Step 801 is the same as step 304, and please refer to the related description in step 304 for the implementation process.
Step 802: and judging whether the third configuration information needs to be pulled from the first cluster or not according to the configuration type corresponding to the first configuration information and the configuration information cached by the second control node.
The second control node uses whether the received configuration type of the first configuration information is a set configuration type as a first judgment condition, uses whether a local cache of a host of the second control node has configuration information associated with the first configuration information, and uses whether the associated configuration information of the local cache is enough to correspondingly configure the data plane network element as a second judgment condition. Based on the first judgment condition and the second judgment condition, the second control node judges whether the third configuration information needs to be pulled from the first cluster in which the full amount of configuration information is stored.
Here, the second control node may determine the first determination condition first and then determine the second determination condition, may determine the second determination condition first and then determine the first determination condition, or may determine both determination conditions at the same time.
In practical application, the second control node may determine the configuration type corresponding to the first configuration information through a field identifier of the second message carrying the first configuration information.
Because the network configuration has a hierarchical relationship, the network element cannot be configured based on the single configuration information, and therefore whether the local cache has the configuration information associated with the first configuration information is judged. If the local cache has the associated configuration information enough to configure the data plane network element correspondingly, the second control node can realize that the configuration information of the local cache and the configuration information of the first configuration node realize the configuration of the data plane network element, and the associated configuration information does not need to be pulled to the first cluster.
In some embodiments, the determining, according to the configuration type corresponding to the first configuration information and the configuration information cached by the second control node, whether the third configuration information needs to be pulled from the first cluster includes:
judging that the third configuration information does not need to be pulled from the first cluster under the condition that the configuration type corresponding to the first configuration information is incremental update configuration or full update configuration and the configuration information associated with the first configuration information is cached in the second control node;
judging that the third configuration information needs to be pulled from the first cluster under the condition that the configuration type corresponding to the first configuration information is incremental update configuration or full update configuration and the second control node does not cache the configuration information associated with the first configuration information;
and when the configuration type corresponding to the first configuration information is the delete configuration, determining that the third configuration information does not need to be pulled from the first cluster.
Here, the configuration type corresponding to the first configuration information may be an incremental update configuration, a full update configuration, or a delete configuration. The second control node takes different actions according to the configuration type of the received first configuration information:
and under the condition that the configuration type is the configuration deletion, the second control node judges that the third configuration information does not need to be pulled, calculates the configuration needing to be updated according to the configuration information cached in the second control node and the first configuration information, and configures the data plane network element based on the calculation result. Here, these configuration information may be added to the list to be deleted.
And under the condition that the configuration type is incremental update configuration and the second control node caches the configuration information which is associated with the first configuration information and is enough to realize network element configuration, the second control node judges that the third configuration information does not need to be pulled from the first cluster, calculates the configuration which needs to be updated according to the configuration information cached in the second control node and the first configuration information, and configures the data plane network element based on the calculation result.
And when the configuration type is incremental update configuration and the second control node does not cache the configuration information which is associated with the first configuration information and is enough to realize network element configuration, the second control node judges that the third configuration information needs to be pulled from the first cluster, pulls the third configuration information from the first cluster, and configures the data plane network element at least according to the third configuration information and the first configuration information. Here, when configuring the data plane network element, the configuration may also be performed together with the configuration information cached in the second control node.
And under the condition that the configuration type is full update configuration and the second control node caches the configuration information which is associated with the first configuration information and is enough to realize network element configuration, judging that the third configuration information does not need to be pulled from the first cluster and ignoring the third configuration information.
And when the configuration type is full update configuration and the second control node does not cache the configuration information which is associated with the first configuration information and is enough to realize network element configuration, the second control node judges that the third configuration information needs to be pulled from the first cluster, pulls the third configuration information from the first cluster, and configures the data plane network element at least according to the third configuration information and the first configuration information.
Step 803: and under the condition that the third configuration information needs to be pulled from the first cluster, pulling the third configuration information from the first cluster, and configuring a data plane network element based on the third configuration information and the first configuration information.
Wherein the first cluster characterizes a cluster for storing configuration information; the third configuration information represents associated configuration information of the first configuration information.
Step 803 is the same as step 305, and please refer to the related description in step 305 for implementation.
Therefore, when single configuration information is processed, each host node in the cluster respectively calculates the pulled configuration information, and the computing capability of each node in the cluster is fully utilized, namely, the computing resources of the cluster are fully utilized, so that accurate distribution configuration is realized, and the accuracy of the local host for acquiring the configuration information is improved. Meanwhile, the efficiency of configuration distribution is improved.
In practical application, the scheduling message includes three types, which are incremental updating, full updating and deleting operations, and the type of the configuration message can be determined according to the field identifier in the message, so as to determine the configuration type of the configuration information corresponding to the scheduling message. As shown in the flowchart of the LCP scheduling algorithm in fig. 9, different judgments are respectively performed on three kinds of scheduling information:
1) and updating the increment. If the configuration information does not exist in the local cache and belongs to the local machine, the operation is converted into Redis pull operation; if the topology change exists in the local cache, merging the incremental updates and calculating the topology change.
2) And (4) updating the total quantity. If the configuration information does not exist in the local cache and belongs to the local machine, the configuration information is stored in the local cache, and whether more configurations are pulled or not is judged; if there is already a local cache, it is ignored.
3) And (5) deleting operation. And calculating the affected associated configuration and adding all the associated configurations into the list to be deleted.
Fig. 10 is an interaction diagram of a network configuration distribution method according to another embodiment of the present application. The main execution bodies of steps 1001 to 1005 in the interaction diagram are first control nodes, and the main execution bodies of steps 1006 and 1007 are second control nodes. In practical applications, the first control node is any node of the CCP cluster in fig. 1 with a CCP loaded therein, and the second control node is any node of the CCP cluster in fig. 1 with an LCP loaded therein, in other words, the first control node and the second control node may implement corresponding functions by loading corresponding application programs (CCP, LCP). The first cluster is a Redis storage cluster in FIG. 1.
The network configuration distribution method shown in fig. 10 is applied to a first control node, and includes:
step 1001: and acquiring a first message sent by a management plane network element.
Wherein the first message represents a message for issuing a network configuration.
And the management plane issues a first message to the control plane, and a corresponding first control node in the control plane acquires the first message issued by the management plane. The first message characterizes a message for issuing a network configuration.
Here, the first message may be used to instruct the first control node to start full synchronization, and the first control node performs a corresponding action according to the content of the received first message.
In some embodiments, the obtaining the first message sent by the management plane network element includes:
acquiring a management plane network element issuing first message through a second cluster; the second cluster characterizes a cluster used for the management plane network element to transmit configuration information to the first control node.
Wherein the second cluster may be a Kafka cluster, and the second control node polls for get messages from a third cluster. In this way, the second cluster can implement the decoupling of the above-mentioned message sending process and implement the message transmission between the clusters.
Step 1002: sending a third message to the first cluster to disconnect the first cluster from the at least one second control node.
Wherein the first cluster characterizes a cluster for storing configuration information.
And the first control node sends a third message to the first cluster, wherein the third message is used for indicating the first cluster to cut off the connection with at least one second control node. Here, the first cluster may disconnect all the second control nodes based on the third message.
And the second control node detects that the connection with the first cluster is cut off and starts to detect whether the configuration information needs to be pulled or not because the second control node has heartbeat with the first cluster. In practical applications, the second control node may determine whether to acquire the corresponding configuration information by detecting whether the set first identifier exists in the first cluster.
Step 1003: first configuration information is determined based on the first message.
Please refer to the relevant description in step 302 for the step 1003 implementation process.
Here, the CCP pulls the configuration message from the second cluster, determining the first configuration information.
Step 1004: and sending the first configuration information to a first cluster.
The step 1004 is implemented with reference to the related description in step 303.
Here, the CCP writes the full configuration information to the first cluster.
Step 1005: writing a first identifier to the first cluster so that at least one second control node acquires corresponding configuration information from the first cluster based on the first identifier.
After the first control node writes the full configuration information to the first cluster, the first label is written to the first cluster. The first identifier is used for indicating the second control node to acquire corresponding configuration information.
Step 1006: and pulling fourth configuration information from the first cluster under the condition that the first cluster is detected to write the first identifier.
And the second control node pulls the fourth configuration information from the first cluster under the condition of detecting that the first cluster is written with the first identifier. Wherein the fourth configuration information may be full configuration information.
In some embodiments, the method further comprises:
detecting whether a first identifier is written into the first cluster in the case that disconnection of the first cluster is detected.
Here, the second control node may detect whether the connection with the first cluster is cut off through a heartbeat with the first cluster. In the case of disconnection, the second control node detects whether the first identifier is written in the first cluster.
Step 1007: and configuring the data plane network element based on the fourth configuration information.
The second control node may issue the fourth configuration information to a configuration database of the data plane, where the configuration database may be a database deployed on the second control node.
In the embodiment of the present application, a control plane architecture is provided, in which a control plane is split into two control planes implemented by corresponding control nodes, and based on network configuration issued by a management plane, a first control node writes corresponding configuration information into a first cluster in which the configuration information is stored, and a second control node obtains the corresponding configuration information from the first cluster and configures a data plane network element based on the configuration information, thereby implementing network configuration issued from the management plane to the data plane. The control plane architecture applicable to the configuration issuing method can be universally applied to virtual networks of various scales, the difficulty of expanding the configuration of the virtual network is reduced, and the configuration efficiency of the virtual network is improved.
It should be noted that, the interaction diagrams of the network configuration distribution method shown in fig. 3 and fig. 10 mainly differ from the direct source of the configuration information obtained at the second control node.
The present application will be described in further detail with reference to application examples.
Fig. 11 shows a flowchart of network configuration distribution provided in an embodiment of the present application, which includes the following steps:
the MP issues a configuration message for configuration update to the northbound Kafka cluster.
The CCP receives a configuration message from the northbound Kafka cluster for configuration update.
3. According to the specific content of the configuration, the CCP judges whether the current Redis data needs to be read or not.
And calculating according to the configuration message and the existing network configuration, updating the configuration data, and writing the updated configuration data into Redis.
The CCP computes the broadcast domain and distributes configuration data to the southbound Kafka cluster through asynchronous operation and pipelining support.
LCP receives configuration messages for configuration updates from south-bound Kafka clusters.
And 6, the LCP scheduler performs scheduling calculation, reads local cache information and judges whether the correlation configuration needs to be pulled from the Redis cluster.
6A) LCP reads the local cache and judges whether to update the configuration and pull the associated configuration;
6B) if the LCP scheduler determines that the associated configuration needs to be pulled from Redis, the LCP pulls from Redis and stores the pulled configuration to the local cache.
And 7, the LCP sends the configuration update and all the associated configurations to a configuration database of the data plane. Here, the configuration database may be Cfgdb.
In the embodiment of the application, a new software architecture for dividing the control plane into a central control plane CCP and a local control plane LCP is proposed. Therefore, the method can support large-scale virtual network scenes and is suitable for control plane design of large-scale SDN environments.
The CCP is designed in a stateless manner, can be conveniently and transversely expanded according to needs, is convenient for the dynamic expansion and contraction of the cluster scale of the control plane, improves the control effect on the network flow, and enables the control plane to be universally applicable to virtual networks of various scales, especially large-scale virtual networks. And, during distribution configuration, the CCP can be in a multi-thread mode, and the configuration is quickly distributed through asynchronous operation and pipeline support.
In addition, the LCP software architecture design can acquire network configuration for calculation according to the architecture design, construct local network topology, and achieve the purpose of accurately issuing local configuration. By installing LCP on each host node, the computing power of each node in the cluster can be fully utilized to accurately distribute and configure each node, thereby realizing rapid and accurate configuration issuing.
Fig. 12 shows a schematic diagram of a CCP module provided in an embodiment of the present application, including the following modules:
configuration message Consumer (Config Consumer): integrating the Kafka Consumer, consuming northbound Kafka messages, listening for rebalancing events, Redis connection status, offset violation detection, and processing accordingly.
Redis Service (Redis Service): the method comprises the steps of integrating a letter client, reading Redis data, providing asynchronous submission (Async) and Pipeline (Pipeline) support, reducing message processing delay of a controller and providing message processing throughput.
Dispenser (dispenser): and distributing the messages to different working threads according to the tenants to realize concurrent processing.
Work thread Manager (Worker Manager): and storing the configured Redis, establishing a virtual network topological relation, calculating and configuring a south-oriented broadcast domain, and sending the received configuration message to the south-oriented Kafka through the Kafka Producer.
Configuration processor (Handler): and calculating and updating the message according to the addition and modification of the service logic, and calling by a Worker Manager.
Message Metadata Manager (Message Metadata Manager): the offset of the Kafka message is managed and maintained, as well as the operation information of the message body, and the request information.
Remote procedure call & Debug (RPC, Debug Service): RPC and Debug services are provided, and a command line tool (CLI) and RPC communicate.
Auxiliary tools (Utilities): metrics and other tool classes.
Fig. 13 shows a schematic flowchart of LCP provided in the embodiment of the present application, which includes the following steps:
LCP pulls configuration messages from south Kafka;
2. calculating the change content according to the content of the Kafka message, and pulling the full configuration from Redis when the calculation meets the set condition;
3. calculating a new topology according to an algorithm;
4. processing configuration distribution according to topology changes;
5. and converting the configuration processing to be forwarded and forwarding the configuration processing to a network configuration database ConfigDB.
LCP processes south Kafka message queue message, including calculation scheduling, access Redis pull latest configuration, and converts data into data plane recognizable data, and forwards the data plane. The data input for the LCP is two input sources: kafka message queues and Redis. The data output of LCP is a data target: a configuration database Cfgdb for the data plane.
Wherein the LCP module shown in figure 13, comprises:
fully synchronous flip-flop (Fullsync Trigger).
Splitter: the Kafka message or Redis object is converted into internal Domain Objects and reference relationships.
And a Scheduler (Scheduler) which performs scheduling calculation and topology discovery according to the result output by the Splitter, wherein topology change and Redis data reading are triggered in the calculation process (the data read from Redis is converted into internal Domain Objects and relationships through the Splitter). The output of the scheduler is a set of all objects that are changed directly or indirectly.
And a Topology Manager (Topology Manager) which is responsible for updating the Topology structure related to local configuration (including node and relation addition and deletion) and provides a Topology query interface. When the nodes or the relations are changed, the program runs a graph traversal algorithm based on the topological graph.
Scheduling Policy Manager (Scheduling Policy Manager) is used by the scheduler, and when the scheduler receives the configuration, the Policy Manager is called to determine whether the configuration belongs to the local area, whether more configurations associated with the configuration need to be pulled, and the like.
The configuration Dispatcher (Config Dispatcher) receives the update object generated by the Dispatcher and sends a different object update to a different Application.
And the processor (Handler) performs reprocessing such as data structure conversion (possibly including reading global topology data, internal cache and the like) after receiving corresponding configuration update triggered by scheduling according to different configuration types, and forwards the reprocessing to the ConfigDB.
A features Collector/Exporter (Metrics Collector/Exporter) that records local statistics and exports of statistics and Metrics information.
And a command line remote procedure call Server (CLI RPC Server) supporting RPC communication.
Common remote procedure call Framework (Common RPC Framework), a unified RPC interface to provide an interface to external data access.
Local command line (Local CLI), data access to the LCP is achieved by RPC (including modifying log level, and runtime configuration).
And the Management terminal Interface (Management Agent Interface) is interacted with the Management terminal through an RPC Interface.
In order to implement the method according to the embodiment of the present application, an embodiment of the present application further provides a network configuration distribution apparatus, as shown in fig. 14, which is applied to a first control node, and the apparatus includes:
a first obtaining unit 1401, configured to obtain a first message sent by a management plane network element; the first message represents a message for issuing network configuration;
a processing unit 1402, configured to determine first configuration information based on the first message;
a first sending unit 1403, configured to send the first configuration information to the first cluster; wherein the content of the first and second substances,
the first cluster characterizes a cluster for storing configuration information.
Wherein, in one embodiment, the processing unit 1402 is configured to:
sending a first request to the first cluster based on the first message; the first request is used for requesting second configuration information; the second configuration information characterizes configuration information associated with a network configuration corresponding to the first message;
receiving the second configuration information sent by the first cluster based on the first request;
and determining the first configuration information based on the network configuration corresponding to the first message and the second configuration information.
In one embodiment, the first sending unit 1403 is configured to:
and sending the first configuration information to the first cluster in an asynchronous mode.
In one embodiment, the first obtaining unit 1401 is further configured to:
acquiring a management plane network element and issuing a first message through a second cluster; the second cluster characterizes a cluster used for the management plane network element to transmit configuration information to the first control node.
In one embodiment, the apparatus further comprises:
a second sending unit, configured to send, after the first sending unit 1403 sends the first configuration information to the first cluster, a second message carrying the first configuration information; wherein the at least one second control node configures the data plane network element based on the second message.
In one embodiment, the second sending unit is further configured to:
when a second message carrying the first configuration information is sent, under the condition that the second message carries first position information, determining a broadcast domain corresponding to the second message based on the first position information and the second position information;
under the condition that the second message does not carry first position information, determining a broadcast domain corresponding to the second message based on third position information and second position information; wherein the content of the first and second substances,
the second position information represents the position information cached by the first control node; the third location information represents a host mark corresponding to the virtual private cloud to which the first configuration information belongs; and the broadcast domain corresponding to the second message is used for determining the at least one second control node. In one embodiment, the second sending unit is configured to:
sending a second message carrying the first configuration information through a third cluster; the third cluster characterizes a cluster used for the first control node to transmit configuration information to the second control node.
In one embodiment, the apparatus further comprises:
a first writing unit, configured to write a first identifier to a first cluster after the first sending unit 1403 sends the first configuration information to the first cluster, so that at least one second control node obtains corresponding configuration information from the first cluster based on the first identifier.
In one embodiment, the apparatus further comprises:
a third sending unit, configured to send a third message to the first cluster to disconnect the first cluster from the at least one second control node before the processing unit 1402 determines the first configuration information based on the first message.
In practical applications, the first obtaining unit 1401, the second sending unit, and the third sending unit may be implemented by a communication interface in a network-based configuration distribution apparatus, and the processing unit 1402, the first sending unit 1403, and the first writing unit may be implemented by a processor in the network-based configuration distribution apparatus in combination with the communication interface.
It should be noted that: in the network configuration distribution apparatus provided in the above embodiment, when performing network configuration distribution, only the division of each program module is exemplified, and in practical applications, the above processing distribution may be completed by different program modules according to needs, that is, the internal structure of the apparatus may be divided into different program modules to complete all or part of the above-described processing. In addition, the network configuration distribution apparatus and the network configuration distribution method provided by the above embodiments belong to the same concept, and specific implementation processes thereof are detailed in the method embodiments and are not described herein again.
In order to implement the method according to the embodiment of the present application, an embodiment of the present application further provides a network configuration distribution apparatus, as shown in fig. 15, which is applied to a second control node, and the apparatus includes:
a receiving unit 1501, configured to receive a second message sent by a first control node; the second message carries first configuration information;
a second obtaining unit 1502, configured to, in a case that third configuration information needs to be pulled from a first cluster, pull the third configuration information from the first cluster, and configure a data plane network element based on the third configuration information and the first configuration information; wherein the content of the first and second substances,
the first cluster characterizes a cluster for storing configuration information; the third configuration information represents associated configuration information of the first configuration information.
In one embodiment, the apparatus further comprises:
and a determining unit, configured to determine whether the third configuration information needs to be pulled from the first cluster according to a configuration type corresponding to the first configuration information and the configuration information cached by the second control node.
In one embodiment, the determining unit is configured to:
judging that the third configuration information does not need to be pulled from the first cluster under the condition that the configuration type corresponding to the first configuration information is incremental update configuration or full update configuration and the configuration information associated with the first configuration information is cached in the second control node;
judging that the third configuration information needs to be pulled from the first cluster under the condition that the configuration type corresponding to the first configuration information is incremental update configuration or full update configuration and the second control node does not cache the configuration information associated with the first configuration information;
and when the configuration type corresponding to the first configuration information is the delete configuration, determining that the third configuration information does not need to be pulled from the first cluster.
In practical applications, the receiving unit 1501 and the second obtaining unit 1502 may be implemented by a communication interface in a network configuration based distribution apparatus, and the determining unit may be implemented by a processor in the network configuration based distribution apparatus.
It should be noted that: in the network configuration distribution apparatus provided in the above embodiment, when performing network configuration distribution, only the division of each program module is exemplified, and in practical applications, the above processing distribution may be completed by different program modules according to needs, that is, the internal structure of the apparatus may be divided into different program modules to complete all or part of the above-described processing. In addition, the network configuration distribution apparatus and the network configuration distribution method provided by the above embodiments belong to the same concept, and specific implementation processes thereof are detailed in the method embodiments and are not described herein again.
In order to implement the method according to the embodiment of the present application, an embodiment of the present application further provides a network configuration distribution apparatus, as shown in fig. 16, which is applied to a second control node, and the apparatus includes:
a third obtaining unit 1601, configured to, when it is detected that a first identifier is written in a first cluster, pull fourth configuration information from the first cluster;
a configuring unit 1602, configured to configure a data plane network element based on the fourth configuration information; wherein the content of the first and second substances,
the first cluster characterizes a cluster for storing configuration information.
In one embodiment, the apparatus further comprises:
and the detection unit is used for detecting whether the first cluster writes the first identifier or not under the condition that the disconnection of the first cluster is detected.
In practical applications, the configuration unit 1602 and the detection unit may be implemented by a processor in a network-based configuration distribution apparatus, and the third obtaining unit 1601 may be implemented by a processor in a network-based configuration distribution apparatus in combination with a communication interface.
It should be noted that: in the network configuration distribution apparatus provided in the above embodiment, when performing network configuration distribution, only the division of each program module is exemplified, and in practical applications, the above processing distribution may be completed by different program modules according to needs, that is, the internal structure of the apparatus may be divided into different program modules to complete all or part of the above-described processing. In addition, the network configuration distribution apparatus and the network configuration distribution method provided by the above embodiments belong to the same concept, and specific implementation processes thereof are detailed in the method embodiments and are not described herein again.
Based on the hardware implementation of the program module, and in order to implement the network configuration distribution method according to the embodiment of the present application, an embodiment of the present application further provides a control node. Fig. 17 is a schematic diagram of a hardware composition structure of a control node according to an embodiment of the present application, and as shown in fig. 17, the control node includes:
a communication interface 1 capable of information interaction with other devices such as network devices and the like;
and the processor 2 is connected with the communication interface 1 to realize information interaction with other equipment, and is used for executing the method provided by one or more technical schemes when running a computer program. And the computer program is stored on the memory 3.
In practice, of course, the various components in the control node are coupled together by means of the bus system 4. It will be appreciated that the bus system 4 is used to enable connection communication between these components. The bus system 4 comprises, in addition to a data bus, a power bus, a control bus and a status signal bus. For the sake of clarity, however, the various buses are labeled as bus system 4 in fig. 17.
The memory 3 in the embodiment of the present invention is used to store various types of data to support the operation of the control node. Examples of such data include: any computer program for operating on a control node.
It will be appreciated that the memory 3 may be either volatile memory or nonvolatile memory, and may include both volatile and nonvolatile memory. Among them, the nonvolatile Memory may be a Read Only Memory (ROM), a Programmable Read Only Memory (PROM), an Erasable Programmable Read-Only Memory (EPROM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a magnetic random access Memory (FRAM), a Flash Memory (Flash Memory), a magnetic surface Memory, an optical disk, or a Compact Disc Read-Only Memory (CD-ROM); the magnetic surface storage may be disk storage or tape storage. Volatile Memory can be Random Access Memory (RAM), which acts as external cache Memory. By way of illustration and not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Synchronous Static Random Access Memory (SSRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDRSDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), Enhanced Synchronous Dynamic Random Access Memory (Enhanced DRAM), Synchronous Dynamic Random Access Memory (SLDRAM), Direct Memory (DRmb Access), and Random Access Memory (DRAM). The memory 2 described in the embodiments of the present invention is intended to comprise, without being limited to, these and any other suitable types of memory.
The method disclosed by the above embodiment of the present invention can be applied to the processor 2, or implemented by the processor 2. The processor 2 may be an integrated circuit chip having signal processing capabilities. In implementation, the steps of the above method may be performed by integrated logic circuits of hardware or instructions in the form of software in the processor 2. The processor 2 described above may be a general purpose processor, a DSP, or other programmable logic device, discrete gate or transistor logic device, discrete hardware components, or the like. The processor 2 may implement or perform the methods, steps, and logic blocks disclosed in embodiments of the present invention. A general purpose processor may be a microprocessor or any conventional processor or the like. The steps of the method disclosed by the embodiment of the invention can be directly implemented by a hardware decoding processor, or can be implemented by combining hardware and software modules in the decoding processor. The software modules may be located in a storage medium located in the memory 3, and the processor 2 reads the program in the memory 3 and in combination with its hardware performs the steps of the aforementioned method.
When the processor 2 executes the program, the corresponding processes in the methods according to the embodiments of the present invention are realized, and for brevity, are not described herein again.
In an exemplary embodiment, the present invention further provides a storage medium, i.e. a computer storage medium, in particular a computer readable storage medium, for example comprising a memory 3 storing a computer program, which is executable by a processor 2 to perform the steps of the aforementioned method. The computer readable storage medium may be Memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface Memory, optical disk, or CD-ROM.
In the several embodiments provided in the present application, it should be understood that the disclosed apparatus, control node and method may be implemented in other ways. The above-described device embodiments are merely illustrative, for example, the division of the unit is only a logical functional division, and there may be other division ways in actual implementation, such as: multiple units or components may be combined, or may be integrated into another system, or some features may be omitted, or not implemented. In addition, the coupling, direct coupling or communication connection between the components shown or discussed may be through some interfaces, and the indirect coupling or communication connection between the devices or units may be electrical, mechanical or other forms.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed on a plurality of network units; some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, all functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may be separately regarded as one unit, or two or more units may be integrated into one unit; the integrated unit can be realized in a form of hardware, or in a form of hardware plus a software functional unit.
Those of ordinary skill in the art will understand that: all or part of the steps for implementing the method embodiments may be implemented by hardware related to program instructions, and the program may be stored in a computer readable storage medium, and when executed, the program performs the steps including the method embodiments; and the aforementioned storage medium includes: a removable storage device, a ROM, a RAM, a magnetic or optical disk, or various other media that can store program code.
Alternatively, the integrated units described above in the present application may be stored in a computer-readable storage medium if they are implemented in the form of software functional modules and sold or used as independent products. Based on such understanding, the technical solutions of the embodiments of the present application may be essentially implemented or portions thereof contributing to the prior art may be embodied in the form of a software product stored in a storage medium, and including several instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the methods described in the embodiments of the present application. And the aforementioned storage medium includes: a removable storage device, a ROM, a RAM, a magnetic or optical disk, or various other media that can store program code.
The technical means described in the embodiments of the present application may be arbitrarily combined without conflict. Unless otherwise specified and limited, the term "coupled" is to be construed broadly, e.g., as meaning electrical connections, or as meaning communications between two elements, either directly or indirectly through intervening media, as well as the specific meanings of such terms as understood by those skilled in the art.
In addition, in the examples of the present application, "first", "second", and the like are used for distinguishing similar objects, and are not necessarily used for describing a specific order or a sequential order. It should be understood that "first \ second \ third" distinct objects may be interchanged under appropriate circumstances such that the embodiments of the application described herein may be implemented in an order other than those illustrated or described herein.
The term "and/or" herein is merely an association describing an associated object, meaning that three relationships may exist, e.g., a and/or B, may mean: a exists alone, A and B exist simultaneously, and B exists alone. In addition, the term "at least one" herein means any combination of at least two of any one or more of a plurality, for example, including at least one of A, B, C, and may mean including any one or more elements selected from the group consisting of A, B and C.
The above description is only for the specific embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily conceive of the changes or substitutions within the technical scope of the present application, and shall be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.
Various combinations of the specific features in the embodiments described in the detailed description may be made without contradiction, for example, different embodiments may be formed by different combinations of the specific features, and in order to avoid unnecessary repetition, various possible combinations of the specific features in the present application will not be described separately.

Claims (20)

1. A network configuration distribution method applied to a first control node, the method comprising:
acquiring a first message issued by a management plane network element; the first message represents a message for issuing network configuration;
determining first configuration information based on the first message;
sending the first configuration information to a first cluster; wherein the content of the first and second substances,
the first cluster characterizes a cluster for storing configuration information.
2. The method of claim 1, wherein determining the first configuration information based on the first message comprises:
sending a first request to the first cluster based on the first message; the first request is used for requesting second configuration information; the second configuration information characterizes configuration information associated with a network configuration corresponding to the first message;
receiving the second configuration information sent by the first cluster based on the first request;
and determining the first configuration information based on the network configuration corresponding to the first message and the second configuration information.
3. The method of claim 1, wherein sending the first configuration information to a first cluster comprises:
and sending the first configuration information to the first cluster in an asynchronous mode.
4. The method of claim 1, wherein the obtaining the first message sent by the management plane network element comprises:
acquiring a management plane network element and issuing a first message through a second cluster; the second cluster represents a cluster for the management plane network element to transmit configuration information to the first control node.
5. The method according to any of claims 1 to 4, wherein after said sending the first configuration information to the first cluster, the method further comprises:
sending a second message carrying the first configuration information; wherein the at least one second control node configures the data plane network element based on the second message.
6. The method of claim 5, wherein when sending the second message carrying the first configuration information, the method comprises:
under the condition that the second message carries first position information, determining a broadcast domain corresponding to the second message based on the first position information and the second position information;
under the condition that the second message does not carry first position information, determining a broadcast domain corresponding to the second message based on third position information and second position information; wherein the content of the first and second substances,
the second position information represents the position information cached by the first control node; the third location information represents a host mark corresponding to the virtual private cloud to which the first configuration information belongs; and the broadcast domain corresponding to the second message is used for determining the at least one second control node.
7. The method of claim 5, wherein the sending the second message carrying the first configuration information comprises:
sending a second message carrying the first configuration information through a third cluster; the third cluster characterizes a cluster used for the first control node to transmit configuration information to the second control node.
8. The method according to any of claims 1 to 4, wherein after said sending the first configuration information to the first cluster, the method further comprises:
writing a first identifier to the first cluster so that at least one second control node acquires corresponding configuration information from the first cluster based on the first identifier.
9. The method of claim 8, wherein prior to said determining first configuration information based on said first message, the method further comprises:
sending a third message to the first cluster to disconnect the first cluster from the at least one second control node.
10. A network configuration distribution method is applied to a second control node and comprises the following steps:
receiving a second message sent by the first control node; the second message carries first configuration information;
under the condition that third configuration information needs to be pulled from a first cluster, pulling the third configuration information from the first cluster, and configuring a data plane network element based on the third configuration information and the first configuration information; wherein the content of the first and second substances,
the first cluster characterizes a cluster for storing configuration information; the third configuration information represents associated configuration information of the first configuration information.
11. The method of claim 10, further comprising:
and judging whether the third configuration information needs to be pulled from the first cluster or not according to the configuration type corresponding to the first configuration information and the configuration information cached by the second control node.
12. The method of claim 11, wherein the determining whether the third configuration information needs to be pulled from the first cluster according to the configuration type corresponding to the first configuration information and the configuration information cached by the second control node comprises:
when the configuration type corresponding to the first configuration information is incremental update configuration or full update configuration and the second control node caches configuration information associated with the first configuration information, determining that the third configuration information does not need to be pulled from the first cluster;
judging that the third configuration information needs to be pulled from the first cluster under the condition that the configuration type corresponding to the first configuration information is incremental update configuration or full update configuration and the second control node does not cache the configuration information associated with the first configuration information;
and when the configuration type corresponding to the first configuration information is the delete configuration, determining that the third configuration information does not need to be pulled from the first cluster.
13. The method of claim 10, wherein the receiving the second message sent by the first control node comprises:
acquiring a second message sent by the first control node through the third cluster; the third cluster characterizes a cluster for the first control node to transmit configuration information to the at least one second control node.
14. A network configuration distribution method is applied to a second control node and comprises the following steps:
under the condition that it is detected that a first mark is written into a first cluster, pulling fourth configuration information from the first cluster;
configuring a data plane network element based on the fourth configuration information; wherein the content of the first and second substances,
the first cluster characterizes a cluster for storing configuration information.
15. The method of claim 14, further comprising:
detecting whether a first identifier is written into the first cluster in the case that disconnection of the first cluster is detected.
16. A network configuration distribution apparatus, applied to a first control node, includes:
a first obtaining unit, configured to obtain a first message sent by a management plane network element; the first message represents a message for issuing network configuration;
a processing unit configured to determine first configuration information based on the first message;
a first sending unit, configured to send the first configuration information to a first cluster; wherein the content of the first and second substances,
the first cluster characterizes a cluster for storing configuration information.
17. A network configuration distribution apparatus, applied to a second control node, comprising:
a receiving unit, configured to receive a second message sent by a first control node; the second message carries first configuration information;
a second obtaining unit, configured to, in a case that third configuration information needs to be pulled from a first cluster, pull the third configuration information from the first cluster, and configure a data plane network element based on the third configuration information and the first configuration information; wherein the content of the first and second substances,
the first cluster characterizes a cluster for storing configuration information; the third configuration information represents associated configuration information of the first configuration information.
18. A network configuration distribution apparatus, applied to a second control node, comprising:
a third obtaining unit, configured to, when it is detected that a first identifier is written in a first cluster, pull fourth configuration information from the first cluster;
a configuring unit, configured to configure a data plane network element based on the fourth configuration information; wherein, the first and the second end of the pipe are connected with each other,
the first cluster characterizes a cluster for storing configuration information.
19. A control node, comprising: a processor and a memory for storing a computer program capable of running on the processor,
wherein the processor is configured to execute the steps of the network configuration distribution method of any one of claims 1 to 15 when running the computer program.
20. A storage medium having a computer program stored thereon, wherein the computer program when executed by a processor implements at least one of:
the steps of the network configuration distribution method of any of claims 1 to 9;
the steps of the network configuration distribution method of any of claims 10 to 13;
the steps of the network configuration distribution method of claim 14 or 15.
CN202111499583.3A 2021-12-09 2021-12-09 Network configuration distribution method, device, control node and storage medium Pending CN114500257A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111499583.3A CN114500257A (en) 2021-12-09 2021-12-09 Network configuration distribution method, device, control node and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111499583.3A CN114500257A (en) 2021-12-09 2021-12-09 Network configuration distribution method, device, control node and storage medium

Publications (1)

Publication Number Publication Date
CN114500257A true CN114500257A (en) 2022-05-13

Family

ID=81493016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111499583.3A Pending CN114500257A (en) 2021-12-09 2021-12-09 Network configuration distribution method, device, control node and storage medium

Country Status (1)

Country Link
CN (1) CN114500257A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115102862A (en) * 2022-07-22 2022-09-23 武汉烽火技术服务有限公司 Automatic synchronization method and device for SDN equipment
CN115412553A (en) * 2022-08-03 2022-11-29 浪潮云信息技术股份公司 CMDB automatic configuration method based on distributed cloud platform

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160043927A1 (en) * 2014-08-08 2016-02-11 Brocade Communications Systems, Inc. Hierarchical network configuration
US20170264483A1 (en) * 2016-03-14 2017-09-14 Nicira, Inc. Determining the realization status of logical entities in logical networks
CN107276835A (en) * 2017-08-11 2017-10-20 郑州云海信息技术有限公司 A kind of clustered deploy(ment) collocation method and system
US20180219726A1 (en) * 2017-02-02 2018-08-02 Nicira, Inc. Consistent processing of transport node network data in a physical sharding architecture
CN108365979A (en) * 2018-01-31 2018-08-03 深信服科技股份有限公司 Across the controller management method of cluster, SDN controllers and storage medium
CN110535947A (en) * 2019-08-30 2019-12-03 苏州浪潮智能科技有限公司 A kind of memory device set group configuration node switching method, device and equipment
US20200177486A1 (en) * 2017-06-27 2020-06-04 Telefonaktiebolaget Lm Ericsson (Publ) Inline stateful monitoring request generation for sdn
US20200235991A1 (en) * 2019-01-23 2020-07-23 Vmware, Inc. Configuration change monitoring in software-defined networking environments
CN112152843A (en) * 2020-09-11 2020-12-29 北京浪潮数据技术有限公司 Cluster node deployment method, device and system and electronic equipment
US20210075693A1 (en) * 2019-09-06 2021-03-11 Jpmorgan Chase Bank, N.A. Enterprise control plane for data streaming service
US20210105178A1 (en) * 2018-06-13 2021-04-08 Telefonaktiebolaget Lm Ericsson (Publ) Robust node failure detection mechanism for sdn controller cluster
WO2021104103A1 (en) * 2019-11-25 2021-06-03 中兴通讯股份有限公司 Network controller framework and data processing method
US20210191842A1 (en) * 2019-12-19 2021-06-24 Vmware, Inc. Software bug reproduction
CN113254156A (en) * 2021-05-31 2021-08-13 深信服科技股份有限公司 Container group deployment method and device, electronic equipment and storage medium

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160043927A1 (en) * 2014-08-08 2016-02-11 Brocade Communications Systems, Inc. Hierarchical network configuration
US20170264483A1 (en) * 2016-03-14 2017-09-14 Nicira, Inc. Determining the realization status of logical entities in logical networks
US20180219726A1 (en) * 2017-02-02 2018-08-02 Nicira, Inc. Consistent processing of transport node network data in a physical sharding architecture
US20200177486A1 (en) * 2017-06-27 2020-06-04 Telefonaktiebolaget Lm Ericsson (Publ) Inline stateful monitoring request generation for sdn
CN107276835A (en) * 2017-08-11 2017-10-20 郑州云海信息技术有限公司 A kind of clustered deploy(ment) collocation method and system
CN108365979A (en) * 2018-01-31 2018-08-03 深信服科技股份有限公司 Across the controller management method of cluster, SDN controllers and storage medium
US20210105178A1 (en) * 2018-06-13 2021-04-08 Telefonaktiebolaget Lm Ericsson (Publ) Robust node failure detection mechanism for sdn controller cluster
US20200235991A1 (en) * 2019-01-23 2020-07-23 Vmware, Inc. Configuration change monitoring in software-defined networking environments
CN110535947A (en) * 2019-08-30 2019-12-03 苏州浪潮智能科技有限公司 A kind of memory device set group configuration node switching method, device and equipment
US20210075693A1 (en) * 2019-09-06 2021-03-11 Jpmorgan Chase Bank, N.A. Enterprise control plane for data streaming service
WO2021104103A1 (en) * 2019-11-25 2021-06-03 中兴通讯股份有限公司 Network controller framework and data processing method
US20210191842A1 (en) * 2019-12-19 2021-06-24 Vmware, Inc. Software bug reproduction
CN112152843A (en) * 2020-09-11 2020-12-29 北京浪潮数据技术有限公司 Cluster node deployment method, device and system and electronic equipment
CN113254156A (en) * 2021-05-31 2021-08-13 深信服科技股份有限公司 Container group deployment method and device, electronic equipment and storage medium

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
戴冕;程光;周余阳;: "软件定义网络的测量方法研究", 软件学报, no. 06 *
王健;李志新;赵国生;赵中楠;: "面向SDN的可生存性增强自配置技术", 哈尔滨理工大学学报, no. 04 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115102862A (en) * 2022-07-22 2022-09-23 武汉烽火技术服务有限公司 Automatic synchronization method and device for SDN equipment
CN115102862B (en) * 2022-07-22 2024-03-12 烽火通信科技股份有限公司 Automatic synchronization method and device for SDN equipment
CN115412553A (en) * 2022-08-03 2022-11-29 浪潮云信息技术股份公司 CMDB automatic configuration method based on distributed cloud platform

Similar Documents

Publication Publication Date Title
US8108623B2 (en) Poll based cache event notifications in a distributed cache
US10831612B2 (en) Primary node-standby node data transmission method, control node, and database system
CN114500257A (en) Network configuration distribution method, device, control node and storage medium
US9367261B2 (en) Computer system, data management method and data management program
US10498817B1 (en) Performance tuning in distributed computing systems
CN110119304B (en) Interrupt processing method and device and server
CN111753166A (en) Query broker for communicating dynamic system states
CN112015744A (en) Configuration data access method, device, equipment, configuration center and storage medium
CN111143382A (en) Data processing method, system and computer readable storage medium
CN110750592A (en) Data synchronization method, device and terminal equipment
CN111858190B (en) Method and system for improving availability of cluster
CN113656195A (en) Service message channel management method and device and electronic equipment
CN112199427A (en) Data processing method and system
CN109347936B (en) Redis proxy client implementation method, system, storage medium and electronic device
CN113810234B (en) Method and device for processing micro-service link topology and readable storage medium
CN111552701B (en) Method for determining data consistency in distributed cluster and distributed data system
CN111104250A (en) Method, apparatus and computer program product for data processing
CN113032356A (en) Cabin distributed file storage system and implementation method
CN112019362B (en) Data transmission method, device, server, terminal, system and storage medium
CN114500289A (en) Control plane recovery method, device, control node and storage medium
CN109992447B (en) Data copying method, device and storage medium
CN114422336A (en) Control plane debugging method, device, node and storage medium
WO2023029485A1 (en) Data processing method and apparatus, computer device, and computer-readable storage medium
CN113051244B (en) Data access method and device, and data acquisition method and device
CN111600958B (en) Service discovery system, service data management method, server, and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination