This application relates to the SDN (Software Defined Network) technology and in particular, to a method and network apparatus of establishing path.
The SDNC (Software Defined Network Controller) is a new concept in the networking industry. Existing individual protocol functions (such as topology discovery, traffic engineering, best path and route selection etc.) in each of the network elements will be removed, and these functions will be maintained in a SDNC, which is a centrally entity independent of hardware.
A switch may consist of one or more flow tables and a group table. Using the OpenFlow protocol, the SDNC may add, update and delete flow entries in flow tables both reactively and proactively.
However, the applicant found that: for a global prefix, SDNC needs to set flow for each of nodes in the network, such that number of forwarding instructions will increase as number of global prefix increases, and the amount of flow based calculation increases in SDNC as number of nodes increase.
Furthermore, all the nodes in the SDN should be aware of external prefix to provide the global connectivity, and the process of route calculation is complex.
Embodiments of the present application pertain to a method and network apparatus of establishing path. The objects of the application are to simplify the process of route calculation, and reduce number of forwarding flow entry in some nodes.
According to a first aspect of the embodiments of the present application, a method of establishing path is provided, applied in a SDN (Software Defined Network), includes:
According to another aspect of the embodiments of the present application, wherein the first tunnel information comprises at least one of: a next-hop IP address and a destination IP address.
According to another aspect of the embodiments of the present application, wherein the first prefix information of the first IP address is in a prefix table and the first tunnel information is in a tunnel table.
According to a second aspect of the embodiments of the present application, a method of establishing path is provided and applied in a SDN (Software Defined Network), the method comprises:
According to another aspect of the embodiments of the present application, wherein the method further comprises:
According to another aspect of the embodiments of the present application, wherein the first tunnel information comprises at least one of: a next-hop IP address and a destination IP address.
According to another aspect of the embodiments of the present application, wherein the one or more nodes have full mesh tunnel to other nodes in the SDNC.
According to a third aspect of the embodiments of the present application, a node is provided, where the node comprises:
According to a fourth aspect of the embodiments of the present application, a Software Defined Network controller (SDNC) is provided, and the SDNC comprises:
According to another aspect of the embodiments of the present application, wherein the SDNC further comprises:
The advantages of the present application exist in that: a relationship between a prefix of an IP address and tunnel information is established by a SDNC; so that the process of route calculation is simplified, and number of forwarding flow entry in internal nodes is reduced.
These and further aspects and features of the present application will be apparent with reference to the following description and attached drawings. In the description and drawings, particular embodiments of the application have been disclosed in detail as being indicative of some of the ways in which the principles of the application may be employed, but it is understood that the application is not limited correspondingly in scope. Rather, the application includes all changes, modifications and equivalents coming within the spirit and terms of the appended claims.
Features that are described and/or illustrated with respect to one embodiment may be used in the same way or in a similar way in one or more other embodiments and/or in combination with or instead of the features of the other embodiments.
It should be emphasized that the term “comprises/comprising” when used in this specification is taken to specify the presence of stated features, integers, steps or components but does not preclude the presence or addition of one or more other features, integers, steps, components or groups thereof.
Many aspects of the application may be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present application. To facilitate illustrating and describing some parts of the application, corresponding portions of the drawings may be exaggerated in size, e.g., made larger in relation to other parts than in an exemplary device actually made according to the application. Elements and features depicted in one drawing or embodiment of the application may be combined with elements and features depicted in one or more additional drawings or embodiments. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views and may be used to designate like or similar parts in more than one embodiment.
The drawings are included to provide further understanding of the present application, which constitute a part of the specification and illustrate the embodiments of the present application, and are used for setting forth the principles of the present application together with the description. The same element is represented with the same reference number throughout the drawings.
In the drawings:
The many features and advantages of the embodiments are apparent from the detailed specification and, thus, it is intended by the appended claims to cover all such features and advantages of the embodiments that fall within the true spirit and scope thereof. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the inventive embodiments to the exact construction and operation illustrated and described, and accordingly all suitable modifications and equivalents may be resorted to, falling within the scope thereof.
As shown in
That is to say, the SDNC need to set the flow for each node (edge nodes and internal nodes). So that all the nodes in the SDN should be aware of an external prefix to provide the global connectivity, and the process of route calculation is complex. Furthermore, number of forwarding instructions will increase as number of global prefix increases, and the amount of flow based calculation increases in SDNC as number of nodes increase.
In the application, the forwarding (data path) and the high level routing decisions (control path) are separated. The data path portion still resides on the internal node, while high level routing decisions are moved to the SDNC. The data path of an internal node presents a clean flow table abstraction, so that the internal node will be unaware of global prefix forwarding. The embodiments of the present application are described as follows in reference to the drawings.
An embodiment of the present application provides a method of establishing path, applied in a SDNC (Software Defined Network Controller) side of a Software Defined Network.
Block 301, a SDNC establishes relationship between a prefix of an IP address and tunnel information;
Block 302, the SDNC generates forwarding information based on the relationship;
Block 303, the SDNC sends the forwarding information to one or more nodes so that the one or more nodes forward packets according to the forwarding information.
In the embodiment, the one or more nodes are in the scope of the SDNC administration. The SDNC may use the following tables: a global prefix table for every external IP prefix, a tunnel table for maintaining information of all full mesh tunnels.
In the embodiment, edge nodes and internal nodes are separated in SDNC domain. The SDNC may establish a relationship between a prefix and a tunnel, such that the internal nodes will do only flow-based forwarding.
As shown in
As shown in
As shown in
It can be seen from the above embodiment that: a relationship between a prefix of an IP address and tunnel information is established by a SDNC; so that the process of route calculation is simplified, and number of forwarding flow entry in internal nodes is reduced.
The embodiment of the present application provides a method of establishing path, applied in a SDNC side. The embodiment is based on the embodiment 1 and the same content will not be described.
Block 501, a SDNC acquires a prefix of an IP address and tunnel information;
Block 502, the SDNC stores the prefix of the IP address as in a prefix table and stores the tunnel information as in a tunnel table.
Block 503, the SDNC establishes a relationship between a prefix of an IP address and tunnel information;
Block 504, the SDNC generates forwarding information based on the relationship;
Block 505, the SDNC sends the forwarding information to one or more nodes so that the one or more nodes forward packets according to the forwarding information.
In the embodiment, in the SDNC, a full mesh of tunnels for all edge nodes to every other edge node needs to be established.
In implement, for IP GRE (Generic Routing Encapsulation) kind tunnel, earlier GRE forwarding was based on IP routing built by SPF (Shortest Path First). But in this application, it requires pre-calculated path to install in SDNC and download to each Nodes on that path. So the path calculation is generalized concept for both IP tunnel and MPLS (Multiprotocol Label Switching) tunnel.
In implement, SDNC may use algorithm like GCO (Global Concurrent Optimization) or CSPF (Constrained Shortest Path First) based mechanism. Where, GCO is to optimize the entire tunnels together. These algorithms may take care of link utilization, capacity etc.
And these algorithms use paths which optimize the whole SDN network. The path is calculated irrespective of the tunnel type IP/MPLS. In implement, tunnel forwarding instructions on these paths are downloaded on the nodes.
In the embodiment, SDNC may acquire a first prefix of a first IP address and first tunnel information; and stores the first prefix of the first IP address in a prefix table and stores the first tunnel information in a tunnel table.
As shown in
In implement, the relationship may be that: a prefix inside the prefix table has relation with a destination node inside the tunnel table. As for relationship between “Global Prefix Table” and “Tunnel Table”, a SDNC generates forwarding information based on the relationship.
In the embodiment, for each edge node, the edge node may download a tunnel forwarding instruction included the forwarding information (such as a flow entry) from the SDNC.
In implement, when downloading the flow entry in an internal node A, for prefix 10.1.1.1, the node A will use a tunnel A->D to forward a packet; for a prefix 20.1.1.1, the node A will use a tunnel A->C to forward a packet. When downloading the flow entry in an internal node B, for a prefix 10.1.1.1, the node B will use a tunnel B->D to forward a packet; for the prefix 20.1.1.1, the node B will use a tunnel B->C to forward a packet. So, this is a simple solution without any complex route calculation.
In the embodiment, for each internal node, SDNC will download the forwarding information to internal nodes to have tunnel establishment; this is independent of route prefix/routing.
It can be seen from the above embodiment that: a relationship between a prefix of an IP address and tunnel information is established by a SDNC; so that the process of route calculation is simplified, and number of forwarding flow entry in internal nodes is reduced.
The embodiment of the present application provides a method of establishing path, applied in a node (such as an edge node) side of a SDN. The embodiment corresponds to the method of the above embodiment 1 or 2, and the same content will not be described.
Block 901, a node receives forwarding information from a SDNC; wherein the forwarding information is generated based on a relationship between a prefix of an IP address and tunnel information.
Block 902, the edge node receives a packet; wherein the packet comprises first prefix information of a first IP address.
Block 903, the edge node forwards the packet according to first tunnel information corresponding to the first prefix information of the first IP address.
In the embodiment, the first tunnel information may include at least one of: a next-hop IP address and a destination IP address.
In the embodiment, the first prefix of the first IP address may be in a prefix table; the first tunnel information may be in a tunnel table.
It can be seen from the above embodiment that: a relationship between a prefix of an IP address and tunnel information is established by SDNC; so that the process of route calculation is simplified, and number of forwarding flow entry in internal nodes is reduced.
The embodiment of the present application further provides a network apparatus, applied in a SDNC. The embodiment corresponds to the method of the above embodiment 1 or 2, and the same content will not be described.
In the embodiment, the function of provision tunnel may be integrated in the SDNC; other parts of the SDNC may refer to the existing technology and not be described in the present application. However, it is not limited thereto, and particular implement way may be determined as actually required.
Where, the establishing unit 1001 is configured to establish a relationship between a prefix of an IP address and tunnel information; the generating unit 1002 is configured to generate forwarding information based on the relationship; the sending unit 1003 is configured to send forwarding information to one or more nodes so that the one or more nodes forward a packet according to the forwarding information.
As shown in
It can be seen from the above embodiment that: relationship between a prefix of an IP address and tunnel information is established by SDNC; so that the process of route calculation is simplified, and number of forwarding flow entry in internal nodes is reduced.
The embodiment of the present application further provides a network apparatus, applied in a node. The embodiment corresponds to the method of the above embodiment 3, and the same content will not be described.
In the embodiment, the function of provision tunnel may be integrated in the node; other parts of the node may refer to the existing technology and not be described in the present application. However, it is not limited thereto, and particular implement way may be determined as actually required.
Where, the first receiving unit 1201 is configured to receive forwarding information from a SDNC; wherein the forwarding information is generated based on a relationship between a prefix of an IP address and tunnel information; the second receiving unit 1202 is configured to receive a packet, wherein the packet comprises first prefix information of a first IP address; the forwarding unit 1203 is configured to forward the packet according to first tunnel information corresponding to the first prefix information of the first IP address.
In the embodiment, the first tunnel information may include at least one of: a next-hop IP address or a destination IP address.
In the embodiment, the first prefix of the first IP address may be in a prefix table; the first tunnel information may be in a tunnel table.
It can be seen from the above embodiment that: relationship between a prefix of an IP address and tunnel information is established by a SDNC; so that the process of route calculation is simplified, and number of forwarding flow entry in internal nodes is reduced.
It should be understood that each of the parts of the present application may be implemented by hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods may be realized by software or firmware that is stored in the memory and executed by an appropriate instruction executing system. For example, if it is realized by hardware, it may be realized by any one of the following technologies known in the art or a combination thereof as in another embodiment: a discrete logic circuit having a logic gate circuit for realizing logic functions of data signals, application-specific integrated circuit having an appropriate combined logic gate circuit, a programmable gate array (PGA), and a field programmable gate array (FPGA), etc.
As shown in
Where, the CPU 1301 (also referred to as a controller or an operational control, which may include a microprocessor or other processing devices and/or logic devices) receives input and controls each part and operation of the network apparatus. The input device 1303 provides input to the CPU 1301. The input device 1303 may be for example a key or touch input device. The output device 1305 receives the data from the CPU 1301 and sends it to other apparatus.
The memory 1304 is coupled to the CPU 1301. The memory 1304 may be a solid memory, such as a read-only memory (ROM), a random access memory (RAM), and a SIM card, etc., and may also be such a memory that stores information even when the power is interrupted, may be optionally erased and provided with more data. Examples of such a memory are sometimes referred to as an EPROM, etc. The memory 1304 may also be certain other types of devices.
The communication interface 1302 may be a transmitter/receiver which transmitting and receiving signals via an antenna. The communication interface 1302 (transmitter/receiver) is coupled to the CPU 1301 to provide input signals and receive output signals, this being similar to the case in a conventional communication center.
The description or blocks in the flowcharts or of any process or method in other manners may be understood as being indicative of comprising one or more modules, segments or parts for realizing the codes of executable instructions of the steps in specific logic functions or processes, and that the scope of the embodiments of the present application comprise other implementations, wherein the functions may be executed in manners different from those shown or discussed, including executing the functions according to the related functions in a substantially simultaneous manner or in a reverse order, which should be understood by those skilled in the art to which the present application pertains.
The logic and/or steps shown in the flowcharts or described in other manners here may be, for example, understood as a sequencing list of executable instructions for realizing logic functions, which may be implemented in any computer readable medium, for use by an instruction executing system, device or apparatus (such as a system including a computer, a system including a processor, or other systems capable of extracting instructions from an instruction executing system, device or apparatus and executing the instructions), or for use in combination with the instruction executing system, device or apparatus.
The above literal description and drawings show various features of the present application. It should be understood that those skilled in the art may prepare appropriate computer codes to carry out each of the steps and processes as described above and shown in the drawings. It should be also understood that all the terminals, computers, servers, and networks may be any type, and the computer codes may be prepared according to the disclosure to carry out the present application by using the apparatus.
Particular embodiments of the present application have been disclosed herein. Those skilled in the art will readily recognize that the present application is applicable in other environments. In practice, there exist many embodiments and implementations. The appended claims are by no means intended to limit the scope of the present application to the above particular embodiments. Furthermore, any reference to “a device to . . . ” is an explanation of device plus function for describing elements and claims, and it is not desired that any element using no reference to “a device to . . . ” is understood as an element of device plus function, even though the wording of “device” is included in that claim.
Although a particular embodiment or embodiments have been shown and the present application has been described, it is obvious that equivalent modifications and variants are conceivable to those skilled in the art in reading and understanding the description and drawings. Especially for various functions executed by the above elements (portions, assemblies, apparatus, and compositions, etc.), except otherwise specified, it is desirable that the terms (including the reference to “device”) describing these elements correspond to any element executing particular functions of these elements (i.e. functional equivalents), even though the element is different from that executing the function of an exemplary embodiment or embodiments illustrated in the present application with respect to structure. Furthermore, although the a particular feature of the present application is described with respect to only one or more of the illustrated embodiments, such a feature may be combined with one or more other features of other embodiments as desired and in consideration of advantageous aspects of any given or particular application.
Number | Date | Country | Kind |
---|---|---|---|
IN2681/CHE/2013 | Jun 2013 | IN | national |
This application is a continuation of International Application No. PCT/CN2014/080407, filed on Jun. 20, 2014, which claims priority to Indian Patent Application No. IN2681/CHE/2013, filed on Jun. 20, 2013, both of which are hereby incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2014/080407 | Jun 2014 | US |
Child | 14973959 | US |