[go: up one dir, main page]

CN108322391B - Data transmission method based on flow table - Google Patents

Data transmission method based on flow table Download PDF

Info

Publication number
CN108322391B
CN108322391B CN201711481899.3A CN201711481899A CN108322391B CN 108322391 B CN108322391 B CN 108322391B CN 201711481899 A CN201711481899 A CN 201711481899A CN 108322391 B CN108322391 B CN 108322391B
Authority
CN
China
Prior art keywords
node
virtual switch
virtual
physical machine
flow table
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
CN201711481899.3A
Other languages
Chinese (zh)
Other versions
CN108322391A (en
Inventor
袁航
周雍恺
吴金坛
祖立军
何东杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Unionpay Co Ltd
Original Assignee
China Unionpay 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 China Unionpay Co Ltd filed Critical China Unionpay Co Ltd
Priority to CN201711481899.3A priority Critical patent/CN108322391B/en
Publication of CN108322391A publication Critical patent/CN108322391A/en
Priority to PCT/CN2018/120306 priority patent/WO2019128699A1/en
Priority to TW107145030A priority patent/TWI759571B/en
Application granted granted Critical
Publication of CN108322391B publication Critical patent/CN108322391B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/825Involving tunnels, e.g. MPLS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种基于流表的数据传送方法,包括:将流表下发到第一虚拟交换机,以使得第一虚拟交换机对应的外部接口配置成接收来自外部装置的ARP请求;第一虚拟交换机基于流表生成对ARP请求的相应ARP响应;外部接口接收来自外部装置的数据包;确定数据包的目的虚拟机是否处于第一节点对应的物理机;若目的虚拟机处于不同于第一节点的第二节点对应的物理机,则第一虚拟交换机将数据包转发至第二虚拟交换机。其能够可靠而高效地实现数据包在各终端与外部装置之间的双向传递,以及使得分布式路由通信方案能够最大程度地发挥功效。

Figure 201711481899

The present invention relates to a data transmission method based on a flow table, comprising: delivering a flow table to a first virtual switch, so that an external interface corresponding to the first virtual switch is configured to receive an ARP request from an external device; the first virtual switch is configured to receive an ARP request from an external device; Generate the corresponding ARP response to the ARP request based on the flow table; the external interface receives the data packet from the external device; determine whether the destination virtual machine of the data packet is in the physical machine corresponding to the first node; if the destination virtual machine is in a different location from the first node For the physical machine corresponding to the second node, the first virtual switch forwards the data packet to the second virtual switch. It can reliably and efficiently realize the bidirectional transmission of data packets between each terminal and external devices, and make the distributed routing communication scheme work to the greatest extent.

Figure 201711481899

Description

基于流表的数据传送方法Data transfer method based on flow table

技术领域technical field

本发明涉及数据传输技术领域,更具体地说,涉及一种基于流表的数据传送方法。The present invention relates to the technical field of data transmission, and more particularly, to a data transmission method based on a flow table.

背景技术Background technique

路由器(Router)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。如图1所示。A router is used to connect multiple logically separated networks. The so-called logical network represents a single network or a subnet. When data is transferred from one subnet to another, it is done through the router's routing capabilities. As shown in Figure 1.

不同子网下的计算机通信都必须通过路由器完成。在软件SDN的网络实现中,路由功能是通过软件的机制来实现的,具体可以分为集中式路由和分布式路由两种形式。Computer communication under different subnets must be completed through routers. In the network implementation of software SDN, the routing function is realized through the mechanism of software, which can be divided into two forms: centralized routing and distributed routing.

(1)集中式路由(1) Centralized routing

在集中式路由机制中东西向流量(不同network之间的流量)以及南北向流量(内部network与外部网络之间的流量)都要通过路由器。路由器的核心位置使其成为了网络中的一个瓶颈。为了解决这一问题,提出了分布式路由机制。In a centralized routing mechanism, east-west traffic (traffic between different networks) and north-south traffic (traffic between internal and external networks) pass through routers. The central location of the router makes it a bottleneck in the network. To solve this problem, a distributed routing mechanism is proposed.

(2)分布式路由(2) Distributed routing

分布式路由机制则在每个节点上都使能一个路由器。对于东西向的流量,流量会直接在计算节点之间传递。对于南北向的流量,如果有浮动IP,流量就直接走计算节点。如果没有浮动IP,则会走网络节点。分布式路由在处理没有浮动IP的流量时,还是会走集中的网络节点,在本质上还是集中式路由模式。The distributed routing mechanism enables a router on each node. For east-west traffic, traffic is passed directly between compute nodes. For north-south traffic, if there is a floating IP, the traffic goes directly to the computing node. If there is no floating IP, it will go to the network node. When dealing with traffic without floating IP, distributed routing will still go to centralized network nodes, which is essentially a centralized routing mode.

在软件SDN方案中,分布式路由的功能实现都是基于流表来实现的。下面就以openflow流表和执行该流表的虚拟交换机为例,概述一下传统基于openflow流表的分布式路由的问题。软件SDN南北向流量通信的逻辑图如图2所示。In the software SDN solution, the functions of distributed routing are implemented based on flow tables. The following takes the openflow flow table and the virtual switch that executes the flow table as an example to outline the problems of traditional distributed routing based on openflow flow tables. The logical diagram of software SDN north-south traffic communication is shown in Figure 2.

一个网络内的虚拟机(例如,相当于网络终端)与外部网络通信的数据流都需要通过路由器。而在软件SDN方案中,将该逻辑图映射为物理结构图,如图3所示。可以看出,同网段的虚拟机可能会分布于不同的路由器下。虚拟机在与外部网络通信时,数据包走到虚拟交换机上时,虚拟交换机会将数据包的源IP地址转换为唯一与该虚拟机对应的浮动IP。如v1在与外部网络通信时,从v1中出来的数据包的源IP地址还是v1的IP地址,即10.0.0.1,那么数据包到了虚拟交换机上之后,虚拟交换机根据该数据包的目的IP地址判断出这是v1与外部网络通信的数据包,这时虚拟交换机中就会有相应的流表对该数据包的源IP地址字段进行转换,将10.0.0.1转换为172.16.1.1,也就是v1的浮动IP。那么对于外部网络来说,v1的IP地址也就变为了172.16.1.1。The data flow of a virtual machine in a network (for example, equivalent to a network terminal) communicating with an external network needs to pass through a router. In the software SDN solution, the logical diagram is mapped to a physical structure diagram, as shown in Figure 3. It can be seen that virtual machines on the same network segment may be distributed under different routers. When the virtual machine communicates with the external network, when the data packet goes to the virtual switch, the virtual switch will convert the source IP address of the data packet to a unique floating IP corresponding to the virtual machine. For example, when v1 communicates with the external network, the source IP address of the data packet from v1 is still the IP address of v1, that is, 10.0.0.1, then after the data packet arrives on the virtual switch, the virtual switch will be based on the destination IP address of the data packet. It is judged that this is the data packet that v1 communicates with the external network. At this time, there will be a corresponding flow table in the virtual switch to convert the source IP address field of the data packet, and convert 10.0.0.1 to 172.16.1.1, which is v1. Floating IP. Then for the external network, the IP address of v1 becomes 172.16.1.1.

因为浮动IP与虚拟机之间是一一对应的,所以外部网络在进行回包的时候,就可以通过浮动IP找到v1所在的位置,从而将返回数据包送回至v1。但是如果v1没有浮动IP,它主动向发布网络发送的数据是能够送至对方,但是对方的返回包无法送至v1,这是因为v1的数据包是以其内网地址10.0.0.1作为源IP地址的,而其内网地址不为外部网络所认知。所以只能通过外部网络配置静态路由的方式将回程流量引导到外部接口,然后通过该接口送至平台内部。Because there is a one-to-one correspondence between the floating IP and the virtual machine, when the external network returns packets, it can find the location of v1 through the floating IP, so as to send the return packet back to v1. However, if v1 does not have a floating IP, the data it actively sends to the publishing network can be sent to the other party, but the return packet of the other party cannot be sent to v1, because the data packet of v1 uses its intranet address 10.0.0.1 as the source IP address, and its intranet address is not recognized by the external network. Therefore, the backhaul traffic can only be directed to the external interface by configuring static routes on the external network, and then sent to the inside of the platform through this interface.

然而,在现有分布式路由架构设计中,该外部接口甚至可能没有接收外部网络数据的功能。如图3所示,路由器与外网的接口在映射到物理架构中时其实已经分布于每个节点上,也就是说,每个节点都会有一个IP地址为172.16.1.100的外部接口。从而,将外部的数据包经由节点(节点1,2)再经由子网(Net1,Net2)准确地送回相应的、不具有浮动IP的本地端虚拟机(V1-V6)仍存在困难。However, in the existing distributed routing architecture design, the external interface may not even have the function of receiving external network data. As shown in Figure 3, the interfaces between the router and the external network are actually distributed on each node when mapped to the physical architecture, that is, each node will have an external interface with an IP address of 172.16.1.100. Therefore, it is still difficult to accurately send the external data packets back to the corresponding local virtual machines (V1-V6) without floating IPs via the nodes (Node 1, 2) and then via the subnets (Net1, Net2).

发明内容SUMMARY OF THE INVENTION

本发明的目的在于提供一种基于流表的数据传送方法,其使得即使在没有应用浮动IP的情况下也能够实现数据包的双向传递。An object of the present invention is to provide a data transfer method based on a flow table, which enables bidirectional transfer of data packets even without applying a floating IP.

为实现上述目的,本发明提供一种技术方案如下:To achieve the above object, the present invention provides a technical scheme as follows:

一种基于流表的数据传送方法,用于将数据包提供至多个网络节点中的一个节点,其中,各节点分别部署一物理机,物理机配置有一虚拟交换机和至少一虚拟机,虚拟机由虚拟交换机来路由,该方法包括:a)、将流表下发到第一虚拟交换机,以使得第一虚拟交换机对应的外部接口配置成接收来自外部装置的ARP请求;其中,第一虚拟交换机处于第一节点对应的物理机;b)、第一虚拟交换机基于流表生成对ARP请求的相应ARP响应;c)、外部接口接收来自外部装置的数据包;其中,数据包由外部装置在接收到ARP响应后提供;d)、确定数据包的目的虚拟机是否处于第一节点对应的物理机;以及e)、若目的虚拟机处于不同于第一节点的第二节点对应的物理机,则第一虚拟交换机将数据包转发至第二虚拟交换机;其中,第二虚拟交换机处于第二节点对应的物理机。A data transmission method based on a flow table, for providing data packets to one node in a plurality of network nodes, wherein each node is respectively deployed with a physical machine, the physical machine is configured with a virtual switch and at least one virtual machine, and the virtual machine is configured by The method includes: a) delivering the flow table to the first virtual switch, so that the external interface corresponding to the first virtual switch is configured to receive the ARP request from the external device; wherein, the first virtual switch is in The physical machine corresponding to the first node; b), the first virtual switch generates a corresponding ARP response to the ARP request based on the flow table; c), the external interface receives the data packet from the external device; wherein, the data packet is received by the external device. Provide after ARP response; d), determine whether the destination virtual machine of the data packet is in the physical machine corresponding to the first node; and e), if the destination virtual machine is in the physical machine corresponding to the second node different from the first node, then the first A virtual switch forwards the data packet to a second virtual switch; wherein, the second virtual switch is in a physical machine corresponding to the second node.

