ES2627949T3 - Method, device and system to implement packet routing in a network - Google Patents

Method, device and system to implement packet routing in a network Download PDF

Info

Publication number
ES2627949T3
ES2627949T3 ES13886628.0T ES13886628T ES2627949T3 ES 2627949 T3 ES2627949 T3 ES 2627949T3 ES 13886628 T ES13886628 T ES 13886628T ES 2627949 T3 ES2627949 T3 ES 2627949T3
Authority
ES
Spain
Prior art keywords
server
switch
servers
network
packet
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.)
Active
Application number
ES13886628.0T
Other languages
Spanish (es)
Inventor
Bibo Wang
Junqiang ZHOU
Xitong ZHANG
Fujun Chen
Tianyi WU
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to PCT/CN2013/088710 priority Critical patent/WO2015081551A1/en
Application granted granted Critical
Publication of ES2627949T3 publication Critical patent/ES2627949T3/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralized routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements or network protocols for addressing or naming
    • H04L61/60Details
    • H04L61/6018Address types
    • H04L61/6022Layer 2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/22Header parsing or analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/04Interdomain routing, e.g. hierarchical routing

Abstract

A method for implementing packet routing in a network, where the network comprises a controller, two servers and at least one switch, wherein the two servers comprise a first server and a second server, the at least one switch comprises a first switch and a second switch, the controller connects, respectively, to the first switch and the second switch, the first server connects directly to the first switch, the second server connects directly to the second switch, the network comprises at least two subnets, each The server of the at least two servers belongs to a subnet of the at least two subnets and the method comprises: obtaining, by the controller, identifiers of the two servers and network topology information, wherein the network topology information comprises the network connection information of the two servers; determine, by the controller, that the two servers are on different subnets, the two servers are under the same router and the two servers are connected, respectively, to different switches, by using the identifiers of the two servers and according to the network connection information of the two servers, creating, by the controller, a first distributed routing rule, wherein the first distributed routing rule comprises: modifying the destination MAC address of the packet at a MAC address of the second server and set a network label field in layer 2 of the package to be a network label in layer 2 where the second server is located; send, by the controller, the first distributed routing rule to the first switch to instruct the first switch to: modify the destination MAC address of the packet at a MAC address of the second server and establish a network label field in layer 2 of the packet so that it is a network label in layer 2 where the second server is located and to resend the processed packet to the second server, where the network label in layer 2 where the second server is located is to order the packet to be transmitted to the Second switch directly connected to the second server and the MAC address of the second server is to order the packet to be transmitted to the second server.

Description

5

10

fifteen

twenty

25

30

35

40

Four. Five

fifty

DESCRIPTION

Method, device and system to implement packet routing in a network.

Technical field

The present invention relates to the field of network technologies and, in particular, to a method, device and system for implementing packet routing in a network.

Background

With the development of cloud computing technology (Cloud Computing), applying cloud computing technology to a data center (CD, Data Center) has become an inevitable trend. Since the access requirements and the interaction traffic between the resource servers (a server, a memory, a database and the like) within a cloud computing data center will increase significantly compared to those in a conventional data center, a traffic mode is modified based on vertical traffic (i.e. north-south traffic, which refers, specifically, to the traffic for a user to access a server) to be based on horizontal traffic (that is, east-west traffic, which refers, specifically, to cross-server traffic).

Currently, to deal with the problem of a sharp increase in the east-west traffic of a data center, many manufacturers in the industry propose solutions and this type of solution is shown in Figure 1. According to a standard network communications protocol, When a physical machine (Physical Machine, MF) or a virtual machine (Virtual Machine, MV) of a subnet 1 needs to communicate with a physical machine or a virtual machine of a subnet 2, all packets need to pass through a physical gateway / virtual (Physical / Virtual Gateway). By adopting the above solution, all data packets that communicate along a subnet need to pass through the physical / virtual gateway, so that the physical / virtual gateway becomes a bottleneck of the East-West traffic of the data center and a total bandwidth of the East-West traffic of the entire data center is limited by the physical / virtual gateway. Furthermore, due to the limited bandwidth of the physical / virtual gateway communications and with an increase in the concurrence of the communications, the communication pairs avoid the bandwidth of the physical gateway communications between sf , which results in a strong cafda of an average network bandwidth.

Koerner Marc et al. Document: "Optimizing openflow load-balancing with L2 direct server return" (2013 Fourth International Conference on the Network of the Future (NOF), IEEE, October 23, 2013, pages 1-5, XP032558790) describes a load balancing method in layer two.

EP 2482496 A1 describes a method and system for communication between virtual servers and communication between virtual machines can be carried out and it is possible that the network administrator is in a real-time communications flow condition.

Compendium

On this basis, the embodiments of the present invention provide a method, device and system for implementing packet routing in a network, which can efficiently improve the transmission bandwidth of east-west traffic.

In the present specification, the term "distributed routing" refers to the fact that, in a process in which a packet is sent from a source server to a destination server, a switch directly connected to the source server and the server of Destination can modify a packet header for the packet according to a routing rule, so that a modified packet is forwarded on a data link layer in layer 2 but is not processed in a routing protocol layer in layer 3.

In the present specification, the term "distributed routing rule" refers to a routing rule to deliver to a switch directly connected to the source server sending the packet and / or to a switch directly connected to the destination server receiving the destination. packet, so that the switch can modify the packet header of the packet according to the routing rule, so that a modified packet is processed and forwarded in the data link layer in layer 2 but not processed in the protocol layer Layer 3 routing.

In the present specification, the term "subnet" refers to a division of a large network structure into several relatively small network structures according to a certain principle (for example, according to geographical division), to facilitate the administration of the network of an administrator. From the perspective of the topology, reference is made to relatively small network structures as subnets. Each server has a subnet tag and the subnet tag is used to identify a subnet to which the server belongs.

5

10

fifteen

twenty

25

30

35

40

Four. Five

fifty

55

In the present specification, the term "server" refers, in general, to an informatic device that normally executes one or more software programs in a network environment. However, the server can also be implemented as a virtual server (namely, a software program) executed on one or more computing devices, where the only or more computing devices are considered servers in a network and the server refers to a machine physical or to a virtual machine installed in a physical machine.

In the present specification, the terms "central control platform" and "controller" refer to the ability to obtain network topology information and obtain information from the source server and the destination server of the package, being able to determine, according to the network topology information, if two nodes for packet transmission satisfy a distributed routing requirement and can create a distributed routing rule and deliver the distributed routing rule created to one or more switches directly connected to the source server that sends the packet and to the destination server receiving the packet, so that the only one or both switches can perform distributed routing for the packet according to the distributed routing rule.

According to a first aspect, a method for implementing packet routing in a network, where the network comprises a controller, two servers and at least one switch, where the two servers comprise a first server and a second server, the at least a switch comprises a first switch and a second switch, the controller is connected, respectively, to the first switch and the second switch, the first server connects directly to the first switch, the second server connects directly to the second switch, the network comprises At least two subnets, each server of the at least two servers belongs to a subnet of the at least two subnets and the method comprises:

obtain, by the controller, identifiers of the two servers and network topology information, where the network topology information comprises network connection information of the two servers;

