Programmable routing switch, system and method
Technical Field
The present application relates to the field of network communication technologies, and in particular, to a programmable routing switch, system, and method.
Background
In recent years, due to the rapid development of networks, technologies and concepts related to networks, such as big data transmission and cloud computing, have been proposed, and there are many applications developed based on these technologies, such as artificial intelligence, which needs to be applied to the cloud computing. Due to the advent of numerous applications, users have increased in size, and manufacturers of various application services have begun to build data centers around the world in order to provide services smoothly and to serve people around the world.
Then, when a data center is added, many limitations in the conventional network will be faced, for example: qos, lack of IP, virtualization, etc., which are expensive and more hardware devices to solve these problems, so that in order to consider the cost, the adoption and research of a new dynamic Network architecture is inevitable, Software Defined Network (SDN) is the hottest Network architecture, and this architecture has been adopted by many remote service providers, for example: google and Amazon.
The SDN differs from the conventional network in that a Control Plane (Control Plane) and a Data Plane (Data Plane) are separated, and the Data Plane is placed in the device as well and only takes charge of Data transmission. The control layer is independent so the decisions are all decided by him. In the conventional network architecture, users are limited by the vendor providing the device, and the vendor must spend additional cost for adding the function to the delivery machine or the router, and the SDN can be freely used as the allowed function, so the SDN can reduce a lot of cost.
BGP is initially used to find a preselected shortest path between SDN network domains, but this shortest path may result in insufficient bandwidth or too heavy load. The user can select a path through the user interface, the backend server informs the ONOS of the path data selected by the user, and the ONOS adds flow entries to SDN switches on the path and gives higher priority to enable subsequent packets to select a customized path when entering.
Fig. 1 is an architecture diagram of an SDN, a control layer is controlled by an SDN controller, common control platforms include onos (open Network Operation system), flodlight, and OpenDaylight, a data layer part generally uses OpenFlow switch, and a connection between two layers generally adopts negotiation compatible with the SDN. For example: OpenFlow, through this protocol, the data layer can set its internal Flow Table according to the decision result of the control layer, and then the data layer processes the packet according to the record of the Flow Table. By means of the characteristics of the programmable open architecture of the SDN, a user can newly add and open functions required by an independent control platform, meet the requirements of a customized network, improve the bandwidth utilization rate and reduce the cost.
When the configuration of the SDN network is completed, a network connected with a conventional network is considered, and when two networks with different properties are connected, problems such as exchange of routing paths and routing information of two network domains must be solved.
In the problem, connection of networks with different properties is achieved by combining ONOS, SDN-IP and Quaga. And a set of use interfaces is designed and developed to enable a user to know BGP information and network topology in the SDN network. Then, when the data center is insufficient, more multipath routes are needed to increase the bandwidth or reduce the network load, since the SDN-IP only selects the shortest path for each IP pair, the multipath will converge in the SDN, causing a network bottleneck, and therefore, a new programmable route switching mechanism between SND network domains is urgently needed to solve the problem.
Disclosure of Invention
In a large SDN domain constructed by using SDN-IP, because the routing policy is to select the shortest path due to the SDN-IP mechanism, each IP pair in the SDN domain only uses a single path instead of multiple paths, and when the path is congested or a user uses multiple paths to try to increase bandwidth or reduce load, the path between SDN domains is a bottleneck.
The invention provides a design of a programmable routing switch system, which comprises the following components: one or more SDN switches; the system comprises a plurality of Open Network Operating Systems (ONOSs), wherein the ONOSs can run an application mode of an SDN-IP, one ONOS is configured at each SDN switch, and the SDN switches are connected with each other by using network cables and matching with an ONOS VPLS; and the SDN switch and the user end are respectively provided with corresponding Quagga for exchanging routes with the Quagga at the ONOS, and the ONOS is respectively provided with corresponding Quagga for receiving the eBGP and informing the ONOS of the routes.
According to one aspect of the invention, a routing interface is arranged on an SDN-IP user interface, a user sets which path to use in the SDN network through the routing interface, and an ONOS adds related Flow entities (Flow entries) to an SDN switch.
According to one aspect of the invention, after the user determines a good path, the user interface informs the set data to the Web server at the back end, and then converts the set data into a Flow entry in JSON format and transmits the data to the ONOS through RESTful API, so that the user can add a related Flow entry to the SDN switch.
According to one aspect of the invention, the programmable routing switch system adopts a mode of combining an SDN network and a Quaga to realize programmable routing switching; after the network is started for a period of time, the ONOS can find out a route with the shortest path for each pair of IP;
according to one aspect of the invention, a route display interface is arranged on the SDN-IP user interface and is achieved by modifying an expansion display interface on the SDN-IP user interface, and when a flow entry is obtained by a back-end server, the flow entry customized by a client is additionally processed, so that a customized path can be seen on the expansion display interface.
The invention also provides a programmable route switching method, which comprises the following steps: step 1, starting SDN-IP on an Open Network Operating System (ONOS) and enabling SDN network domains to exchange routes so as to establish a route path; step 2, a Video Streaming Server (Video Streaming Server) end starts a Streaming Server, then starts Streaming users in a Video Streaming Client (Video Streaming Client), and communication Streaming flows between SDN domains and takes a preset path; and 3, configuring a flow entity (flow entry) by the user through the SDN-IP user interface so as to realize the multi-path communication streaming.
According to an aspect of the present invention, in step 2, the start command of the video stream server is "copy server", copy _ rtsp _ port ", and the start command of the video stream client is" copy client server ", copy _ ip server _ rtsp _ port client _ rtp _ port video _ file flow _ number"; flow _ number is set to 2 at startup, indicating that the stream is split into two flows.
According to one aspect of the invention, in step 3, the user adds the set flow entry rule to the ONOS at the network element in the SDN-IP user interface, and waits for the ONOS to set the flow entry of the SDN switch.
According to one aspect of the present invention, after the ONOS configuration is completed, the flow of the communication stream will use different routes to implement the multi-path communication stream.
The invention also proposes a programmable routing switch, comprising: at least one memory for storing computer instructions for execution by the processor; at least one processor configured to execute computer instructions stored in the memory to implement the programmable route switching method of the present invention.
As shown in fig. 3, BGP is used to find a preselected shortest path between SDN network domains, and since SDN-IP uses only the shortest path for each IP pair, instead of selecting multiple paths, when data traffic is too large, bandwidth is insufficient or load is too heavy. The user can select a path through the user interface, the backend server informs the ONOS of the path data selected by the user, and the ONOS adds the folw entries to the SDN switches on the path and gives higher priority to enable the follow-up packets to select the customized path when entering.
A programmable routing switch system mainly comprises a physical part and a user interface part.
1. The entity part adopts a mode of combining an SDN network and Quagga to achieve a programmable route switching mechanism, and the SDN network is divided into an SDN switch and an ONOS, wherein the ONOS can run an SDN-IP application mode. To illustrate eBGP and set the corresponding flow entries, the network will find a shortest path route for each pair of IPs after a period of network startup.
2. A user interface part, which adds a routing interface on the SDN-IP user interface, wherein a specific routing Flow is shown in fig. 2, a user sets a path to be used in the SDN network through the interface, and after the user determines the path, the user interface informs a Web server at a back end of the user interface of the set data, and then converts the set data into Flow entries in JSON format and transmits the data to the ONOS through RESTful API, so that the ONOS can add related Flow entries to the SDN switch. The route display interface is achieved by modifying an expansion display interface on an SDN-IP user interface, a setting is added, when a back-end server obtains a flow entry, the flow entry customized by a client is additionally processed, and a customized path can be seen on the expansion display interface.
The invention proposes a switch comprising:
a memory for storing instructions for execution by at least one processor;
and the processor is used for executing the instructions stored in the memory to execute the method provided by the invention.
In a third aspect, an embodiment of the present application provides a computer-readable storage medium, which stores computer instructions, and when the computer instructions are executed on a computer, the computer instructions cause the computer to execute the method provided by the present invention.
Drawings
Fig. 1 is a diagram of an SDN network framework for designing an inter-domain programmable routing switching mechanism of an SDN network according to an embodiment of the present application;
fig. 2 is a flowchart illustrating a data consumer operation of a switch according to an embodiment of the present application;
fig. 3 is a topology diagram of switch data interaction provided in an embodiment of the present application;
fig. 4 is a diagram illustrating a topology of data interaction of a switch according to an embodiment of the present application;
fig. 5 is a schematic structural diagram of a switch according to an embodiment of the present application.
Detailed Description
In the solutions provided in the embodiments of the present application, the described embodiments are only a part of the embodiments of the present application, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
In order to better understand the technical solutions, the technical solutions of the present application are described in detail below with reference to the drawings and specific embodiments, and it should be understood that the specific features in the embodiments and examples of the present application are detailed descriptions of the technical solutions of the present application, and are not limitations of the technical solutions of the present application, and the technical features in the embodiments and examples of the present application may be combined with each other without conflict.
In the following, the design of a programmable route switching mechanism provided in the embodiments of the present application is described in further detail with reference to the drawings in the specification, and a specific implementation manner of the method may include the following steps:
as shown in fig. 3, we use three SDN switches to build an SDN domain interconnection topology, which are network element 1, network element 2, and network element 3, and use network wires and an ONOS VPLS to establish the connection. We also configured 5 Quagga to exchange BGP, 2 located before the switch and the client, respectively, to exchange routes with the Quagga at the ONOS, and the other 3 located at the ONOS, responsible for receiving eBGP and informing the ONOS of the routes.
Firstly, a preselected shortest path is found out between SDN network domains by using BGP, a client is connected to a network element 2 through Quagga between the client and a switch, the shortest default path is selected to be connected to a network element 3, and the network element 3 is connected to another client through Quagga. Since SDN-IP uses only the shortest path for each IP pair, instead of selecting multiple paths, when data traffic is too large, bandwidth is insufficient or load is too heavy. The user can select a path through the user interface, the backend server informs the ONOS of the path data selected by the user, and the ONOS adds the folw entries to the SDN switches on the path and gives higher priority to enable the follow-up packets to select the customized path when entering. The client is connected to the network element 2 through the Quagga between the client and the switch, the congested default path is avoided according to the selected path, the network element 2 is selected to be connected to the network element 3 through the network element 1, and the network element 3 is connected to another client through the Quagga.
Fig. 4 shows an example of an application topology of the method, wherein three SDN switches are used to build an SDN domain interconnection topology, the three SDN switches are respectively a network element 1, a network element 2, and a network element 3, and each other uses a network cable and matches an ONOS VPLS to establish a connection cable. We also configured 5 Quagga to exchange BGP, 2 located before the switch and the client, respectively, to exchange routes with the Quagga at the ONOS, and the other 3 located at the ONOS, responsible for receiving eBGP and informing the ONOS of the routes. The specific numbers here are merely exemplary, and in practical applications, the number of specific switches, ONOS, Quagga may be set as desired.
Step 1, starting SDN-IP on the ONOS, and enabling SDN network domains to exchange routes with each other so as to establish a route path.
Step 2, the Video Streaming Server starts a Streaming Server, the start command is "copy Server _ rtsp _ port", then starts a Streaming user in the Video Streaming Client, the start command format is "copy Client _ py _ service _ rtsp _ port _ Client _ port _ Video _ file flow _ number", we set the flow _ number to 2 first, which means that the Streaming is divided into two flows, then the flow entry pairing count in each ONOS Web UI is observed, and it is found that only a preset path is taken between SDN network domains regardless of the division into several streams.
Step 3, configuring a flow etnry by the user through the interface, which is as follows:
firstly, the matched Ethernet type is 0x0800, namely ip message, the physical port number is assigned to be 1, and the udp port of udb message is assigned to be 234567. The egress interface specifies a port number of 3 and a configuration priority of 4000. Then, a flow entry rule in the graph is added to the ONOS of the network element 2 by using RESTful API, the flow entry of the SDN switch is set by the ONOS, after the setting of the ONOS is finished, a server and a client of the communication stream are started uniformly according to the method, then the flow entry pairing count on each ONOS is checked, and the fact that 2 flows of the communication stream use different routes can be observed, and the communication stream with multiple paths is really achieved. The different routes include: (1) the video stream server is connected to the network element 2 through a Quagga between the video stream server and the switch, the network element 2 is directly connected to the network element 3, and the network element 3 is connected to the video stream client through a Quagga; (2) the video stream server is connected to the network element 2 through a Quagga between the video stream server and the switch, the network element 2 is selected to be connected to the network element 3 through the network element 1 according to a path selected by a flow entry rule, and the network element 3 is connected to the video stream client through a Quagga.
According to further embodiments of the present invention, the combination of network element and ONOS is not limited to 3 groups, and may be any number greater than 3 groups, nor is the path limited to any path that passes only through network element 1 and may be connectable between network element 2 and network element 3. Such as: can be connected to the network element 3 via the network element 4 and the network element 5; it is also possible to connect to network element 3 via network element 6, network element 7, network element 8, network element 9.
Referring to fig. 5, an embodiment of the present application provides a switch, including:
a memory 301 for storing instructions for execution by at least one processor;
a processor 302 for executing instructions stored in a memory to perform the methods of the present invention.
Further, an embodiment of the present application provides a computer-readable storage medium, which stores computer instructions, and when the computer instructions are executed on a computer, the computer is caused to execute the method provided by the present invention.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, optical storage, and the like) having computer-usable program code embodied therein.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
It will be apparent to those skilled in the art that various changes and modifications may be made in the present application without departing from the spirit and scope of the application. Thus, if such modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is intended to include such modifications and variations as well.