优选地,流表由SDN控制器生成。Preferably, the flow table is generated by the SDN controller.

优选地,ARP响应至少包括第一虚拟交换机对应的物理机的MAC地址。Preferably, the ARP response at least includes the MAC address of the physical machine corresponding to the first virtual switch.

优选地,步骤e)中,利用SDN控制器获取第二虚拟交换机所在的物理机的IP地址,使用隧道技术将数据包转发至第二虚拟交换机。Preferably, in step e), the IP address of the physical machine where the second virtual switch is located is obtained by using the SDN controller, and the data packet is forwarded to the second virtual switch by using the tunneling technology.

优选地,目的虚拟机不设置浮动IP。Preferably, the destination virtual machine is not set with a floating IP.

本发明进一步提供一种用于接收数据包的物理机,部署于一网络节点处,其中,物理机配置有一虚拟交换机和至少一虚拟机,虚拟机由虚拟交换机路由,虚拟交换机基于流表配置成:以外部接口接收来自外部装置的ARP请求,以及,生成对ARP请求的相应ARP响应;以外部接口接收来自外部装置的数据包;其中,数据包由外部装置在接收到ARP响应后提供;确定数据包的目的虚拟机是否处于第一节点对应的物理机;其中,第一节点为当前网络节点;以及若确定目的虚拟机处于第二节点对应的物理机,则将数据包转发至处于第二节点对应的物理机中的虚拟交换机;其中,第二节点为不同于第一节点的网络节点。The present invention further provides a physical machine for receiving data packets, which is deployed at a network node, wherein the physical machine is configured with a virtual switch and at least one virtual machine, the virtual machine is routed by the virtual switch, and the virtual switch is configured to : receive an ARP request from an external device with an external interface, and generate a corresponding ARP response to the ARP request; receive a data packet from an external device with an external interface; wherein the data packet is provided by the external device after receiving the ARP response; determine Whether the destination virtual machine of the data packet is in the physical machine corresponding to the first node; wherein, the first node is the current network node; and if it is determined that the destination virtual machine is in the physical machine corresponding to the second node, the data packet is forwarded to the second node. The virtual switch in the physical machine corresponding to the node; wherein the second node is a network node different from the first node.

优选地,物理机与SDN控制器耦合,并从SDN控制器获取流表。Preferably, the physical machine is coupled to the SDN controller and obtains the flow table from the SDN controller.