determine, by the controller, that the two servers are on different subnets, the two servers are under the same router and the two servers are connected, respectively, to different switches, by using the identifiers of the two servers and according to the network connection information of the two servers, creating, by the controller, a first distributed routing rule, wherein the first distributed routing rule comprises: modifying the destination MAC address of the packet at a MAC address of the second server and set a network label field in layer 2 of the package to be a network label in layer 2 where the second server is located;

send, by the controller, the first distributed routing rule to the first switch to instruct the first switch to: modify the destination MAC address of the packet at a MAC address of the second server and establish a network label field in layer 2 of the packet so that it is a network label in layer 2 where the second server is located and to resend the processed packet to the second server, where the network label in layer 2 where the second server is located is to order the packet to be transmitted to the Second switch directly connected to the second server and the MAC address of the second server is to order the packet to be transmitted to the second server.

In a second possible way of implementing the first aspect, to be transparent to a destination server for the transmission of packets and to forward the packet sent by the first server to the second server forwarded by a gateway to which the second server belongs From a destination server perspective, the first distributed routing rule includes: modifying a source Mac address of the packet sent by the first server to the second server at a Mac address of the gateway to which the second server belongs.

According to a second aspect, a controller is also provided, which is configured to implement packet routing between two servers in a network, the two servers comprise a first server and a second server, the at least one switch comprises a first switch and a second switch, the controller connects respectively to the first switch and the second switch, the first server connects directly to the first switch, the second server connects directly to the second switch, the network comprises at least two subnets, the first server and the Second server belong, respectively, to a subnet different from the at least two subnets, where the controller comprises:

an obtaining unit, configured to obtain two server identifiers and network topology information, wherein the network topology information comprises network connection information of the two servers;

an activation unit, configured to determine, by using the identifiers of the two servers and according to the network connection information of the two servers in the network topology information, that the two servers are located in different subnets, the two servers are under the same router and the two servers are connected, respectively, to different switches and enable a routing rule creation unit;

5

10

fifteen

twenty

25

30

35

40

Four. Five

fifty

the routing rule creation unit, configured to create a first distributed routing rule, wherein the first distributed routing rule comprises: modifying the destination MAC address of the packet at a MAC address of the second server and establishing a label field network in layer 2 of the package to be a network label in layer 2 where the second server is located; Y

a sending unit, configured to send the first distributed routing rule to the first switch to order the first switch to: modify the destination MAC address of the packet at a MAC address of the second server and establish a network label field in layer 2 of the package to be a layer 2 network label where the second server is located and to resend the processed package to the second server, where the layer 2 network label where the second server is located is to order that the package be transmit to the second switch connected directly to the second server and the MAC address of the second server is to order the packet to be transmitted to the second server. In a second possible way of implementing the second aspect, the first distributed routing rule also includes: modifying a source Mac address of the packet sent by the first server to the second server in a Mac address of a gateway to which the gateway belongs. Second server

According to the previous technical solutions, in the method, device and system for implementing packet routing in the network provided by the embodiments of the present invention, a packet header of a packet sent between two servers that are under the same router and in different subnets it can be modified, so that a packet that satisfies the distributed routing conditions directly reaches a destination server after being forwarded on a layer of data link in layer 2 of a switch without being processed by a router in layer 3, thus improving, in an efficient manner, a transmission bandwidth of the east-west traffic.

Brief description of the drawings

In order to describe the technical solutions in the embodiments of the present invention more clearly, the attached drawings required to describe the embodiments of the present invention are briefly introduced below. Apparently, the accompanying drawings in the following description simply show some embodiments of the present invention and a person with ordinary skill in the art can derive other drawings from said attached drawings without creative efforts.

Figure 1 is a schematic network diagram of a system for implementing packet communication of a data center in the prior art;

Figure 2A is a schematic network diagram of a first system for implementing distributed routing in a network according to an embodiment of the present invention;

Figure 2B is a schematic network diagram of a second system for implementing distributed routing in a network according to an embodiment of the present invention;

Figure 3 is a schematic flow diagram of an embodiment of the method for implementing distributed routing of a packet in a network according to the present invention;

Figure 4 is a schematic flow diagram of a second embodiment of the method for implementing distributed routing of a packet in a network according to the present invention;

Figure 5 is a schematic flow diagram of a third embodiment of the method for implementing distributed routing of a packet in a network according to the present invention;

Figure 6A is a schematic network diagram of a third system for implementing distributed routing in a network according to an embodiment of the present invention;

Figure 6B is a schematic network diagram of a fourth system for implementing distributed routing in a network according to an embodiment of the present invention;

Figure 7 is a schematic structural diagram of a first embodiment of a controller according to the present invention;

Figure 8 is a schematic structural diagram of a second embodiment of a controller according to the present invention; Y

Figure 9 is a schematic structural diagram of an activation unit in a controller according to the present invention.

Description of the realizations

5

10

fifteen

twenty

25

30

35

40

Four. Five

fifty

The technical solutions in the embodiments of the present invention are clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the described embodiments are a part of, before all, the embodiments of the present invention. All other embodiments that a person with normal experience in the art obtains according to the embodiments of the present invention without creative efforts will fall within the scope of protection of the present invention.

In general, a program module includes a routine, a program, a component, a data structure and structures of other types to execute a specific task or implement a specific abstract data type. In addition, a person with experience in the art can understand that the embodiments can be implemented using other configurations of the computer system, including a portable device, a multiprocessor system, programmable or microprocessor-based consumer electronics, a small computer, a large computer and A similar computing device. The embodiments can also be implemented in a distributed computing environment where a task is executed by a remote processing device linked by a communications network. In the distributed computing environment, the program module can be located in a storage device such as a local or remote memory.

The embodiments can be implemented as a process implemented by a computer, an information system, a computer program product or a computer storage medium that stores an information program, which is executed by an information system and is formed by an order of a process as an example. For example, a computer readable storage medium can be implemented by one or more of a non-permanent computer memory, a permanent memory, a hard disk drive, a flash drive, a flexible disk or a compact disk and a similar medium.

Figure 2A to Figure 2B show two types of schematic network diagrams of an embodiment of the system for implementing packet routing in a network according to the present invention.

In Figure 2A, the schematic network diagram of the system includes: a central control platform 100, a router 200, a first switch 310 and three servers, where the central control platform 100 is connected to the first switch 310, router 200 it is connected to the first switch 310 and a first server 410, a second server 420 and a third server 430 are all connected to the first switch 310.

In comparison with Figure 2A, the differences are that, in Figure 2B, there is a second switch 320, the central control platform 100 is connected to the second switch 320 and, in addition, the router 200 is connected to the second switch 320, the first server 410 and the third server 430 are connected to the first switch 310 and the second server 420 is connected to the second switch 320.

The central control platform 100 in Figure 2A and Figure 2B is configured to dynamically build and maintain the network topology information, make a distributed routing decision, create a distributed routing rule and deliver the rule of distribution. distributed routing to the first switch 310 and / or the second switch.

It is understandable that, in a specific implementation process, it is not necessarily required that the central control platform 100 build or maintain, dynamically, the network topology information, there may be another entity to build and maintain, dynamically, The network topology information and the central control platform 100 obtains the network topology information from the entity.

The first switch 310 and the second switch 320, as layer 2 forwarding entities, are configured to receive and execute the distributed routing rule created and delivered by the central control platform 100, modifying a packet header for a packet that satisfies The distributed routing conditions and is transmitted by a source server and a destination server and to resend the modified packet.

The distributed routing conditions are: to determine if the source server that sends the packet and the destination server that receives the packet are on different subnets and determine if the source server and the destination server are under the same router.