本发明各实施例提供的基于流表的数据传送方法,在各网络节点或其中的虚拟机不具有浮动IP的情况下,仍能够可靠而高效地实现数据包在各虚拟机与外部装置之间的双向传递。该方法使得分布式路由通信方案能够最大程度地发挥其功效,并能够克服现有技术中集中式路由及分布式路由可能存在的流量瓶颈问题。本发明另外提供的物理机能够在虚拟机不具有浮动IP的情况下实现数据包的双向传递,进而促进分布式路由通信方案的功效最大化。The data transmission method based on the flow table provided by the embodiments of the present invention can still reliably and efficiently implement data packets between each virtual machine and an external device when each network node or the virtual machine therein does not have a floating IP two-way transmission. The method enables the distributed routing communication scheme to maximize its effectiveness, and can overcome the traffic bottleneck problem that may exist in the centralized routing and distributed routing in the prior art. The physical machine additionally provided by the present invention can realize the bidirectional transmission of data packets under the condition that the virtual machine does not have a floating IP, thereby promoting the maximization of the efficacy of the distributed routing communication scheme.

附图说明Description of drawings

图1示出路由器与不同子网之间的网络拓扑结构示意图。FIG. 1 shows a schematic diagram of the network topology between routers and different subnets.

图2示出软件SDN南北向流量通信的逻辑图。Figure 2 shows a logical diagram of software SDN north-south traffic communication.

图3示出路由器与外网的接口映射到物理架构的示意图。FIG. 3 shows a schematic diagram of mapping the interface between the router and the external network to the physical architecture.

图4示出根据本发明一实施例的传输传送方法的流程示意图。FIG. 4 shows a schematic flowchart of a transmission method according to an embodiment of the present invention.

图5示出根据本发明一实施例的数据传送系统的网络拓扑结构。FIG. 5 shows a network topology of a data transmission system according to an embodiment of the present invention.

具体实施方式Detailed ways

在以下描述中提出具体细节,以便提供对本发明的透彻理解。然而,本领域的技术人员将清楚地知道,即使没有这些具体细节也可实施本发明的实施例。在本发明中,可进行具体的数字引用,例如“第一元件”、“第二装置”等。但是,具体数字引用不应当被理解为必须服从于其字面顺序,而是应被理解为“第一元件”与“第二元件”不同。Specific details are set forth in the following description in order to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that embodiments of the present invention may be practiced without these specific details. In the present invention, specific numerical references such as "first element", "second means" and the like may be made. However, specific numerical references should not be construed as necessarily obeying their literal order, but rather should be construed as being distinct from "a first element" and "a second element."

本发明所提出的具体细节只是示范性的,具体细节可以变化,但仍然落入本发明的精神和范围之内。术语“耦合”定义为表示直接连接到组件或者经由另一个组件而间接连接到组件。The specific details set forth in the present invention are merely exemplary and may vary while remaining within the spirit and scope of the present invention. The term "coupled" is defined to mean directly connected to a component or indirectly connected to a component via another component.

以下通过参照附图来描述适于实现本发明的方法、系统和装置的优选实施例。虽然各实施例是针对元件的单个组合来描述,但是应理解,本发明包括所公开元件的所有可能组合。因此,如果一个实施例包括元件A、B和C,而第二实施例包括元件B和D,则本发明也应被认为包括A、B、C或D的其他剩余组合,即使没有明确公开。Preferred embodiments of methods, systems and apparatus suitable for implementing the present invention are described below with reference to the accompanying drawings. Although the various embodiments are described with respect to a single combination of elements, it is to be understood that this invention includes all possible combinations of the disclosed elements. Thus, if one embodiment includes elements A, B, and C, and a second embodiment includes elements B and D, the invention should also be considered to include other remaining combinations of A, B, C, or D, even if not explicitly disclosed.

如图4所示,本发明第一实施例提供一种数据传送方法,其基于流表来实现,具体包括如下各个步骤。As shown in FIG. 4 , the first embodiment of the present invention provides a data transmission method, which is implemented based on a flow table, and specifically includes the following steps.

步骤S10、将流表下发到第一虚拟交换机,以使得第一虚拟交换机对应的外部接口配置成接收来自外部装置的ARP请求。Step S10: Deliver the flow table to the first virtual switch, so that the external interface corresponding to the first virtual switch is configured to receive an ARP request from an external device.

其中,第一虚拟交换机处于第一节点对应的物理机,而第一节点可以为多个网络节点中的任一个节点。在本申请通篇中,网络为按照SDN技术来定义的一个具体网络,其包括多个网络节点,各节点可以分别部署一物理机,物理机中配置有一个虚拟交换机和至少一个虚拟机,各虚拟机由处于同一物理机中的虚拟交换机来路由。换言之,各虚拟机与外部网络之间的通信是经由虚拟交换机来实现的。应理解,在网络之下可以存在一层或多层的子网,子网之下再接入网络节点。Wherein, the first virtual switch is in a physical machine corresponding to the first node, and the first node may be any node among multiple network nodes. Throughout this application, a network is a specific network defined according to the SDN technology, which includes a plurality of network nodes, each node can deploy a physical machine, and the physical machine is configured with a virtual switch and at least one virtual machine. Virtual machines are routed by virtual switches that reside within the same physical machine. In other words, the communication between each virtual machine and the external network is realized via the virtual switch. It should be understood that there may be one or more layers of subnetworks under the network, and network nodes are then accessed under the subnetworks.

根据本发明的实施例,每个网络节点和/或其对应的物理机中的各虚拟机可以不具有浮动IP,将仍可以实现虚拟机与网络外部装置之间的双向通信,以下将具体说明。According to the embodiment of the present invention, each virtual machine in each network node and/or its corresponding physical machine may not have a floating IP, and two-way communication between the virtual machine and an external device on the network can still be implemented, which will be described in detail below. .

通过将openflow流表下发至第一虚拟交换机,可以将openflow流表配置并应用于第一节点,从而使得第一虚拟交换机对应的外部接口配置成接收来自外部装置的ARP(地址解析协议)请求,进而,还能够生成对该ARP请求的响应(在步骤S11中说明)。By delivering the openflow flow table to the first virtual switch, the openflow flow table can be configured and applied to the first node, so that the external interface corresponding to the first virtual switch is configured to receive ARP (Address Resolution Protocol) requests from external devices , and further, it is possible to generate a response to the ARP request (described in step S11 ).

作为示例,流表由接入当前网络的SDN控制器生成,并由SDN控制器下发至当前网络中的全部或部分网络节点。通过下发至相应网络节点,流表将能够实现相应网络节点的功能性,尤其是在该网络节点或其下属的虚拟机不具有浮动IP的情况下,仍能够高效地实现数据包在虚拟机与网络外部装置之间的双向传输。As an example, the flow table is generated by the SDN controller accessing the current network, and delivered to all or part of the network nodes in the current network by the SDN controller. By delivering to the corresponding network node, the flow table will be able to implement the functionality of the corresponding network node, especially when the network node or its subordinate virtual machine does not have a floating IP, the flow table can still be efficiently implemented in the virtual machine. Bidirectional transmission to and from devices outside the network.

在分布式路由模式下,外部接口分布在网络中各个网络节点上,即,每个虚拟交换机都设有外部接口,所以在实现中可采用全量下发(流表)的方式,即每个网络节点都获取该流表,这样作为节点集群的当前网络就有了具备高分布性和高可用性的路由架构。备选地,可采用一定的优化策略,比如,配置用于ARP响应的流表只下发到有当前租户的网络终端所从属的网络节点上,或者使用其他策略挑选出若干个网络节点来下发流表,这样能够更快速地接收到外来流量并进行网络终端定位,而且,流表内容更少,更便于维护。In the distributed routing mode, the external interfaces are distributed on each network node in the network, that is, each virtual switch has an external interface, so the full distribution (flow table) method can be adopted in the implementation, that is, each network All nodes obtain the flow table, so that the current network as a cluster of nodes has a routing architecture with high distribution and high availability. Alternatively, a certain optimization strategy can be adopted, for example, the flow table configured for ARP response is only sent to the network node to which the network terminal with the current tenant belongs, or other strategies are used to select several network nodes to download. The flow table is sent, so that the incoming traffic can be received more quickly and the network terminal can be located, and the content of the flow table is less, which is easier to maintain.

流表在其表项中整合了当前网络各层次(包括子网)的网络配置信息,使得在进行数据转发(与外网通信)时有具体规则可以依照,甚至能够定义更复杂、更丰富的规则。具体来说,流表的匹配域能够用于与虚拟交换机接收到的数据包进行匹配,其涵盖ISO网络模型中第二至第四层的网络配置信息。流表的动作域用于指示虚拟交换机在收到匹配的数据包时应该如何处理,动作域中可以定义多组动作。流表还可以包括计算器,用于统计关于数据流量的信息。The flow table integrates the network configuration information of all levels (including subnets) of the current network in its entry, so that there are specific rules to follow when data forwarding (communication with the external network), and even more complex and richer can be defined. rule. Specifically, the matching field of the flow table can be used to match the data packets received by the virtual switch, which covers the network configuration information of the second to fourth layers in the ISO network model. The action field of the flow table is used to instruct the virtual switch what to do when it receives a matching data packet. Multiple groups of actions can be defined in the action field. The flow table may also include a calculator for statistical information about data flow.

根据本发明的优选实施方式,在流表首次下发之后,还可以根据实际情况或应用场合对流表进行改动。例如,如修改流表的Table值、优先级等,或者改变openflow流表中执行动作的步骤,或者简化流表中的步骤(如不经过三层转发步骤),直接进行port转发操作等。According to the preferred embodiment of the present invention, after the flow table is issued for the first time, the flow table can also be modified according to the actual situation or application. For example, such as modifying the table value and priority of the flow table, or changing the steps to perform actions in the openflow flow table, or simplifying the steps in the flow table (for example, without going through the three-layer forwarding step), directly performing port forwarding operations, etc.

步骤S11、第一虚拟交换机基于流表生成对ARP请求的相应ARP响应。Step S11, the first virtual switch generates a corresponding ARP response to the ARP request based on the flow table.

应理解,对于各网络节点所对应的物理机而言,均可以通过虚拟交换机获取流表并利用流表配置自身,进而由虚拟交换机生成对该ARP请求的相应ARP响应,而各ARP响应是内容不同的。具体来说,通过接收ARP响应,网络外部装置应至少能够区分各物理机并确定其在网络中的位置,以便于随后发送数据包。It should be understood that for the physical machine corresponding to each network node, the flow table can be obtained through the virtual switch and used to configure itself, and then the virtual switch can generate a corresponding ARP response to the ARP request, and each ARP response is the content different. Specifically, by receiving ARP responses, devices outside the network should at least be able to distinguish between physical machines and determine their location in the network in order to send packets later.

为了实现网络路由的分布式架构,流表也一并下发至当前网络中的其他网络节点(具体地,下发至相应的虚拟交换机),这些其他网络节点所对应的物理机分别通过虚拟交换机来回送一个ARP响应包,其中包含该物理机的MAC地址,以便获取到MAC地址的网络外部装置能够准确识别出该物理机。In order to realize the distributed architecture of network routing, the flow table is also delivered to other network nodes in the current network (specifically, to the corresponding virtual switches), and the physical machines corresponding to these other network nodes pass through the virtual switches. An ARP response packet is sent back and forth, which contains the MAC address of the physical machine, so that the device outside the network that obtains the MAC address can accurately identify the physical machine.

作为示例,这时流表可以按如下格式设计(仅示出流表内容的一部分):As an example, the flow table can be designed in the following format (only a part of the content of the flow table is shown):

table=20,priority=1024,arp,arp_tpa=172.16.1.100,arp_op=1actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:f8:4a:bf:5a:2b:ea->eth_src,load:0x2->NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],load:0xf84abf5a2bea->NXM_NX_ARP_SHA[],load:0xac100164->NXM_OF_ARP_SPA[],IN_PORTtable=20,priority=1024,arp,arp_tpa=172.16.1.100,arp_op=1actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],set_field:f8:4a:bf:5a:2b:ea->eth_src,load: 0x2->NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],load:0xf84abf5a2bea->NXM_NX_ARP_SHA[],load:0xac100164->NXM_OF_ARP_SPA[],IN_PORT

以上流表的主要作用就是为外部接口构造了一个针对ARP请求的响应包,外部接口将该响应包发回给ARP请求方(网络外部装置)。当请求方接收到该ARP回包后,可以进一步将需要传输的数据包发送到该外部接口。可以理解,以上流表作为一种示例仅示出实际流表的一部分,为了实现虚拟交换机和/或虚拟机的完整功能性,实际流表将更加复杂。在实际应用场合,还可以对流表格式作出各种改进,例如对动作域中包含的动作进行省略和/或组合,限定各动作的执行次数等。The main function of the above flow table is to construct a response packet for the ARP request for the external interface, and the external interface sends the response packet back to the ARP requester (device outside the network). After receiving the ARP reply packet, the requester can further send the data packet to be transmitted to the external interface. It can be understood that the above flow table as an example only shows a part of the actual flow table. In order to realize the complete functionality of the virtual switch and/or the virtual machine, the actual flow table will be more complicated. In practical applications, various improvements can also be made to the flow table format, such as omitting and/or combining the actions included in the action field, limiting the number of executions of each action, and the like.

在该步骤中,ARP请求的作用是为了获取数据发送目标的MAC地址,每个ARP响应至少包括准备接收待传输数据包的相应网络节点的对应物理机的MAC地址。应理解,ARP请求和ARP响应仅仅是发送数据包之前的准备,两者不涉及待传输数据包。In this step, the function of the ARP request is to obtain the MAC address of the data sending target, and each ARP response at least includes the MAC address of the corresponding physical machine of the corresponding network node that is ready to receive the data packet to be transmitted. It should be understood that the ARP request and the ARP response are only preparations before sending the data packet, and they do not involve the data packet to be transmitted.

步骤S12、外部接口接收来自外部装置的数据包。Step S12, the external interface receives the data packet from the external device.