The first server 410, the second server 420 and the third server 430 act as communications entities and, in a specific implementation, the previous servers may refer to physical machines or one or more virtual machines installed on the servers.

Router 200 is an entity for implementing layer 3 forwarding and can integrate one or more gateways.

Figure 3 shows a method to implement the distributed routing of a packet according to the previous network, where the network includes a controller, at least two servers and at least one switch. The controller connects at least one switch, the at least two servers connect at least one switch, the network includes the

5

10

fifteen

twenty

25

30

35

40

Four. Five

fifty

at least two subnets and each server of the at least two servers belongs to a subnet of the at least two subnets. The method includes:

301: The controller obtains two server identifiers and network topology information, where the network topology information includes network connection information of the two servers.

The controller in the stage corresponds to the central control platform 100 in the previous system to implement the distributed routing of a packet.

302: when the controller determines, by using the identifiers of the two servers and according to the network connection information of the two servers, that the two servers are in different subnets and that the two servers are under the same router , the controller creates a first distributed routing rule and sends the first distributed routing rule to a first switch connected directly to a first server, where the first distributed routing rule is used to order the first switch to modify a header of package for a package sent by the first server to a second server and to resend the modified package.

By adopting the above method, a controller obtains identifiers from two servers that need to send a packet and query the topology information of an entire network using the identifiers. Specifically, the controller consults the network connection information of the two servers and determines, according to the network connection information, if the two servers are in different subnets and if the two servers are under the same router. When both of the above conditions are satisfied, the controller creates a distributed routing rule and delivers the rule to a switch directly connected to a server that sends the packet. The switch modifies, according to the distributed routing rule delivered, a header for a packet sent by a first server to a second server, to resend the modified packet according to the packet header. The previous way of implementation can be adopted to prevent all packets through a router and thus efficiently improve the transmission bandwidth of east-west traffic.

In a specific implementation process, a process in which the controller determines whether the two servers satisfy the distributed routing conditions can be activated in the following two ways:

Way 1: the first server of the two servers sends a packet to the second server, the packet reaches a switch connected directly to the first server, when the switch does not have a corresponding packet routing rule, the switch sends a routing rule request to the controller, where the request includes the identifiers of the two servers (for example, an IP address or a Mac address) and the controller determines the distributed routing conditions according to the identifiers of the two servers and the network topology information.

Way 2: an MV1 and an MV2 are created separately on a host computer and, when the controller receives a message of creation of the MV1 and MV2 and discovers, through the use of identifiers of the two virtual machines, that it is not delivers no routing rules for the transmission of packets of the two virtual machines, the controller obtains the identifiers of the two virtual machines and determines the routing conditions distributed according to the identifiers of the two virtual machines and the network topology information.

Specifically, the first distributed routing rule includes: modifying a destination Mac address of the packet sent by the first server to the second server at a Mac address of the second server. When you receive the packet sent by the first server to the second server, the first switch modifies the destination Mac address of the packet at the Mac address of the second server, so that the packet is forwarded directly to the second server in a process in which the packet is forwarded to the second server through the first switch, instead of being routed and forwarded by a gateway.

Optionally, when the two servers are under different switches, the distributed routing rule needs to include modifying a network label field in layer 2, that is, setting the network label field in layer 2 of the sent packet by the first server to the second server to be a layer 2 network label where the second server is located. The network tag in layer 2 is, specifically: a Vlan tag, a Vxlan tag or the like. It is understandable that the ways of implementation for the layer 2 network tag are several and the above examples do not constitute a limitation for the layer 2 network tag.

Optionally, a Mac source address of the packet sent to the second server is modified to a Mac address of a gateway to which the second server belongs. To deliver this rule, there may be two situations according to the different network architectures of the network system:

5

10

fifteen

twenty

25

30

35

40

Four. Five

fifty

(1) when the two servers connect to the same switch, the rule of modifying the source Mac address of the packet sent to the second server at the Mac address of the gateway to which the second server belongs is delivered to the connected switch directly to the two servers; Y

(2) When the two servers are connected separately to different switches, the rule of modifying the source Mac address of the packet sent to the second server at the Mac address of the gateway to which the second server belongs can be sent to the first switch connected directly to the first server or to a second switch connected directly to the second server. When sending the rule to the second switch is selected, it is necessary to re-create a new distributed routing rule and deliver the routing rule to the second switch.

The manner of previous implementation is described from the perspective of the second server and the package of the first server is forwarded and processed by the gateway to which the second server belongs, which further conforms to a conventional network forwarding process.

The previous implementation manner resolves the creation and delivery of the distributed routing rule of the packet sent by the first server to the second server. Considering a two-way communication property of the two servers, it is necessary to create a distributed routing rule to process the packet sent by the second server to the first server.

After the controller determines that the two servers are in different subnets and that the two servers are under the same router, the method also includes:

When the controller determines that the switch directly connected to the second server is the first switch, create, by the controller, a third distributed routing rule and sends the third distributed routing rule to the first switch, where the third distributed routing rule is used to instruct the first switch to modify a packet header for the packet sent by the second server to the first server and to resend the modified packet; Y

When the controller determines that the switch directly connected to the second server is the second switch different from the first switch, create, by the controller, a fourth distributed routing rule and sends the fourth distributed routing rule to the second switch, where the fourth rule of Distributed routing is used to order the second switch to modify the packet header for the packet sent by the second server to the first server and to resend the modified packet.

The third distributed routing rule or the fourth distributed routing rule includes: modifying a destination Mac address of the packet sent by the second server to the first server at a Mac address of the first server.

Optionally, when the second server and the first server are connected separately to different switches, the previous third distributed routing rule or the fourth distributed routing rule also includes: establishing a network label field in layer 2 of the packet sent by the second server to the first server to be a layer 2 network label where the first server is located.

Optionally, in order to make a transparent packet forwarding path for the first server and to make the first server consider that using the distributed routing rule to process the packet is similar to conventional routing (i.e., a gate link to which the first server belongs), the third distributed routing rule above or the fourth distributed routing rule also includes: modifying a source Mac address of the packet sent by the second server to the first server in a Mac address of the Gateway to which the first server belongs. In this way, when the packet sent by the second server to the first server crosses the switch, the Mac address of the source of the packet is modified at the Mac address of the gateway to which the first server belongs.

Optionally, another way to make the packet sent by the second server to the first transparent server for the first server is to create another distributed routing rule, that is, a fifth distributed routing rule and deliver the fifth distributed routing rule to the switch. connected directly to the first server, where the rule includes: modifying a source Mac address of the packet sent by the second server to the first server in a Mac address of a gateway to which the first server belongs.

Optionally, a process in which the controller determines, by using the identifiers of the two servers and according to the network connection information of the two servers, that the two servers are in different subnets and that the two servers are under the same router includes, specifically:

obtain, by the controller, the identifiers of the two servers, consult, according to the identifiers, subnet identifiers of the two servers in the network connection information of the two servers and

5

10

fifteen

twenty

25

30

35

40

Four. Five

compare the subnet identifiers found from the two servers and, when the two subnet identifiers are different, determine that the two servers are on different subnets; Y

consult, by the controller, according to the identifiers of the two servers, router identifiers, to which the two servers belong, in the network connection information of the two servers and compare the router identifiers found of the two servers and, When the two router identifiers are equal, determine that the two servers are under the same router.