在该步骤中,具体地,在外部装置获得ARP响应之后,其能够知晓准备接收数据包的各网络节点对应的物理机的MAC地址。就第一节点及其相应的第一虚拟交换机而言,在外部装置接收到来自第一虚拟交换机的ARP响应后,数据包将被发送至第一虚拟交换机的外部接口。该外部接口接收到该数据包之后,视目的终端的位置而定,可以直接交付至第一节点下属的任何一个虚拟机,或再进行转发。In this step, specifically, after the external device obtains the ARP response, it can know the MAC address of the physical machine corresponding to each network node that is ready to receive the data packet. As far as the first node and its corresponding first virtual switch are concerned, after the external device receives the ARP response from the first virtual switch, the data packet will be sent to the external interface of the first virtual switch. After the external interface receives the data packet, depending on the location of the destination terminal, it can be directly delivered to any virtual machine subordinate to the first node, or forwarded.

步骤S13、确定数据包的目的虚拟机是否处于第一节点对应的物理机。Step S13: Determine whether the destination virtual machine of the data packet is a physical machine corresponding to the first node.

具体来说,步骤S13是由第一节点相应的第一虚拟交换机来执行,虚拟交换机从数据包可以直接获知其目的终端(目的虚拟机),进而根据SDN控制器下发的流表来确定网络装置所发送的数据包的目的终端是否处于第一节点对应的物理机。Specifically, step S13 is performed by the first virtual switch corresponding to the first node. The virtual switch can directly learn the destination terminal (destination virtual machine) from the data packet, and then determines the network according to the flow table issued by the SDN controller. Whether the destination terminal of the data packet sent by the device is in the physical machine corresponding to the first node.

若数据包的目的终端处于第一节点对应的物理机,则可由第一虚拟交换机将该数据包直接交付于目的终端,在这种情况下,能够以最高效的方式实现关于该数据包的完整通信,但通常这种情况具有不确定性和随机性。If the destination terminal of the data packet is located on the physical machine corresponding to the first node, the first virtual switch can directly deliver the data packet to the destination terminal. In this case, the complete information about the data packet can be realized in the most efficient way. communication, but often this situation is uncertain and random.

作为示例,这时流表可采用如下格式(示出流表的一部分):As an example, the flow table could then take the following format (showing a portion of the flow table):

table=70,priority=1024,ip,tun_id=0x5a,nw_dst=10.0.0.3table=70, priority=1024, ip, tun_id=0x5a, nw_dst=10.0.0.3

actions=set_field:fa:16:3e:99:df:47->eth_dst,goto_table:80(三层转发)actions=set_field:fa:16:3e:99:df:47->eth_dst,goto_table:80 (layer three forwarding)

table=110,tun_id=0x5a,dl_dst=fa:16:3e:99:df:47actions=output:23(二层转发到虚拟机,23端口是与虚拟机连接的虚拟交换机的端口)table=110,tun_id=0x5a,dl_dst=fa:16:3e:99:df:47actions=output:23 (layer 2 forwarding to the virtual machine, port 23 is the port of the virtual switch connected to the virtual machine)

步骤S14、若目的终端(目的虚拟机)处于不同于第一节点的第二节点对应的物理机,则将数据包转发至第二虚拟交换机。Step S14: If the destination terminal (destination virtual machine) is in a physical machine corresponding to a second node different from the first node, forward the data packet to the second virtual switch.

其中,第二虚拟交换机处于第二节点对应的物理机,与第二节点相对应。The second virtual switch is located in a physical machine corresponding to the second node, and corresponds to the second node.

作为更一般的情况,在目的终端并非位于第一节点对应的物理机,而是位于第二节点对应的物理机时,可以基于流表或者利用SDN控制器,来获取第二节点对应物理机的IP地址,再使用隧道技术,例如点对点隧道协议(Point to Point Tunneling Protocol,简称为PPTP),来将数据包从第一节点(具体地,第一虚拟交换机)转发至第二节点(具体地,第二虚拟交换机)。As a more general case, when the destination terminal is not located in the physical machine corresponding to the first node, but is located in the physical machine corresponding to the second node, the data of the physical machine corresponding to the second node can be obtained based on the flow table or using the SDN controller. IP address, and then use tunneling technology, such as Point to Point Tunneling Protocol (PPTP for short), to forward the data packet from the first node (specifically, the first virtual switch) to the second node (specifically, second virtual switch).

作为示例,这种情况下流表格式如下(示出流表的一部分):As an example, the flow table format in this case is as follows (showing part of the flow table):

table=70,priority=1024,ip,tun_id=0x5a,nw_dst=10.0.0.3table=70, priority=1024, ip, tun_id=0x5a, nw_dst=10.0.0.3

actions=set_field:fa:16:3e:99:df:47->eth_dst,goto_table:80(三层转发)actions=set_field:fa:16:3e:99:df:47->eth_dst,goto_table:80 (layer three forwarding)

table=110,tun_id=0x5a,dl_dst=fa:16:3e:99:df:47actions=output:3(通过隧道技术转发到对应物理机,后面的output:3代表从端口3发出,端口3即为隧道的端口)table=110,tun_id=0x5a,dl_dst=fa:16:3e:99:df:47actions=output:3 (forwarded to the corresponding physical machine through tunneling technology, the latter output: 3 means sent from port 3, and port 3 is port of the tunnel)

在步骤S14之后,还可以执行以下步骤:第二虚拟交换机将数据包直接交付给目的虚拟机(因为目的虚拟机处于第二节点对应的物理机,并由第二虚拟交换机来路由),从而,目的虚拟机最终获得来自外部装置的数据包。After step S14, the following steps may also be performed: the second virtual switch directly delivers the data packet to the destination virtual machine (because the destination virtual machine is in the physical machine corresponding to the second node and is routed by the second virtual switch), thus, The destination virtual machine finally gets the packet from the external device.

数据包到达第二节点以待下发至目的虚拟机时,示例流表可采用如下格式:When the data packet arrives at the second node to be delivered to the destination virtual machine, the example flow table can be in the following format:

table=110,tun_id=0x5a,dl_dst=fa:16:3e:99:df:47actions=output:23(二层转发到虚拟机)table=110,tun_id=0x5a,dl_dst=fa:16:3e:99:df:47actions=output:23 (layer 2 forwarding to virtual machine)

上述第一实施例提供的基于流表的数据传送方法,通过利用SDN技术来定义网络,以及利用流表来配置网络,在各网络节点或各虚拟机不具有浮动IP的情况下,仍能够可靠而高效地实现数据包在虚拟机与外部装置之间的双向传输。The data transmission method based on the flow table provided by the above-mentioned first embodiment, by using the SDN technology to define the network, and using the flow table to configure the network, in the case that each network node or each virtual machine does not have a floating IP, it can still be reliable. And efficiently realize the bidirectional transmission of data packets between the virtual machine and the external device.

此外,上述方法能够克服现有技术中集中式路由及分布式路由可能存在的流量瓶颈问题,使得分布式路由的通信方案能够在最大程度上发挥功效。In addition, the above method can overcome the traffic bottleneck problem that may exist in the centralized routing and distributed routing in the prior art, so that the communication scheme of the distributed routing can exert its effect to the greatest extent.

本发明第二实施例提供一种物理机,其部署于网络中的一个或多个网络节点处,物理机配置有一个虚拟交换机和多个虚拟机,各虚拟机由相应的虚拟交换机来路由。A second embodiment of the present invention provides a physical machine, which is deployed at one or more network nodes in a network, the physical machine is configured with a virtual switch and multiple virtual machines, and each virtual machine is routed by a corresponding virtual switch.

其中,虚拟交换机基于流表来配置,并执行以下各种操作:Among them, the virtual switch is configured based on the flow table and performs various operations as follows:

一、以外部接口接收来自外部装置的ARP请求,以及,进而生成对ARP请求的相应ARP响应。1. Receive an ARP request from an external device through an external interface, and then generate a corresponding ARP response to the ARP request.

二、以外部接口接收来自外部装置的数据包。其中,数据包由外部装置在接收到ARP响应后提供。2. Receive data packets from an external device through an external interface. Among them, the data packet is provided by the external device after receiving the ARP response.

三、确定数据包的目的虚拟机是否处于第一节点对应的物理机。其中,第一节点为当前网络节点。3. Determine whether the destination virtual machine of the data packet is a physical machine corresponding to the first node. The first node is the current network node.

四、若确定目的虚拟机处于第二节点对应的物理机,则将数据包转发至处于第二节点对应的物理机中的虚拟交换机。4. If it is determined that the destination virtual machine is in the physical machine corresponding to the second node, forward the data packet to the virtual switch in the physical machine corresponding to the second node.

其中,第二节点为不同于第一节点的另一网络节点。Wherein, the second node is another network node different from the first node.

具体来说,SDN控制器首先能够网络,还能够生成流表以用于配置网络中的各网络节点,包括但不限于对物理机、虚拟交换机、以及虚拟机的配置。SDN控制器还可进一步提供流表更改单元,使得设计人员能够对流表进行更改,并将修改完成的流表重新下发至当前网络对应的虚拟交换机。Specifically, the SDN controller can firstly enable the network, and can also generate a flow table for configuring each network node in the network, including but not limited to the configuration of physical machines, virtual switches, and virtual machines. The SDN controller can further provide a flow table modification unit, so that the designer can modify the flow table and re-deliver the modified flow table to the virtual switch corresponding to the current network.

按照流表,第一节点相应的虚拟交换机(第一虚拟交换机)的外部接口接收来自外部装置的ARP请求。According to the flow table, the external interface of the virtual switch corresponding to the first node (the first virtual switch) receives the ARP request from the external device.

按照流表,第一虚拟交换机生成对ARP请求的相应ARP响应,将ARP响应封装为响应包并发送回外部装置。ARP响应包括第一虚拟交换机所在的物理机的MAC地址。According to the flow table, the first virtual switch generates a corresponding ARP response to the ARP request, encapsulates the ARP response into a response packet and sends it back to the external device. The ARP response includes the MAC address of the physical machine where the first virtual switch is located.

按照流表,第一虚拟交换机通过其外部接口从外部装置接收数据包。According to the flow table, the first virtual switch receives packets from the external device through its external interface.

按照流表,第一虚拟交换机能够确定数据包的目的终端(目的虚拟机)是否处于第一节点对应的物理机。According to the flow table, the first virtual switch can determine whether the destination terminal (destination virtual machine) of the data packet is in the physical machine corresponding to the first node.

在目的终端处于第二节点(而不是第一节点)对应的物理机时,按照流表,第一虚拟交换机能够将数据包转发至第二虚拟交换机,这可以通过点对点隧道协议来实现,最终由第二虚拟交换机将数据包直接交付目的虚拟机。其中,第二虚拟交换机为处于第二节点对应的物理机中的虚拟交换机,其提供了对目的虚拟机的路由。When the destination terminal is in the physical machine corresponding to the second node (instead of the first node), according to the flow table, the first virtual switch can forward the data packet to the second virtual switch. The second virtual switch delivers the data packet directly to the destination virtual machine. The second virtual switch is a virtual switch located in a physical machine corresponding to the second node, which provides a route to the destination virtual machine.

基于流表来配置物理机中的虚拟交换机,使得物理机具有以下有益效果:无论其下属的虚拟机是否具有浮动IP,该物理机都能够实现数据包在虚拟机和外部装置之间的双向传递,进而有助于分布式路由在最大程度上的实现。The virtual switch in the physical machine is configured based on the flow table, so that the physical machine has the following beneficial effects: no matter whether the virtual machine under it has a floating IP or not, the physical machine can realize the bidirectional transmission of data packets between the virtual machine and the external device , which in turn contributes to the realization of distributed routing to the greatest extent.

如图5所示,本发明第三实施例提供一种基于流表的数据传送系统,用于在多个网络节点之间传送数据包,其中,每个网络节点部署有上述第二实施例所公开的物理机,这些物理机均可选用SDN控制器所下发的流表来配置,使得其中设置的虚拟交换机能够接收来自外部装置的ARP请求,以及生成相应的ARP响应。外部装置在收到ARP响应,能够将数据包发送至所期望的目的终端。As shown in FIG. 5 , a third embodiment of the present invention provides a data transmission system based on a flow table, which is used to transmit data packets between multiple network nodes, wherein each network node is deployed with the above-mentioned second embodiment. In the disclosed physical machines, these physical machines can be configured by using the flow table issued by the SDN controller, so that the virtual switch set therein can receive ARP requests from external devices and generate corresponding ARP responses. After receiving the ARP response, the external device can send the data packet to the desired destination terminal.

具体来说,第一节点11设置有第一虚拟交换机110,第二节点12设置有第二虚拟交换机120,第一、第二虚拟交换机110,120分别提供对虚拟机V1,V2,V3以及虚拟机V4,V5,V6的路由。Specifically, the first node 11 is provided with a first virtual switch 110, and the second node 12 is provided with a second virtual switch 120. The first and second virtual switches 110 and 120 provide virtual machines V1, V2, V3 and virtual machines respectively. Machine V4, V5, V6 routing.

在利用流表配置物理机中设置的虚拟交换机之后,这种数据传送系统能够促进数据包在虚拟机和外部装置之间的双向传输,而不管这些虚拟机是否具有浮动IP。After configuring the virtual switch provided in the physical machine using the flow table, this data transfer system can facilitate bidirectional transmission of data packets between virtual machines and external devices regardless of whether the virtual machines have floating IPs or not.

作为示例,若数据包1的目的终端指向第一节点11中的虚拟机V1,第一虚拟交换机110能够将数据包1直接交付至虚拟机V1;若数据包的目的终端指向第二节点12中的虚拟机V5,第一虚拟交换机110通过隧道技术将数据包转发至第二虚拟交换机120,再由第二虚拟交换机120将数据包交付虚拟机V5。As an example, if the destination terminal of the data packet 1 points to the virtual machine V1 in the first node 11, the first virtual switch 110 can directly deliver the data packet 1 to the virtual machine V1; if the destination terminal of the data packet points to the second node 12 The first virtual switch 110 forwards the data packet to the second virtual switch 120 through the tunneling technology, and then the second virtual switch 120 delivers the data packet to the virtual machine V5.