In the previous embodiment, a communications protocol adopted by the controller and the switch includes, but is not limited to: an Openflow protocol or a Secure Shell interpreter protocol.

In order to describe the process of creating and delivering the distributed routing rule more clearly, four specific embodiments are used below to describe the creation and delivery of the distributed routing rule:

(I) a way to passively create a distributed routing rule

1) the descriptions are carried out according to a network architecture in Figure 2A

401: a first server 410 sends a data packet to a second server 420 and the data packet reaches a first switch 310 connected to the first server 410 and the second server 420. Specifically, a header of the data packet includes the following Fivefold information:

 Source mac
 Destination Mac Type of Ethernet Source IP Destination IP

 Mac of the first server
 Mac of a gateway of the first server 0x0800 IP of the first IP server of the second server

A destination Mac address of the data packet is a Mac address of a gateway to which the first server belongs. That is, according to conventional routing, a next hop of the data packet is a gateway of a subnet to which the first server belongs.

The type of Ethernet in the table above is added by the first server according to a type of transmission network. It is understandable that the type of Ethernet may also be another type of network, which is not limited herein by the realization of the present invention.

403: the first switch 310 searches for a local routing directive stored by the first switch 310 and finds no matches and, therefore, sends a request to the central control platform 100.

The routing policy adopts a "match field + execution field" structure, where the match field includes information about the source server and the destination server and the information can include an IP address, a Mac address or the like. In an implementation process of step 403, it is determined, by using a match mode of the match field, whether the routing directive for which a match is required can be found.

405: the central control platform 100 determines, according to the request sent by the first switch 310, if the first server 410 and the second server 420 meet the distributed routing conditions and determine, by obtaining the identifiers of the two servers and in combination with the network topology information (which is, specifically, the network connection information of the two servers), if the two servers are on different subnets and if the two servers are under the same router; and, when the two previous conditions are met, stage 407 is carried out; otherwise, create a routing rule in a conventional way.

A process for determining whether the first server 410 and the second server 420 meet the distributed routing conditions specifically includes:

the central control platform 100 obtains identifiers (for example, IP addresses or Mac addresses) of the first server 410 and second server 420, query, according to the above identifiers, subnet identifiers (subnet_id) of the two servers in the connection information of network of the two servers and compare the subnet identifiers found of the two servers and, when the two subnet identifiers are different, it determines that the two servers are on different subnets.

The central control platform 100 consults, according to the identifiers of the two servers, router identifiers (Router_id), to which the two servers belong, in the network connection information of the

5

10

fifteen

twenty

25

30

35

40

two servers and compares the router identifiers found from the two servers and, when the router identifiers are equal, determines that the two servers are under the same router.

407: Create a first distributed routing rule from the packet sent by the first server to the second server and deliver the first distributed routing rule to the first switch 310, where the rule is as follows:

 Field of Concordance
 Field of execution

 Ori_Mac
 Des_Mac Ethernet_type Ori_IP Des_IP Actions

 Mac of the first server
 Mac of a gateway to which the first server 0x0800 IP of the first IP server of the second server belongs Mod_Des_Mac = Mac of the second server

 Mod_Ori_Mac = Mac of a gateway to which the second server belongs

It should be noted that the two execution rules included in the execution field constitute a preferred embodiment. In a specific implementation process, it is necessary to modify a destination Mac address of the package, that is, "Mod_Des_Mac = Mac of the second server"; and it is optional to modify the Mac address of the source of the package, that is, "Mod_Ori_Mac = Mac of a gateway to which the second server belongs."

409: when the packet sent by the first server 410 to the second server 420 reaches the first switch 310 and it is determined, by the concordance of the match field of the first distributed routing rule, that the packet is sent by the first server 410 to the second server 420, modify the destination Mac address of the packet and modify a Vlan tag according to the execution field of the first distributed routing rule, so that the packet can directly reach the second server 420 after crossing the first switch 310.

It should be noted that the above concordance field structure of the first distributed routing rule is merely a specific example. It is understandable that the concordance field of the distributed routing rule described in the embodiments of the specification can be implemented in another way. For example, the match field only includes an IP of a source server and an IP of a destination server, which is not limited by the embodiments of the present invention.

In carrying out the present invention, the controller determines whether the information about the packet sent by the first server 410 to the second server 420 meets the distributed routing conditions, where the distributed routing conditions are, specifically: determining whether the server of The source that sends the packet and the destination server that receives the packet are on different subnets and if both servers are under the same router. If the above distributed routing conditions are satisfied, the distributed routing rule is delivered to the switch directly connected to the two servers. The switch that receives the distributed routing rule forwards and processes the previous packet by modifying the destination Mac of the packet on the Mac of the destination server. In this way, it is avoided that all packets need to be forwarded by using a layer 3 routing protocol and the pressure of a router, which has an exit gate function, in packet forwarding it is significantly reduced .

The above process is to create the distributed routing rule for the packet sent by the first server 410 to the second server 420, to resend the packet. A person with ordinary skill in the art may understand that, with respect to distributed routing for a packet sent by the second server 420 to the first server 410, the controller may create a corresponding distributed routing rule similarly to resend the packet sent by the second server 420 to the first server 410 and the details are not described again herein.

A situation in which two servers connect to a switch is described above and a way of distributed routing of the packet is described below by using two servers that are connected separately to two switches as an example.

2) Descriptions are carried out according to a network architecture in Figure 2B

501: a first server 410 sends a data packet to a second server 420 and the data packet reaches a first switch 310 connected to the first server 410. A header of the data packet includes the following fivefold information:

5

10

fifteen

twenty

25

30

 Source mac
 Destination Mac Type of Ethernet Source IP Destination IP

 Mac of the first server
 Mac of a gateway of the first server 0x0800 IP of the first IP server of the second server

A destination Mac address of the data packet is a Mac address of a gateway to which the first server belongs. That is, according to conventional routing, a next hop of the data packet is a gateway to which the first server belongs.

The type of Ethernet in the table above is added by the first server according to a type of transmission network. It is understandable that the type of Ethernet may also be another type of network, which is not limited herein by the realization of the present invention.

503: the first switch 310 searches for a local routing policy stored by the first switch 310 and finds no matches and, therefore, sends a request to the central control platform 100.

The routing policy adopts a "match field + execution field" structure, where the match field includes information about the source server and the destination server and the information can include an IP address, a Mac address or the like. In an implementation process of step 503, it is determined, by using a match mode of the match field, whether the routing directive for which a match is required can be found.

505: the central control platform 100 determines, according to the request sent by the first switch 310, if the first server 410 and the second server 420 meet the distributed routing conditions and determine, by obtaining the identifiers of the two servers and in combination with the network topology information (which is, specifically, the network connection information of the two servers), if the two servers are on different subnets and if the two servers are under the same router; and when the two previous conditions are met, stage 507 is carried out; otherwise, create a routing rule in a conventional way.

A process for determining whether the first server 410 and the second server 420 meet the distributed routing conditions specifically includes:

the central control platform 100 obtains identifiers (for example, IP addresses or Mac addresses) of the first server 410 and second server 420, query, according to the above identifiers, subnet identifiers (subnet_id) of the two servers in the connection information of network of the two servers and compare the subnet identifiers found of the two servers and, when the two subnet identifiers are different, it determines that the two servers are on different subnets.