在本发明的一些实施例中,上述系统的至少一部分可采用通信网络所连接的一组分布式计算装置来实现,或,基于“云”来实现。在这种系统中,多个计算装置共同操作,以通过使用其共享资源来提供服务。In some embodiments of the present invention, at least a portion of the system described above may be implemented using a set of distributed computing devices connected by a communication network, or based on a "cloud". In such systems, multiple computing devices operate together to provide services by using their shared resources.

基于“云”的实现可提供一个或多个优点,包括:开放性、灵活性和可扩展性、可中心管理、可靠性、可缩放性、对计算资源所优化、具有聚合和分析跨多个用户的信息的能力、跨多个地理区域进行连接、以及将多个移动或数据网络运营商用于网络连通性的能力。A "cloud"-based implementation can provide one or more advantages, including: openness, flexibility and scalability, central management, reliability, scalability, optimized for computing resources, with aggregation and analysis across multiple The ability of the user's information, the ability to connect across multiple geographic areas, and the ability to use multiple mobile or data network operators for network connectivity.

根据本发明另一实施例,提供一种计算机存储介质,其上存储有计算机可执行指令,该计算机可执行指令在由处理器执行时,将实现上述第一实施例中的方法。According to another embodiment of the present invention, a computer storage medium is provided on which computer-executable instructions are stored, and when executed by a processor, the computer-executable instructions will implement the method in the above-mentioned first embodiment.

根据本发明又一实施例,提供一种计算机程序,其包括一批计算机可执行指令,这些计算机可执行指令在由处理器执行时,有序执行第一实施例中的方法中的各步骤。According to yet another embodiment of the present invention, a computer program is provided, which includes a batch of computer-executable instructions, which, when executed by a processor, execute the steps of the method in the first embodiment in an orderly manner.

上述说明仅针对于本发明的优选实施例,并不在于限制本发明的保护范围。本领域技术人员可能作出各种变形设计,而不脱离本发明的思想及附随的权利要求。The above description is only for the preferred embodiments of the present invention, and is not intended to limit the protection scope of the present invention. Those skilled in the art may make various modification designs without departing from the spirit of the present invention and the appended claims.

Claims (12)

1.一种基于流表的数据传送方法,用于将数据包提供至多个网络节点中的一个节点,其中,各所述节点分别部署一物理机,所述物理机配置有一虚拟交换机和至少一虚拟机,所述虚拟机由所述虚拟交换机来路由,所述方法包括:1. A data transmission method based on a flow table, for providing a data packet to a node in a plurality of network nodes, wherein each of the nodes is respectively deployed with a physical machine, and the physical machine is configured with a virtual switch and at least one a virtual machine, the virtual machine being routed by the virtual switch, the method comprising: a)、将流表下发到第一虚拟交换机,以使得所述第一虚拟交换机对应的外部接口配置成接收来自外部装置的ARP请求;其中,所述第一虚拟交换机处于第一节点对应的所述物理机;a), delivering the flow table to the first virtual switch, so that the external interface corresponding to the first virtual switch is configured to receive an ARP request from an external device; wherein, the first virtual switch is in the corresponding location of the first node the physical machine; b)、所述第一虚拟交换机基于所述流表生成对所述ARP请求的相应ARP响应;b), the first virtual switch generates a corresponding ARP response to the ARP request based on the flow table; c)、所述外部接口接收来自所述外部装置的数据包;其中,所述数据包由所述外部装置在接收到所述ARP响应后提供;c), the external interface receives a data packet from the external device; wherein, the data packet is provided by the external device after receiving the ARP response; d)、确定所述数据包的目的虚拟机是否处于所述第一节点对应的所述物理机;以及d), determining whether the destination virtual machine of the data packet is in the physical machine corresponding to the first node; and e)、若所述目的虚拟机处于不同于所述第一节点的第二节点对应的所述物理机,则所述第一虚拟交换机将所述数据包转发至第二虚拟交换机;其中,所述第二虚拟交换机处于所述第二节点对应的所述物理机。e), if the destination virtual machine is in the physical machine corresponding to a second node different from the first node, the first virtual switch forwards the data packet to the second virtual switch; wherein, the The second virtual switch is located in the physical machine corresponding to the second node. 2.根据权利要求1所述的方法,其特征在于,所述流表由SDN控制器生成。2. The method of claim 1, wherein the flow table is generated by an SDN controller. 3.根据权利要求2所述的方法,其特征在于,所述ARP响应至少包括所述第一虚拟交换机对应的所述物理机的MAC地址。3 . The method according to claim 2 , wherein the ARP response at least includes the MAC address of the physical machine corresponding to the first virtual switch. 4 . 4.根据权利要求2所述的方法,其特征在于,步骤e)中,利用所述SDN控制器获取所述第二虚拟交换机所在的所述物理机的IP地址,使用隧道技术将所述数据包转发至所述第二虚拟交换机。4. The method according to claim 2, characterized in that, in step e), the SDN controller is used to obtain the IP address of the physical machine where the second virtual switch is located, and a tunneling technique is used to transfer the data to the IP address. The packet is forwarded to the second virtual switch. 5.根据权利要求1所述的方法,其特征在于,所述方法还包括:5. The method according to claim 1, wherein the method further comprises: 所述第二虚拟交换机将所述数据包交付所述目的虚拟机。The second virtual switch delivers the data packet to the destination virtual machine. 6.根据权利要求1至5中任一项所述的方法,其特征在于,所述目的虚拟机不设置浮动IP。6 . The method according to claim 1 , wherein the destination virtual machine does not set a floating IP. 7 . 7.一种计算机存储介质,其上存储有计算机可执行指令,其特征在于,所述计算机可执行指令在由处理器执行时,将实现权利要求1-6中任一项所述的方法。7. A computer storage medium having computer-executable instructions stored thereon, wherein the computer-executable instructions, when executed by a processor, will implement the method of any one of claims 1-6. 8.一种计算机装置,包括处理器、存储器和储存于所述存储器上的一批计算机可执行指令,所述计算机可执行指令在由所述处理器执行时,执行权利要求1-6中任一项所述的方法的步骤。8. A computer device comprising a processor, a memory and a batch of computer-executable instructions stored on the memory, the computer-executable instructions, when executed by the processor, executes any of claims 1-6. A step of the method. 9.一种用于接收数据包的物理机,部署于一网络节点处,其中,所述物理机配置有一虚拟交换机和至少一虚拟机,所述虚拟机由所述虚拟交换机路由,所述虚拟交换机基于流表配置成:9. A physical machine for receiving data packets, deployed at a network node, wherein the physical machine is configured with a virtual switch and at least one virtual machine, the virtual machine is routed by the virtual switch, the virtual machine is The switch is configured based on the flow table as: 以外部接口接收来自外部装置的ARP请求,以及,生成对所述ARP请求的相应ARP响应;receiving an ARP request from an external device at an external interface, and generating a corresponding ARP response to the ARP request; 以所述外部接口接收来自所述外部装置的数据包;其中,所述数据包由所述外部装置在接收到所述ARP响应后提供;receiving a data packet from the external device at the external interface; wherein the data packet is provided by the external device after receiving the ARP response; 确定所述数据包的目的虚拟机是否处于第一节点对应的所述物理机;其中,所述第一节点为当前所述网络节点;以及determining whether the destination virtual machine of the data packet is in the physical machine corresponding to the first node; wherein the first node is the current network node; and 若确定所述目的虚拟机处于第二节点对应的所述物理机,则将所述数据包转发至处于所述第二节点对应的所述物理机中的所述虚拟交换机;其中,所述第二节点为不同于所述第一节点的所述网络节点。If it is determined that the destination virtual machine is in the physical machine corresponding to the second node, forward the data packet to the virtual switch in the physical machine corresponding to the second node; wherein the first The second node is the network node different from the first node. 10.根据权利要求9所述的物理机,其特征在于,所述物理机与SDN控制器耦合,并从所述SDN控制器获取所述流表。10. The physical machine according to claim 9, wherein the physical machine is coupled to an SDN controller, and obtains the flow table from the SDN controller. 11.一种基于流表的数据传送系统,用于在多个网络节点之间传送数据包,其特征在于,每个所述网络节点部署有如权利要求9或10所述的物理机。11. A data transmission system based on a flow table for transmitting data packets between multiple network nodes, wherein each of the network nodes is deployed with a physical machine as claimed in claim 9 or 10. 12.根据权利要求11所述的系统,其特征在于,所述系统基于云计算来部署。12. The system of claim 11, wherein the system is deployed based on cloud computing.
CN201711481899.3A 2017-12-29 2017-12-29 Data transmission method based on flow table Active CN108322391B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201711481899.3A CN108322391B (en) 2017-12-29 2017-12-29 Data transmission method based on flow table
PCT/CN2018/120306 WO2019128699A1 (en) 2017-12-29 2018-12-11 Flow table-based data transfer method
TW107145030A TWI759571B (en) 2017-12-29 2018-12-13 Data transfer method based on flow table

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711481899.3A CN108322391B (en) 2017-12-29 2017-12-29 Data transmission method based on flow table