The central control platform 100 consults, according to the identifiers of the two servers, router identifiers (Router_id), to which the two servers belong, in the network connection information of the two servers and compares the router identifiers found from the two servers and, when the router identifiers are equal, determines that the two servers are under the same router.

507: The central control platform 100 creates a first distributed routing rule of the packet sent by the first server 410 to the second server 420 and delivers the first distributed routing rule to the first switch 310, where the rule is as follows:

 Field of Concordance
 Field of execution

 Ori_Mac
 Des_Mac Ethernet_type Ori_IP Des_IP Actions

 Mac of the first server
 Mac of a gateway to which the first IP switch 0x0800 belongs to the first IP server of the second server Mod_Des_Mac = Mac of the second server

 Mod_Vlan_vid = Vlan of the second server

 Mod_Ori_Mac = Mac of a gateway to which the second server belongs

In the execution field of the first distributed routing rule delivered to the first switch 310, it is necessary to modify a packet source Mac address at a Mac address of the second server used as a destination of the destination packet reception, that is, " Mod_Des_Mac = Mac of the second server ". It is known from Figure 2B that the first server 410 and the second server 420 are connected separately to different switches. That is, it is necessary to modify a network label in layer 2 in the packet sent by two servers that communicate via crossover switches and, in the present embodiment, it is necessary to modify a Vlan tag. That is, "Mod_Vlan_vid = Vlan of the second server" is also necessary. In addition, it is optional to modify the Mac address of the source of the package, that is, "Mod_Ori_Mac = Mac of a gateway to which the second server belongs."

10 By way of another transformation, for an order of "Mod_Ori_Mac = Mac of a gateway to which the second server belongs", a second distributed routing rule can also be created independently and the rule is delivered to the second switch 320 connected directly to the second server 420, where the second distributed routing rule is shown as follows:

 Field of Concordance
 Field of execution

 Ori_Mac
 Des_Mac Ethernet_type Ori_IP Des_IP Actions

 Mac of the first server
 Mac of a gateway to which the first 0x0800 IP switch of the first IP server of the second server Mod_Ori_Mac = Mac of a gateway to which the second server belongs belongs

In addition, the first distributed routing rule that includes "Mod_Des_Mac = Mac of the second server" and

15 "Mod_vlan_vid = Vlan of the second server" is delivered to the first switch 310. That is, the distributed routing rule, as described below, is delivered to the first switch 310:

 Field of Concordance
 Field of execution

 Ori_Mac
 Des_Mac Ethernet_type Ori_IP Des_IP Actions

 Mac of the first server
 Mac of a gateway to which the first IP switch 0x0800 belongs to the first IP server of the second server Mod_Des_Mac = Mac of the second server

 Mod_vlan_vid = Vlan of the second server

509: when the packet sent by the first server 410 to the second server 420 reaches the first switch 310, the first switch 310 determines, by the concordance of the match field of the first distributed routing rule, that the packet is sent by the first server 410 to the second server 420, modify the

20 the destination Mac address of the packet and modifies a Vlan tag according to the execution field of the first distributed routing rule, so that the packet can directly reach the second server 420 after being forwarded on a layer 2 data link layer of the first switch 310 and second switch 320.

In carrying out the present invention, the controller determines whether the information about the packet sent by the first server 410 to the second server 420 meets the distributed routing conditions, where the 25 distributed routing conditions are, specifically: determining whether the server of origin that sends the

packet and the destination server that receives the packet are on different subnets and if the two servers are under the same router. If the above distributed routing conditions are satisfied, the distributed routing rule is delivered to the switch connected to the two servers. The switch that receives the distributed routing rule forwards and processes the previous packet by modifying the destination Mac of the packet on the Mac of the destination server. It avoids that all packets need to be forwarded by using a router in layer 3 and the pressure of a router, which has an exit door function, in packet forwarding is significantly reduced.

A process for creating and delivering the distributed routing rule is described above in a manner in which the first server 410 sends the packet to the second server 420 and a process to create and deliver a distributed routing rule for a packet sent by the second server 420 to the first server 410 is similar to

previous process and details are not described again in the realization of the present invention.

5

10

fifteen

twenty

25

30

In the above "way of passively creating a distributed routing rule", reference is made to the way "passive" because the central control platform 100 only starts the process of creating the distributed routing rule after receive information about the packet sent by the source server to the destination server and determine that no routing rule is created.

(II) A way to actively create a distributed routing rule

In Figure 6A and Figure 6B, a v Switch (Virtual Switch) refers to a virtual switch and an MV (Virtual Machine) refers to a virtual machine. In a specific implementation process, the v Switch can be a logical entity and can be the same physical entity along with the MV.

A process to create and deliver a distributed routing rule is described below by using an Openstack scenario. With reference to Figure 6A, the method includes:

601: create an MV1 640 on an information node 1 and, in the present case, the network topology information under a v Switch 620 is changed.

602: the computer node 1 detects that the network topology information changes and reports the change to a control node 600.

603: control node 600 updates the network topology information.

604: create an MV2 650 on the computer node 1 and the computer node 1 detects that the network topology information changes and reports the change to the control node 600.

605: the control node 600 discovers, according to the network topology information, that two MVs are created and determines if the MV1 640 and MV2 650 are under the same router and if the MV1 640 and MV2 650 are in different subnets.

606: when it is determined that the above two conditions are satisfied, the control node 600 creates two routing rules distributed separately. A first distributed routing rule is used to route and forward a packet sent by the MV1 640 to the MV2 650 and a second distributed routing rule is used to route and forward a packet sent by the MV2 650 to the MV1 640.

The first distributed routing rule is:

 Field of Concordance
 Field of execution

 Mac_Ori
 Mac_Des Ethernet_type IP_Ori IP_Des Actions

 MV1 Mac
 Mac of a gateway to which MV1 0x0800 IP of MV1 IP of MV2 belongs Mod_Mac_Des = MV2 Mac

 Mod_Mac_Ori = MV2 GW Mac

In the previous rule, "Mod_Mac_Des = MV2 Mac" means modifying a destination Mac address of the package in a Mac address of the MV2 650 and the rule is mandatory.

"Mod_Mac_Ori = MV2 GW Mac" means modifying a Mac address of the source of the package in a Mac address of a gateway to which the MV2 650 belongs and the rule is optional.

Similarly, the second distributed routing rule is:

 Field of Concordance
 Field of execution

 Mac_Ori
 Mac_Des Ethernet_type IP_Ori IP_Des Actions

 MV2 Mac
 Mac of a gateway to which MV2 0x0800 IP of MV2 belongs to MV1 IP Mod_Mac_Des = MV1 Mac

 Mod_Mac_Ori = MV1 GW Mac

5

10

fifteen

twenty

25

30

35

40

In the previous rule, "Mod_Mac_Des = MV1 Mac" means modifying a destination Mac address of the packet in a Mac address of the MV1 and the rule is mandatory.

"Mod_Mac_Ori = MV1 GW Mac" means modifying a Mac address of the source of the package in a Mac address of a gateway to which the MV1 belongs and the rule is optional.

607: Control node 600 delivers the two routing rules created to v Switch 620.

After the above process, for the packet sent by MV1 to MV2 and the packet sent by MV2 to MV1, distributed routing and packet forwarding can be implemented using the two previous routing rules.

It is understandable that, in the previous embodiment shown in Figure 6A, the v Switch, the MV1 and the MV2 are logical entities with different functions. In a specific implementation process, the v Switch and the MV1 can be implemented in the same physical entity, or the v Switch and the MV2 can be implemented in the same physical entity, or the v Switch, the MV1 and the MV2 can be implemented in one same physical entity, which is not limited by the embodiments of the present invention.

The previous embodiment is for a situation in which two virtual machines are connected to the same v Switch and the following embodiment describes a situation in which two virtual machines are connected, separately, to two v Switches, with reference to Figure 6B:

701: create an MV1 640 on an information node 1 and, in the present case, the network topology information under a v Switch 52 is changed;

702: the computer node 1 detects that the network topology information changes and informs the change of the network topology to a control node 600;

703: control node 600 updates the network topology information;

704: create an MV2 650 on an information node 2 and the information node 2 detects that the network topology information changes and reports the change to the control node 600;

705: the control node 600 discovers, according to the network topology information, that two MVs are created and determines, by using identifiers of the two MVs and according to the network topology information, whether the MV1 640 and the MV2 650 are under the same router and if the MV1 640 and MV2 650 are in different subnets;

706: when it is determined that the above two conditions are satisfied, control node 600 creates two routing rules distributed separately. A first distributed routing rule is used to route and forward a packet sent by the MV1 640 to the MV2 650 and a second distributed routing rule is used to route and forward a packet sent by the MV2 650 to the MV1 640.

The first distributed routing rule is:

 Field of Concordance
 Field of execution

 Mac_Ori
 Mac_Des Ethernet_type IP_Ori IP_Des Actions

 MV1 Mac
 Mac of a gateway to which MVl 0x0800 belongs to MV1 IP of MV2 Mod_Mac_Des = MV2 Mac

 Mod_Vlan_vid = MV2 Vlan

 Mod_Mac_Ori = MV2 GW Mac

In the previous rule, "Mod_Mac_Des = MV2 Mac" means modifying a destination Mac address of the package in a Mac address of the MV2 and the rule is mandatory. "Mod_Vlan_vid = MV2 Vlan" means modifying a Vlan tag of the package in a Vlan tag where the MV2 is located and the rule is also mandatory. "Mod_Mac_Ori = MV2 GW Mac" means modifying a Mac address of the source of the package in a Mac address of a gateway to which the MV2 belongs and the rule is optional. One objective is to make a transparent packet distributed route routing process for MV2. That is, it seems to the MV2 that the packet is forwarded to the MV2 by the gateway to which the MV2 belongs, which is the same as what happens in a conventional routing manner.

5

10

fifteen

twenty

25

30

35

40

Similarly, the second distributed routing rule is:

 Field of Concordance
 Field of execution

 Mac_Ori
 Mac_Des Ethernet Type IP_Ori IP_Des Actions

 MV2 Mac
 Mac of a gateway to which MV2 0x0800 IP of MV2 belongs to MV1 IP Mod_Mac_Des = MV1 Mac

 Mod_Mac_Ori = MV1 GW Mac

In the previous rule, "Mod_Mac_Des = MV1 Mac" means modifying a destination Mac address of the packet in a Mac address of the MV1 and the rule is mandatory.

"Mod_Mac_Ori = MV1 GW Mac" means modifying a Mac address of the source of the package in a Mac address of a gateway to which the MV1 belongs and the rule is optional.

707: Control node 600 delivers the first distributed routing rule created to the v Switch and delivers the second distributed routing rule created to a v Switch 2.

In the embodiment shown in Figure 6B, the v Switch and the MV1 and the v Switch 2 and the MV2 are different logical entities, respectively. In a specific implementation process, the v Switch and the MV1 can be implemented in the same physical entity, or the v Switch 2 and the MV2 can be implemented in the same physical entity, which are not limited by the embodiments of the present invention.

By adopting the previous embodiment of the method, a controller obtains newly created virtual machine identifiers and determines, using the identifiers and consulted the topology information of the entire network, if the two virtual machines are in different subnets and if the two virtual machines are under the same router. When both of the above conditions are satisfied, the controller creates a distributed routing rule and delivers the rule to a switch directly connected to the virtual machine that sends the packet. The switch processes, according to the distributed routing rule delivered, a packet sent by a first virtual machine to a second virtual machine. The previous way of implementation can be adopted to prevent all packets from crossing a router with a gateway function and thus efficiently improve the transmission bandwidth of the east-west traffic.

Another embodiment of the present invention provides a controller, where the controller is configured to implement distributed routing of a packet in a network. As shown in Figure 7, controller 100 includes:

a obtaining unit 110, configured to obtain two server identifiers and network topology information, where the network topology information includes network connection information of the two servers;

an activation unit 120, configured to determine, by using the identifiers of the two servers and according to the network connection information of the two servers in the network topology information, that the two servers are in different subnets and that the two servers are under the same router and enable a routing rule creation unit 130;

the routing rule creation unit 130, configured to create a first distributed routing rule, where the first distributed routing rule is used to order a first switch to modify a packet header for a packet sent by a first server to a second server and to resend the modified package; Y

a sending unit 140, configured to send the first distributed routing rule to the first switch connected directly to the first server.

The first distributed routing rule includes: modifying a destination Mac address of the packet sent by the first server to the second server at a Mac address of the second server.

Optionally, the first distributed routing rule also includes: establishing a network label field in layer 2 of the packet sent by the first server to the second server to be a network label in layer 2 where the second server is located.

Optionally, the first distributed routing rule also includes:

5

10

fifteen

twenty

25

30

35

40

Four. Five

modify a source Mac address of the packet sent by the first server to the second server in a Mac address of a gateway to which the second server belongs.

Optionally, the 100 controller also includes:

a determining unit 150, configured to allow the routing rule creation unit to create a second distributed routing rule when it is determined that a switch connected to the second server is a second switch different from the first switch, where

the routing rule creation unit 130 is further configured to create the second distributed routing rule, where the second distributed routing rule is used to instruct the second switch to modify the packet header for the packet sent by the first server to a second server and to resend the modified packet; Y

The sending unit 140 is further configured to send the second distributed routing rule to the second switch.

The second distributed routing rule includes:

modify a source Mac address of the packet sent by the first server to the second server in a Mac address of a gateway to which the second server belongs.

With respect to a process of creating the distributed routing rule for the packet sent by the first server to the second server and for two situations in which the first server and the second server connect to the first switch and the first server connects to the First switch and the second server connects to the second switch.

The determination unit 150 in the previous controller 100 is further configured to: when it is determined that the switch directly connected to the second server is the first switch, allow the routing rule creation unit to create a third distributed routing rule and when It is determined that the switch directly connected to the second server is the second switch different from the first switch, allowing the routing rule creation unit to create a fourth distributed routing rule.

The routing rule creation unit 130 in the previous controller 100 is further configured to create the third distributed routing rule and create the fourth distributed routing rule, where the third distributed routing rule is used to order the first switch to modify a packet header for a packet sent by the second server to the first server and to resend the modified packet, where the fourth distributed routing rule is used to instruct the second switch to modify the packet header for the packet sent by the second server to the first server and to resend the modified package.

The sending unit 140 is further configured to send the third distributed routing rule to the first switch and send the fourth distributed routing rule to the second switch.

The third distributed routing rule or the fourth distributed routing rule includes:

modify a destination Mac address of the packet sent by the second server to the first server in a Mac address of the first server.

Optionally, the third distributed routing rule or the fourth distributed routing rule also includes:

set a network label field in layer 2 of the packet sent by the second server to the first server to be a network label in layer 2 where the first server is located.

Optionally, the third distributed routing rule or the fourth distributed routing rule also includes:

modify a Mac address of the source of the packet sent by the second server to the first server in a Mac address of a gateway to which the first server belongs.

With respect to distributed routing for the packet sent by the second server to the first server, the determination unit 150 included in the controller 100 is further configured for: when it is determined that a switch directly connected to the first server is the first switch different from the second switch, allow the routing rule creation unit to create a fifth distributed routing rule.

5

10

fifteen

twenty

25

30

35

40

Four. Five

fifty

The routing rule creation unit 130 is further configured to create the fifth distributed routing rule, where the fifth distributed routing rule is used to instruct the first switch to modify the packet header for the packet sent by the second server to the first server and to resend the modified package.

The sending unit 140 is further configured to send the fifth distributed routing rule to the first switch.

The fifth distributed routing rule includes: modifying a source Mac address of the packet sent by the second server to the first server at a Mac address of a gateway to which the first server belongs.

In addition, with reference to Figure 9, the activation unit 120 also includes:

a first determination module 121, configured to query, according to the identifiers of the two servers, subnet identifiers of the two servers in the network connection information of the two servers and compare the subnet identifiers found of the two servers and, When the two subnet identifiers are different, determine that the two servers are on different subnets;

a second determination module 122, configured to query, according to the identifiers of the two servers, router identifiers, to which the two servers belong, in the network connection information of the two servers and compare the router identifiers found from the two servers and, when the router identifiers are equal, determine that the two servers are under the same router; Y

an activation module 123, configured to allow the routing rule creation unit according to the results of the first determination module and the second determination module.

A person with ordinary experience in the art may realize that, in combination with the examples described in the embodiments described herein, the algorithm units and steps can be implemented by electronic hardware, computer software or a combination of they. In order to describe, in a clear way, the interchangeability between hardware and software, the foregoing has described, in general, the stages and compositions of each example according to the functions. Whether the functions are carried out by hardware or software depends on the particular applications and the conditions of design limitations of the technical solutions. A person with experience in the art can use different methods to implement the functions described for each particular application, but the implementation will not be considered beyond the scope of the present invention.

A person with experience in the art can clearly understand that, for the purpose of a convenient and brief description, for a detailed work process of the previous system, apparatus and unit, reference may be made to a corresponding process in the previous embodiments. of the method and details are not described again herein.

In the various embodiments provided in the present application, it should be understood that the system, apparatus and method described can be implemented in other ways. For example, the embodiment of the described apparatus is merely by way of example. For example, the unit division is merely a logical function division and in the actual implementation the division may be another. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not carried out. In addition, the mutual links represented or described or the direct links or communication connections can be implemented through some interfaces. Indirect couplings or communication connections between the devices or units can be implemented electronically, mechanically or otherwise.

The units described as separate parts may or may not be physically separate and the parts shown as units may or may not be physical units, may be located in one position, or may be distributed in multiple network units. A part of or all the units can be selected according to the real needs to achieve the objectives of the solutions of the embodiments of the present invention.

In addition, the functional units in the embodiments of the present invention can be integrated into a processing unit, or each of the units can exist physically only, or two or more units are integrated into a unit. The integrated unit can be implemented in the form of hardware or it can be implemented in the form of a functional software unit.

When the integrated unit is implemented in the form of a functional software unit and sold or used as a separate product, the integrated unit can be stored in a computer-readable storage medium. According to said understanding, the technical solutions of the present invention essentially, or the part that contributes to the prior art, or all or a part of the technical solutions can be implemented in the

Form of a software product. The software product is stored in a storage medium and includes several instructions to indicate to an informatic device (which may be a personal computer, a server, a network device or the like) to carry out all or a part of the stages of the methods described in the embodiments of the present invention. The above storage media include: any media that can store a program code such as a USB memory, a removable hard disk, a read-only memory (ROM), an access memory random (RAM), a magnetic disk or an optical disk.

The above descriptions are merely specific embodiments of the present invention, but are not intended to limit the scope of protection of the present invention. Any modification or replacement discovered immediately by a person with experience in the technique within the technical scope described in the present invention will fall within the scope of protection of the present invention. Therefore, the scope of protection of the present invention will be subject to the scope of protection of the claims.

Claims (4)

  1. 5
    10
    fifteen
    twenty
    25
    30
    35
    40
    Four. Five
    fifty
    1. A method of implementing packet routing in a network, where the network comprises a controller, two servers and at least one switch,
    wherein the two servers comprise a first server and a second server, the at least one switch comprises a first switch and a second switch, the controller is connected, respectively, to the first switch and the second switch, the first server connects directly to the First switch, the second server connects directly to the second switch, the network comprises at least two subnets, each server of the at least two servers belongs to a subnet of the at least two subnets and the method comprises:
    obtain, by the controller, identifiers of the two servers and network topology information, where the network topology information comprises the network connection information of the two servers;
    determine, by the controller, that the two servers are on different subnets, the two servers are under the same router and the two servers are connected, respectively, to different switches, by using the identifiers of the two servers and according to the network connection information of the two servers, creating, by the controller, a first distributed routing rule, wherein the first distributed routing rule comprises: modifying the destination MAC address of the packet at a MAC address of the second server and set a network label field in layer 2 of the package to be a network label in layer 2 where the second server is located;
    send, by the controller, the first distributed routing rule to the first switch to instruct the first switch to: modify the destination MAC address of the packet at a MAC address of the second server and establish a network label field in layer 2 of the packet so that it is a network label in layer 2 where the second server is located and to resend the processed packet to the second server, where the network label in layer 2 where the second server is located is to order the packet to be transmitted to the Second switch connected directly to the second server and the mAc address of the second server is to order the packet to be transmitted to the second server.
  2. 2. The method according to claim 1, wherein the first distributed routing rule further comprises: modifying a source MAC address of the packet into a MAC address of a gateway to which the second server and the first routing rule belong Distributed is used to order the first switch:
    that modifies a MAC address of the source of the package to a MAC address of a gateway to which the second server belongs, where the package is sent by the first server to the second server.
  3. 3. A controller, configured to implement packet routing between two servers in a network, the two servers comprise a first server and a second server, the at least one switch comprises a first switch and a second switch, the controller is connected respectively to the first switch and the second switch, the first server connects directly to the first switch, the second server connects directly to the second switch, the network comprises at least two subnets, the first server and the second server belong, respectively, to a subnet different from the at least two subnets, where the controller comprises:
    an obtaining unit, configured to obtain two server identifiers and network topology information, wherein the network topology information comprises network connection information of the two servers;
    an activation unit, configured to determine, by using the identifiers of the two servers and according to the network connection information of the two servers in the network topology information, that the two servers are in different subnets, the two servers are under the same router and the two servers are connected, respectively, to different switches and enable a routing rule creation unit;
    the routing rule creation unit, configured to create a first distributed routing rule, wherein the first distributed routing rule comprises: modifying the destination MAC address of the packet at a MAC address of the second server and establishing a label field network in layer 2 of the package to be a network label in layer 2 where the second server is located; Y
    a sending unit, configured to send the first distributed routing rule to the first switch to order the first switch to: modify the destination MAC address of the packet at a MAC address of the second server and establish a network label field in layer 2 of the package to be a layer 2 network label where the second server is located and to resend the processed package to the second server, where the layer 2 network label where the second server is located is to order that the package be transmit to
    Second switch directly connected to the second server and the MAC address of the second server is to order the packet to be transmitted to the second server.
  4. 4. The controller according to claim 3, wherein the first distributed routing rule further comprises: modifying a source MAC address of the packet at a MAC address of a gateway to which the second server and the first rule of Distributed routing is used to order the first switch to:
    Modify a source MAC address of the packet to a MAC address of a gateway to which the second server belongs, where the packet is sent by the first server to the second server.
ES13886628.0T 2013-12-06 2013-12-06 Method, device and system to implement packet routing in a network Active ES2627949T3 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/088710 WO2015081551A1 (en) 2013-12-06 2013-12-06 Method, device and system for implementing packet routing in network

Publications (1)

Publication Number Publication Date
ES2627949T3 true ES2627949T3 (en) 2017-08-01

Family

ID=53272772

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13886628.0T Active ES2627949T3 (en) 2013-12-06 2013-12-06 Method, device and system to implement packet routing in a network

Country Status (5)

Country Link
US (2) US9614754B2 (en)
EP (1) EP2899927B1 (en)
CN (2) CN105531966B (en)
ES (1) ES2627949T3 (en)
WO (1) WO2015081551A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107453992A (en) * 2016-05-30 2017-12-08 北京京东尚科信息技术有限公司 Data forwarding method and system in a kind of virtual network
CN108092860B (en) * 2017-12-07 2019-09-10 中盈优创资讯科技有限公司 Two etale topology topology discovery method, apparatus, storage medium and the equipment of Metropolitan Area Network (MAN)

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004328029A (en) * 2003-04-21 2004-11-18 Nec Corp Network access system
CN100409646C (en) * 2003-10-28 2008-08-06 武汉烽火网络有限责任公司 Method and device for realizing different IP data packet repeating using strategic flow
CN100550882C (en) * 2004-03-02 2009-10-14 华为技术有限公司 A kind of method and subnet ride through system that passes through subnet
US7554996B2 (en) * 2005-09-14 2009-06-30 Cisco Technology, Inc. Controlled distribution of inter-area routing information
CN101325551B (en) * 2008-07-28 2010-09-22 杭州华三通信技术有限公司 Method and device for processing message
US7957374B2 (en) * 2008-10-22 2011-06-07 Fortinet, Inc. Mechanism for enabling layer two host addresses to be shielded from the switches in a network
JP5701288B2 (en) * 2009-04-01 2015-04-15 ニシラ, インコーポレイテッド How to manage networks and networking resources
US9210065B2 (en) * 2009-06-22 2015-12-08 Alcatel Lucent Providing cloud-based services using dynamic network virtualization
EP2482496B1 (en) * 2009-09-24 2018-11-28 Nec Corporation Identification system for inter-virtual-server communication and identification method for inter-virtual-server communication
TWI389525B (en) * 2010-02-25 2013-03-11 Gemtek Technology Co Ltd System of multiple subnet accessible data transfer and method thereof
JP5617137B2 (en) * 2010-05-28 2014-11-05 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Virtual layer 2 and mechanisms for making it scalable
CN102480485B (en) * 2010-11-30 2014-09-24 杭州华三通信技术有限公司 System, method and switching device for realizing cross-device isolation of ports in same VLAN (virtual local area network)
CN102740290B (en) * 2011-03-31 2015-03-11 香港理工大学 Method for pre-authentication and pre-configuration, and system thereof
WO2013026049A1 (en) * 2011-08-17 2013-02-21 Nicira, Inc. Distributed logical l3 routing
US8856518B2 (en) * 2011-09-07 2014-10-07 Microsoft Corporation Secure and efficient offloading of network policies to network interface cards
US9898317B2 (en) * 2012-06-06 2018-02-20 Juniper Networks, Inc. Physical path determination for virtual network packet flows
CN102752224B (en) * 2012-07-26 2015-02-11 广东省电力调度中心 Switch message forwarding method and device
US9331940B2 (en) * 2012-08-28 2016-05-03 Alcatel Lucent System and method providing distributed virtual routing and switching (DVRS)
US20140233569A1 (en) * 2013-02-15 2014-08-21 Futurewei Technologies, Inc. Distributed Gateway in Virtual Overlay Networks
US9432287B2 (en) * 2013-03-12 2016-08-30 International Business Machines Corporation Virtual gateways and implicit routing in distributed overlay virtual environments
US9225636B2 (en) * 2013-04-04 2015-12-29 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for exchanging IP packets among network layer 2 peers
US9282033B2 (en) * 2013-08-06 2016-03-08 Cisco Technology, Inc. Intelligent handling of virtual machine mobility in large data center environments
US9577845B2 (en) * 2013-09-04 2017-02-21 Nicira, Inc. Multiple active L3 gateways for logical networks
US10063458B2 (en) * 2013-10-13 2018-08-28 Nicira, Inc. Asymmetric connection with external networks

Also Published As

Publication number Publication date
EP2899927A4 (en) 2015-07-29
CN105531966A (en) 2016-04-27
US9860170B2 (en) 2018-01-02
EP2899927B1 (en) 2017-04-19
US20160285748A1 (en) 2016-09-29
CN105531966B (en) 2017-06-09
WO2015081551A1 (en) 2015-06-11
US20170155581A1 (en) 2017-06-01
CN107181691A (en) 2017-09-19
EP2899927A1 (en) 2015-07-29
US9614754B2 (en) 2017-04-04

Similar Documents

Publication Publication Date Title
US10237379B2 (en) High-efficiency service chaining with agentless service nodes
EP3235176B1 (en) Method and system for load balancing in a software-defined networking (sdn) system upon server reconfiguration
US20180139132A1 (en) Network fabric overlay
US9634867B2 (en) Computing service chain-aware paths
US10645028B2 (en) Methods and apparatus for automatically provisioning resources within a distributed control plane of a switch
EP3000206B1 (en) Chaining service zones by way of route re-origination
US9992103B2 (en) Method for providing sticky load balancing
US9660905B2 (en) Service chain policy for distributed gateways in virtual overlay networks
US10454821B2 (en) Creating and maintaining segment routed traffic engineering policies via border gateway protocol
US10097372B2 (en) Method for resource optimized network virtualization overlay transport in virtualized data center environments
US9276843B2 (en) Virtual link aggregation extension (vLAG+) enabled in a trill-based fabric network
US9185031B2 (en) Routing control system for L3VPN service network
US9025468B1 (en) Custom routing decisions
US10630578B2 (en) Systems and methods for software defined networking service function chaining
US8848536B2 (en) Stateless load balancer in a multi-node system for transparent processing with packet preservation
US9374270B2 (en) Multicast service in virtual networks
US20180227195A1 (en) System and method for implementing and managing virtual networks
US9497118B2 (en) Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
KR101572771B1 (en) System and methods for controlling network traffic through virtual switches
US10079897B2 (en) Control of a chain of services
US9380111B2 (en) Feature peer network with scalable state information
US9590903B2 (en) Systems and methods for optimizing layer three routing in an information handling system
US8594090B2 (en) Multicasting using a multitiered distributed virtual bridge hierarchy
US9769088B2 (en) Method and system for VTEP redundancy in a multichassis link aggregation domain
US9648542B2 (en) Session-based packet routing for facilitating analytics