Publications (2)

Publication Number Publication Date
CN108322391A CN108322391A (en) 2018-07-24
CN108322391B true CN108322391B (en) 2020-08-25

Family

ID=62892777

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711481899.3A Active CN108322391B (en) 2017-12-29 2017-12-29 Data transmission method based on flow table

Country Status (3)

Country Link
CN (1) CN108322391B (en)
TW (1) TWI759571B (en)
WO (1) WO2019128699A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108322391B (en) * 2017-12-29 2020-08-25 中国银联股份有限公司 Data transmission method based on flow table
CN109547342B (en) * 2018-11-30 2021-03-09 新华三技术有限公司 Strategy routing issuing method and network node
CN110035012B (en) 2018-12-25 2021-09-14 中国银联股份有限公司 SDN-based VPN flow scheduling method and SDN-based VPN flow scheduling system
CN115150106B (en) * 2021-03-16 2023-03-14 中国科学技术大学 Safety protection method of physical machine and network node equipment
CN114172789B (en) * 2021-12-07 2023-11-10 北京天融信网络安全技术有限公司 Virtual equipment link detection method, device, equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015074395A1 (en) * 2013-11-22 2015-05-28 华为技术有限公司 Data packet forwarding method, apparatus and system
CN104869058A (en) * 2015-06-04 2015-08-26 北京京东尚科信息技术有限公司 Method and device for transmitting data message
CN105099779A (en) * 2015-07-29 2015-11-25 北京京东尚科信息技术有限公司 Multi-tenant cloud platform architecture
CN107124364A (en) * 2017-06-30 2017-09-01 广州市品高软件股份有限公司 The complete Proxy Methods of network A RP and system based on software defined network controller
CN107306215A (en) * 2016-04-18 2017-10-31 中国移动通信集团江西有限公司 A kind of data processing method, system and node

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8300525B1 (en) * 2009-01-30 2012-10-30 Juniper Networks, Inc. Managing a flow table
EP3059906B1 (en) * 2013-11-19 2018-06-20 Huawei Technologies Co., Ltd. Table items addressing method, switch, and controller based on flow table
CN108322391B (en) * 2017-12-29 2020-08-25 中国银联股份有限公司 Data transmission method based on flow table

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015074395A1 (en) * 2013-11-22 2015-05-28 华为技术有限公司 Data packet forwarding method, apparatus and system
CN104869058A (en) * 2015-06-04 2015-08-26 北京京东尚科信息技术有限公司 Method and device for transmitting data message
CN105099779A (en) * 2015-07-29 2015-11-25 北京京东尚科信息技术有限公司 Multi-tenant cloud platform architecture
CN107306215A (en) * 2016-04-18 2017-10-31 中国移动通信集团江西有限公司 A kind of data processing method, system and node
CN107124364A (en) * 2017-06-30 2017-09-01 广州市品高软件股份有限公司 The complete Proxy Methods of network A RP and system based on software defined network controller

Also Published As

Publication number Publication date
CN108322391A (en) 2018-07-24
WO2019128699A1 (en) 2019-07-04
TW201931828A (en) 2019-08-01
TWI759571B (en) 2022-04-01

Similar Documents

Publication Publication Date Title
JP7079866B2 (en) Packet processing method and device
CN108322391B (en) Data transmission method based on flow table
JP6369698B2 (en) Traffic switching method, device, and system
US9577958B2 (en) Method and apparatus for implementing communication between virtual machines
CN106789667B (en) Data forwarding method, related equipment and system
JP6663020B2 (en) Packet processing method, related device, and NVO3 network system
JP5991424B2 (en) Packet rewriting device, control device, communication system, packet transmission method and program
US9448821B2 (en) Method and system for realizing virtual machine mobility
KR101669700B1 (en) Agile data center network architecture
EP3240250B1 (en) Virtual router terminating an overlay tunnel in a storage area network
EP2843906B1 (en) Method, apparatus, and system for data transmission
KR102025680B1 (en) SDN based ARP implementation method and device
JP2019033534A (en) Data packet transfer
CN104320267A (en) ARP broadcast restraining system and method for achieving VxLAN based on SDN framework
WO2016184283A1 (en) Data stream management method and system for virtual machine
CN103581274A (en) Message forwarding method and device in stacking system
CN108512755A (en) A kind of learning method and device of routing iinformation
CN114980243A (en) A data forwarding method, device and storage medium
US11523443B2 (en) Extraction, conversion, and transmission of user packet from encapsulated packet
CN107733800A (en) A kind of SDN message transmitting method and its device
JP7127537B2 (en) Transport network control device, communication system, transfer node control method and program
JP3625156B2 (en) Network configuration method and route determination apparatus
HK1258628A1 (en) Data transferring method based on flow table
HK1258628B (en) Data transferring method based on flow table
US9537750B2 (en) Multicast router topology discovery

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1258628

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant