CN112910776A - 一种数据转发方法、装置、设备及介质 - Google Patents

一种数据转发方法、装置、设备及介质 Download PDF

Info

Publication number
CN112910776A
CN112910776A CN202110064130.1A CN202110064130A CN112910776A CN 112910776 A CN112910776 A CN 112910776A CN 202110064130 A CN202110064130 A CN 202110064130A CN 112910776 A CN112910776 A CN 112910776A
Authority
CN
China
Prior art keywords
virtual machine
routing
port
flow
network data
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.)
Granted
Application number
CN202110064130.1A
Other languages
English (en)
Other versions
CN112910776B (zh
Inventor
苏赛
董君
罗浩
董玉池
孙德奎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Volcano Engine Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology 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 Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202110064130.1A priority Critical patent/CN112910776B/zh
Publication of CN112910776A publication Critical patent/CN112910776A/zh
Application granted granted Critical
Publication of CN112910776B publication Critical patent/CN112910776B/zh
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/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • 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

Landscapes

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

Abstract

本公开实施例提供一种数据转发方法、装置、设备及介质,涉及网络通信技术领域,其中该方法包括:在读取到端口标识后,获取与端口标识对应的虚拟机对象、与虚拟机对象绑定的路由表和路由表包含的路由规则;其中,端口标识用于标识虚拟机;基于端口标识、虚拟机对象、路由表以及路由规则之间的对应关系,生成流表模型;将流表模型下发至开放虚拟交换机;在开放虚拟交换机接收到源虚拟机发送的网络数据流后,基于流表模型将网络数据流转发至目的虚拟机;其中,源虚拟机为与开放虚拟交换机相连的多个虚拟机中的一个。本公开能够提升路由性能和隔离效果。

Description

一种数据转发方法、装置、设备及介质
技术领域
本公开涉及网络通信技术领域,尤其涉及一种数据转发方法、装置、设备及介质。
背景技术
目前市场上的云计算平台,需要通过路由功能实现对网络流量的调度。常见的路由功能实现是通过集中式的静态路由实现;集中式的静态路由是由网络管理员在集中式的网络节点(Network Node)中配置所有的路由规则。在此情况下,无论是东西向流量(E-WTraffic)还是南北向流量(N-S Traffic),都需要经过此网络节点,路由性能受限于该网络节点的能力。当大规模部署网络(Network)时,会造成网络节点的流量瓶颈,使网络节点的路由性能急剧下降。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种视频播放方法、装置、设备及介质。
第一方面,本公开实施例提供了一种数据转发方法,所述方法应用于计算节点,所述计算节点包括:Openflow控制器、开放虚拟交换机和多个虚拟机,所述方法包括:在所述Openflow控制器读取到端口标识后,获取与所述端口标识对应的虚拟机对象、与所述虚拟机对象绑定的路由表和所述路由表包含的路由规则;其中,所述端口标识用于标识虚拟机;基于所述端口标识、所述虚拟机对象、所述路由表以及所述路由规则之间的对应关系,生成流表模型;将所述流表模型下发至开放虚拟交换机;在所述开放虚拟交换机接收到源虚拟机发送的网络数据流后,基于所述流表模型将所述网络数据流转发至目的虚拟机;其中,所述源虚拟机为与所述开放虚拟交换机相连的多个所述虚拟机中的一个。
可选的,所述获取与所述端口标识对应的虚拟机对象、与所述虚拟机对象绑定的路由表和所述路由表包含的路由规则,包括:构造所述端口标识对应的端口对象;所述端口对象中包括:所述端口标识对应的虚拟机标识;将所述端口对象发送给数据下发层,通过所述数据下发层从预设的数据存储层中获取与所述虚拟机标识对应的虚拟机对象,所述虚拟机对象中包括:与所述虚拟机绑定的路由表的路由表标识;以及,获取与所述路由表标识对应的路由表和所述路由表中记录的路由索引,并获取所述路由索引映射的路由规则。
可选的,所述数据下发层包括全量数据下发模块和增量数据下发模块;所述端口标识包括本地端口标识和远程端口标识,且所述远程端口标识与所述本地端口标识各自对应的虚拟机在不同的计算节点下且属于同一逻辑交换机;所述将所述端口对象发送给数据下发层,包括:将所述本地端口标识对应的本地端口对象发送给所述全量数据下发模块,以通过所述全量数据下发模块基于所述本地端口对象获取本地的虚拟机对象、路由表和路由规则;将所述远程端口标识对应的远程端口对象发送给所述增量数据下发模块,以通过所述增量数据下发模块基于所述远程端口对象获取远程的虚拟机对象、路由表和路由规则。
可选的,所述流表模型包括:第一流表项和第二流表项;所述基于所述端口标识、所述虚拟机对象、所述路由表以及所述路由规则之间的对应关系,生成流表模型,包括:按照所述端口标识对应所述虚拟机对象、所述虚拟机对象绑定所述路由表的对应关系,将所述端口标识、所述虚拟机对象和所述路由表,配置到所述第一流表项中;其中,所述路由表中记录有用于映射路由规则的路由索引;将标识有路由索引的路由规则配置到所述第二流表项中。
可选的,所述基于所述流表模型将所述网络数据流转发至目的虚拟机,包括:通过所述流表模型的所述第一流表项获取源端口标识对应的源虚拟机对象,以及获取所述源虚拟机对象绑定的路由表中的第一路由索引;其中,所述源端口标识为所述源虚拟机的标识;将所述第一路由索引输入至所述第二流表项,通过所述第二流表项获取所述第一路由索引映射的第一路由规则,并基于所述第一路由规则将所述网络数据流转发至目的虚拟机。
可选的,所述获取所述源虚拟机对象绑定的路由表中的第一路由索引,包括:获取所述源虚拟机对象中包括的路由表标识,根据所述路由表标识获取与所述源虚拟机绑定的路由表,以及获取与所述源虚拟机绑定的路由表中记录的第一路由索引。
可选的,所述流表模型包括:第三流表项;所述基于所述第一路由规则将所述网络数据流转发至目的虚拟机,包括:通过所述第二流表项,根据所述第一路由规则对所述网络数据流进行修改;将修改后的网络数据流输入至第三流表项,通过所述第三流表项将所述修改后的网络数据转发至目的虚拟机。
可选的,所述根据所述第一路由规则对所述网络数据流进行修改,包括:从所述第一路由规则中获取下一跳端口的mac地址、所述下一跳端口的端口标识,以及所述源虚拟机对应的mac地址;将所述网络数据流的源mac地址修改为所述源虚拟机对应的mac地址,将所述网络数据流的目的mac地址修改为所述下一跳端口的mac地址,将所述网络数据流的目的端口标识修改为所述下一跳端口的端口标识,以及将所述下一跳端口的端口标识对应的第二路由索引添加至所述网络数据流,得到修改后的网络数据流。
可选的,所述将修改后的网络数据流输入至第三流表项,包括:如果修改后的网络数据流携带的目标ip地址在所述第一路由规则记录的目标网段内,且所述下一跳端口的mac地址为多个,则将所述修改后的网络数据流输入至分组表,以使所述分组表选择不同的链路将所述修改后的网络数据流输入至所述第三流表项。
可选的,所述将修改后的网络数据流输入至第三流表项,包括:如果修改后的网络数据流携带的目标ip地址不在所述第一路由规则记录的目标网段内,则将所述修改后的网络数据流输入至所述流表模型中的第四流表项,以使所述第四流表项将所述修改后的网络数据流输入至所述第三流表项;其中,所述第四流表项被配置为同一专有网络VPC下子网络之间互通的直连路由。
可选的,所述通过所述第三流表项将所述修改后的网络数据转发至目的虚拟机,包括:通过所述第三流表项,根据所述第一路由索引确定所述修改后的网络数据流的目的计算节点是本地计算节点还是远程计算节点;其中,所述本地计算节点为部署所述Openflow控制器、所述开放虚拟交换机和所述源虚拟机的计算节点;如果确定是所述本地计算节点,则将所述修改后的网络数据流输入至所述流表模型中的第五流表项,以使所述第五流表项基于所述第二路由索引将所述修改后的网络数据流转发至所述本地计算节点上的第一目的虚拟机;如果确定是所述远程计算节点,则将所述修改后的网络数据流输入至虚拟扩展局域网隧道端点VTEP,以通过所述VTEP将所述修改后的网络数据流转发至所述远程计算节点上的第二目的虚拟机。
第二方面,本公开实施例提供了一种数据转发装置,所述装置应用于计算节点,所述计算节点包括:Openflow控制器、开放虚拟交换机和多个虚拟机,所述装置包括:对象获取模块,用于在所述Openflow控制器读取到端口标识后,获取与所述端口标识对应的虚拟机对象、与所述虚拟机对象绑定的路由表和所述路由表包含的路由规则;其中,所述端口标识用于标识虚拟机;模型生成模块,用于基于所述端口标识、所述虚拟机对象、所述路由表以及所述路由规则之间的对应关系,生成流表模型;模型下发模块,用于将所述流表模型下发至开放虚拟交换机;数据转发模块,用于在所述开放虚拟交换机接收到源虚拟机发送的网络数据流后,基于所述流表模型将所述网络数据流转发至目的虚拟机;其中,所述源虚拟机为与所述开放虚拟交换机相连的多个所述虚拟机中的一个。
第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述第一方面所述的数据转发方法。
本公开实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述第一方面所述的数据转发方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例提供的数据转发方法、装置、设备及介质,首先在Openflow控制器读取到端口标识后,获取与端口标识对应的虚拟机对象、与虚拟机对象绑定的路由表和路由表包含的路由规则;然后基于端口标识、虚拟机对象、路由表以及路由规则之间的对应关系,生成流表模型,并将流表模型下发至开放虚拟交换机;从而,在开放虚拟交换机接收到源虚拟机发送的网络数据流后,基于流表模型将网络数据流转发至目的虚拟机。一方面,相比于现有通过iptables实现的路由功能,在本实施例中,Openflow控制器利用具有对应关系的端口标识、虚拟机对象、路由表和路由规则生成的流表模型,能够支持Openflow协议,基于此,通过该流表模型进行数据转发,能够有效提高数据转发性能。另一方面,利用上述对应关系,不同的端口标识对应不同的流表模型,从而能够通过端口标识实现路由隔离,相比于现有基于linux namespace实现的隔离更加高效。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种数据转发方法的流程示意图;
图2为本公开实施例提供的一种云平台架构示意图;
图3为本公开实施例提供的一种具有拓扑关系的对象数据的示意图;
图4为本公开实施例提供的一种构造流表模型的时序图;
图5为本公开实施例提供的一种流表模型的示意图;
图6为本公开实施例提供的另一种数据转发方法的流程示意图;
图7为本公开实施例提供的一种数据转发装置的结构示意图;
图8为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
考虑到现有通过集中式的静态路由实现的路由功能性能较差,为改善此问题,本公开实施例提供了一种数据转发方法、装置、设备及介质。为便于理解,以下对本公开实施例进行详细介绍。
实施例一:
本公开实施例提供一种数据转发方法。为便于理解,本实施例首先提供一种云平台,示例性地说明一种数据转发方法的应用场景。云平台可以包括多个计算节点,计算节点包括:Openflow控制器、开放虚拟交换机(Open VSwitch,OVS)和多个虚拟机(VirtualMachine,VM)。计算节点一般为电脑或服务器等具有数据转发能力的物理设备;Openflow控制器为OpenFlow协议提供的标准数据接口,用于对流表项进行管理;开放虚拟交换机为从计算节点虚拟出来的交换机,其支持Openflow协议,并通过OpenFlow协议连接到Openflow控制器;开放虚拟交换机可连接多个虚拟机。由于虚拟机数量较多,因此在实际应用中为了便于管理虚拟机,一般可以配置逻辑交换机,通过一个逻辑交换机对多个虚拟机进行管理,例如,一个逻辑交换机绑定一个路由表,并将该路由表配置给由它管理的多个虚拟机;一个逻辑交换机管理的多个虚拟机可以属于相同或不同的计算节点。
根据上述应用场景,本实施例提供的数据转发方法可以应用于云平台中的任一计算节点;为便于描述,将该计算节点称为本地计算节点。相对于本地计算节点,云平台上除本地计算节点之外的其他计算节点,可称为远程计算节点。
参见图1所示的一种数据转发方法的流程示意图,该方法应用于本地计算节点,可以包括如下步骤:
步骤S102,在Openflow控制器读取到端口标识后,获取与端口标识对应的虚拟机对象、与虚拟机对象绑定的路由表和路由表包含的路由规则。
其中,端口标识是连接开放虚拟交换机与虚拟机的端口的标识,用于唯一地标识端口和虚拟机,每个虚拟机对应唯一的端口,也即对应唯一的端口标识;路由表中记录有用于标识路由规则的路由索引,一条路由索引映射一条路由规则。
步骤S104,基于端口标识、虚拟机对象、路由表对象以及路由规则之间的对应关系,生成流表模型。
上述对应关系为:端口标识对应有唯一的虚拟机对象、虚拟机对象绑定有唯一的路由表、路由表中包含有至少一条路由规则。一组具有对应关系的端口标识、虚拟机对象、路由表对象以及路由规则,可作为一组对象数据,不同组的对象数据可通过端口标识进行区分。
在本实施例中,将上述对象数据配置生成流表模型,流表模型是开放虚拟交换机对网络数据流执行转发时的凭据,其包括按照编号排列的多个流表项。一组对象数据对应一个流表模型,且不同的流表模型也同样可通过端口标识进行区分,相当于通过端口标识实现了路由隔离。
步骤S106,将流表模型下发至开放虚拟交换机;开放虚拟交换机用于基于流表模型转发网络数据流。
步骤S108,在开放虚拟交换机接收到源虚拟机发送的网络数据流后,基于流表模型将网络数据流转发至目的虚拟机。
在本实施例中,向开放虚拟交换机发送网络数据流的虚拟机称为源虚拟机,相应的,接收网络数据流的虚拟机称为目的虚拟机。其中,源虚拟机为与开放虚拟交换机相连的多个虚拟机中的一个。
在开放虚拟交换机接收到源虚拟机发送的网络数据流后,先确定网络数据流对应的源端口标识,该源端口标识是指源虚拟机对应的端口的端口标识;而后根据源端口标识确定转发网络数据流的流表模型,并通过确定的流表模型将网络数据流转发至目的虚拟机。
本公开实施例提供的数据转发方法,首先Openflow控制器根据获取到的具有对应关系的端口标识、虚拟机对象、路由表以及路由规则,生成流表模型,并将流表模型下发至开放虚拟交换机;然后在开放虚拟交换机接收到源虚拟机发送的网络数据流后,基于流表模型将网络数据流转发至目的虚拟机。一方面,相比于现有通过iptables实现的路由功能,在本实施例中,Openflow控制器生成的流表模型能够支持Openflow协议,基于此,通过该流表模型进行数据转发,能够有效提高数据转发性能。另一方面,利用上述对应关系,不同的端口标识对应不同的流表模型,从而能够通过端口标识实现路由隔离,相比于现有基于linux namespace实现的隔离更加高效。
针对上述云平台,本公开实施例提供了一种具体示例,如图2所示,本实施例中的云平台包括多个计算节点,还包括控制节点、数据存储层、数据下发层。
控制节点包括前端组件和ARK(Anti-RootKit,反根工具包)组件。前端组件用于提供路由表API(Application Programming Interface,应用程序接口),并通过响应用户对API的调用操作,得到用户提交的虚拟机对象、每个虚拟机对象绑定的一张路由表以及路由表中记录的多个路由规则等对象数据。其中,虚拟机对象中包括虚拟机的相关数据,比如:虚拟机的名称、用于唯一标识虚拟机的虚拟机标识、VPC id(Virtual Private Cloudidentity document,专有网标识)和路由表标识等数据,该路由表标识所映射的路由表即为虚拟机绑定的路由表。前端组件将虚拟机对象、路由表、路由规则等对象数据发送给ARK组件,ARK组件将上述对象数据存储到数据存储层。
数据存储层包括ETCD数据库和SQL(Structured Query Language,结构化查询语言)数据库,上述数据库按照每个虚拟机对象绑定一张路由表和路由表中记录多个路由规则的对应关系,对虚拟机对象、路由表和路由规则进行存储。
数据下发层包括全量数据下发模块和增量数据下发模块,全量数据下发模块和增量数据下发模块均用于读取ETCD数据库中的数据,并将读取的数据下发给计算节点。在实际应用中,全量数据下发模块可以通过Sync-api实现,增量数据下发模块可通过Vpc-broker实现。
计算节点为多个,针对任一计算节点,其包括本地从属节点、Openflow控制器、开放虚拟交换机和虚拟机。在一种实际应用中,Openflow控制器可以为基于dragonflow服务实现的控制器。Openflow控制器可以生成每个端口标识对应的端口对象,并基于端口对象、虚拟机对象、路由表和路由规则构造路由表功能的流表模型,将流表模型下发至开放虚拟交换机,以使开放虚拟交换机基于流表模型转发网络数据流。
开放虚拟交换机用于实现同一计算节点上的虚拟机之间或跨计算节点的虚拟机之间的网络互通。根据一个虚拟机与一个端口标识的对应关系,以及上述虚拟机对象、路由表和路由规则之间的对应关系,可以确定端口对象、交换机对象、路由表和路由规则之间的拓扑关系,该拓扑关系如图3所示:根据端口对象中的虚拟机标识确定端口标识对应的虚拟机对象,根据虚拟机对象中的路由表标识确定虚拟机绑定的路由表,根据路由表记录的规则列表确定路由表包含的路由规则;其中,规则列表是记录路由索引的列表,且每条路由索引唯一映射一个路由规则。
为了便于理解该拓扑关系,以及Openflow控制器生成流表模型的实现方式,本实施例结合图4所示的时序图对此展开描述。可以理解的是,针对云平台中的任一计算节点,通过Openflow控制器生成流表模型的方式是相同的,因此为便于描述,本实施例依然以本地计算节点作为示例进行说明。
步骤1,构造端口标识对应的端口对象。
在本地计算节点启动后,本地计算节点上的虚拟机在开放虚拟交换机上注册端口,开放虚拟交换机给虚拟机分配唯一的端口标识;Openflow控制器读取本地计算节点的端口数据,端口数据诸如包括:端口标识、端口标识对应的虚拟机的虚拟机标识、端口标识对应的虚拟机信息(如虚拟机ip、虚拟机mac、管理该虚拟机的逻辑交换机)、以及端口标识对应的虚拟机所属的本地计算节点信息(如名称、device)等端口数据。Openflow控制器将各端口标识对应的端口数据,构造为端口对象,也就是说,端口对象是上述端口数据的集合,且不同的端口对象通过端口标识进行区分。
本实施例中的端口标识可以包括本地端口标识和远程端口标识;其中,本地计算节点的端口标识为本地端口标识;远程端口标识与本地端口标识各自对应的虚拟机在不同的计算节点下且属于同一逻辑交换机,或者说,远程端口标识是与本地端口标识属于同一逻辑交换机的远程计算节点的端口标识。
步骤2,将端口对象发送给数据下发层,通过数据下发层从预设的数据存储层中获取与虚拟机标识对应的虚拟机对象,虚拟机对象中包括:与虚拟机绑定的路由表的路由表标识;以及,获取与路由表标识对应的路由表和路由表中记录的路由索引,并获取路由索引映射的路由规则。
在本实施例中,Openflow控制器可以将端口对象发送给本地从属节点,由本地从属节点将端口对象发送给数据下发层,从而请求数据下发层获取与端口标识对应的虚拟机对象、路由表和路由规则。本地从属节点请求数据下发层获取虚拟机对象、路由表和路由规则的过程可参照如下所示:
将本地端口标识对应的本地端口对象发送给全量数据下发模块,以通过全量数据下发模块基于本地端口对象获取本地的虚拟机对象、路由表和路由规则。具体的,本地从属节点向全量数据下发模块发起请求,全量数据下发模块从ETCD数据库中依次读取本地端口标识所对应的虚拟机对象、虚拟机对象绑定的路由表以及路由表中包含的路由规则,并将读取到的本地端口对象依赖的上述对象数据下发给本地从属节点。
将远程端口标识对应的远程端口对象发送给增量数据下发模块,以通过增量数据下发模块基于远程端口对象获取远程的虚拟机对象、路由表和路由规则。具体为,本地从属节点向增量数据下发模块发起请求,增量数据下发模块从ETCD数据库中依次读取远程端口标识所属的虚拟机对象、虚拟机对象绑定的路由表以及路由表中包含的路由规则,并将读取到的远程端口对象依赖的上述数据下发给本地从属节点。此外需要说明的是,由于远程端口标识与本地端口标识各自对应的虚拟机属于同一逻辑交换机,通过该逻辑交换机配置同一路由表,从而,远程端口标识和本地端口标识各自对应的路由表和路由规则是相同的。
接下来,本地从属节点将获取的本地端口标识和远程端口标识各自对应的端口对象、虚拟机对象、路由表和路由规则发送给Openflow控制器。
步骤3,Openflow控制器按照如下拓扑关系:端口对象中端口标识对应的虚拟机对象、虚拟机对象绑定的路由表以及路由表中包含的路由规则,将端口对象、虚拟机对象、路由表和路由规则生成流表模型。
参照图5所示的流表模型示意图,在此提供一种生成流表模型的实施例。在本实施例中,流表模型包括按照编号排列的多个流表项,诸如包括第一流表项table5和第二流表项table60,该两个流表项的配置方式可以为:
按照端口标识对应虚拟机对象、虚拟机对象绑定路由表的对应关系,将端口标识、虚拟机对象和路由表,配置到第一流表项table5中;其中,路由表中记录有用于映射路由规则的路由索引。将标识有路由索引的路由规则配置到第二流表项table60中。
当然,流表模型还可以包括其他的流表项,并在下文做出描述。
根据上述实施例,每个计算节点只获取本地端口标识相关的对象数据(对象数据为虚拟机对象、路由表和路由规则),而无需获取其他的不相关数据;或者说,每个计算节点只获取相关的路由规则,而非全部的路由规则;从而,有效减小了不必要的内存,同时减少了开放虚拟交换机上的流表模型的数量。
以及,本实施例利用端口标识,在同一个物理网络上确定出不同的具有拓扑关系的端口对象、虚拟机对象、路由表和路由规则,进而生成不同的流表模型,相当于通过端口标识实现了路由隔离,相比于现有基于linux namespace实现的隔离更加高效。
Openflow控制器将生成好的流表模型下发到开放虚拟交换机,开放虚拟交换机基于流表模型转发网络数据流。基于此,本实施例提供一种通过开放虚拟交换机执行的数据转发方法。参照图6所示的数据转发方法的流程图,该方法包括如下步骤:
步骤S602,开放虚拟交换机在接收到源虚拟机发送的网络数据流后,确定网络数据流对应的源端口标识。
网络数据流输入至开放虚拟交换机中的流表模型,通过流表模型首先确定网络数据流对应的源端口标识。在一种具体实现方式中,在第一流表项table5之前,流表模型还可以包括预先配置的流表项table0;流表项table0根据连接通道与虚拟机之间的对应关系,标记网络数据流对应的源端口标识。上述连接通道为连接开放虚拟交换机与虚拟机的通道,且连接通道与虚拟机是一一对应的关系。流表项table0根据跳转指令,将网络数据流和源端口标识匹配至第一流表项table5。
步骤S604,通过流表模型的第一流表项table5获取源端口标识对应的源虚拟机对象,以及获取源虚拟机对象绑定的路由表中的第一路由索引;其中,源端口标识为源虚拟机的标识。
第一流表项table5中配置有具有对应关系的端口标识、虚拟机对象和路由表。基于此,通过第一流表项table5确定源端口标识对应的源虚拟机对象。具体的,先根据源端口标识获取该源端口标识对应的源端口对象中包括的虚拟机标识;然后获取该源虚拟机识对应的源虚拟机对象;进而获取源虚拟机对象中包括的路由表标识,根据该路由表标识获取与源虚拟机绑定的路由表,以及获取与源虚拟机绑定的路由表中记录的第一路由索引。每条路由规则均具有标识该路由规则的路由索引,路由索引记录于路由表中。
步骤S606,第一流表项table5根据跳转指令,将网络数据流和第一路由索引输入至流表模型的第二流表项table60,通过第二流表项table60获取第一路由索引映射的第一路由规则,并基于第一路由规则将网络数据流转发至目的虚拟机。
本实施例提供一种第二流表项table60基于第一路由规则将网络数据流转发至目的虚拟机的实现方式。
在本实施例中,通过第二流表项table60,根据第一路由规则对网络数据流进行修改;将修改后的网络数据流输入至第三流表项table75,通过第三流表项table75将修改后的网络数据转发至目的虚拟机。第三流表项table75为流表模型中编号排列在第二流表项table60之后的流表项。
参照图3,第一路由规则中记录有多项参数,诸如:路由索引、目标网段、下一跳端口、逻辑交换机的mac地址、ecmp nexthops(等价多路径路由)和路由动作;上述的逻辑交换机是指管理源虚拟机的逻辑交换机。
在根据第一路由规则对网络数据流进行修改的过程中,首先从第一路由规则中获取下一跳端口的mac地址、下一跳端口的端口标识,以及源虚拟机对应的mac地址。而后,第二流表项table60基于获取的上述参数对网络数据流的修改过程为:
将网络数据流的源mac地址修改为源虚拟机对应的mac地址,将网络数据流的目的mac地址修改为下一跳端口的mac地址,将网络数据流的目的端口标识修改为下一跳端口的端口标识,以及将下一跳端口的端口标识对应的第二路由索引添加至网络数据流,得到修改后的网络数据流。
可以理解,上述下一跳端口的端口标识对应的第二路由索引是基于下一跳端口的端口标识对应的流表模型获取的。
接下来,第二流表项table60将修改后的网络数据流输入至第三流表项table75,以使第三流表项将修改后的网络数据转发至目的虚拟机。
在本实施例中,可以有多种方式将修改后的网络数据流输入至第三流表项table75。
方式一:如果修改后的网络数据流携带的目标ip地址在第一路由规则记录的目标网段内,且下一跳端口的mac地址为多个,则将修改后的网络数据流输入至分组表,以使分组表选择不同的链路将修改后的网络数据流输入至第三流表项table75。分组表中包括多组action bucket(动作桶)和nexthop(下一跳端口)。该方式通过分组表的选择方法实现了ECMP(Equal-CostMultipathRouting,等价多路)路由,同时使用选择的多条链路将修改后的网络数据流输入至第三流表项table75,不仅增加了传输带宽,并且可以无时延无丢包地备份失效链路的数据传输。
方式二:如果修改后的网络数据流携带的目标ip地址在第一路由规则记录的目标网段内,且下一跳端口的mac地址为一个,则将修改后的网络数据流直接输入至第三流表项table75。具体的,如果根据修改后的网络数据流的源mac地址和目的mac地址各自所属的VPC(Virtual Private Cloud,专有网络),确定对网络数据流进行同一VPC下自定义路由(即非ECMP路由),则将修改后的网络数据流直接输入至第三流表项table75。根据网络数据流的修改过程可知,上述修改后的网络数据流的源mac地址是发送网络数据流的源虚拟机对应的逻辑交换机的mac地址,上述修改后网络数据流的目的mac地址是修改后网络数据流的目的虚拟机对应的mac地址。
方式三:如果修改后的网络数据流携带的目标ip地址不在第一路由规则记录的目标网段内,则将修改后的网络数据流输入至流表模型中的第四流表项table65,以使第四流表项table65将修改后的网络数据流输入至第三流表项table75;其中,第四流表项table65被配置为同一VPC下子网络之间互通的直连路由。基于此,第四流表项table65建立开放虚拟交换机与下一跳端口各自所属的子网络之间的通信,并将修改后的网络数据流输入至第三流表项table75。
第三流表项table75按照以上三种方式之一接收修改后的网络数据流,而后将修改后的网络数据转发至目的虚拟机,具体包括:
通过第三流表项table75,根据第一路由索引确定修改后的网络数据流的目的计算节点是本地计算节点还是远程计算节点;其中,本地计算节点为部署Openflow控制器、开放虚拟交换机和源虚拟机的计算节点。
如果确定是本地计算节点,则将修改后的网络数据流输入至流表模型中的第五流表项table105,以使第五流表项table105基于第二路由索引将修改后的网络数据流转发至本地计算节点上的第一目的虚拟机。
如果确定是远程计算节点,则将修改后的网络数据流输入至VTEP(VXLAN TunnelEndpoints,虚拟扩展局域网隧道端点),以通过VTEP将修改后的网络数据流转发至远程计算节点上的第二目的虚拟机。
上述第一目的虚拟机或第二目的虚拟机是由路由规则中的下一跳端口的mac地址指示的虚拟机。
需要说明的是,本实施例中的流表模型并未示出完整的流表项,是为了介绍数据转发而节选的相关部分,且示出的流表项的编号是示意性的,不应理解为限制。
综上,本公开实施例提供的数据转发方法,在开放虚拟交换机接收到源虚拟机发送的网络数据流后,利用Openflow控制器下发的流表模型将网络数据流转发至目的虚拟机;由于流表模型能够支持Openflow协议,故通过该流表模型进行数据转发,能够有效提高数据转发性能。而且,不同的流表模型可通过不同的端口标识进行区分,从而能够通过端口标识实现路由隔离,相比于现有基于linux namespace实现的隔离更加高效有效提高了路由性能。
实施例二:
图7为本公开实施例提供的一种数据转发装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中,可通过执行实施例一提供的数据转发方法来实现数据转发。该装置设置于计算节点中,计算节点包括:Openflow控制器、开放虚拟交换机和多个虚拟机。如图7所示,数据转发装置包括:
对象获取模块702,用于在Openflow控制器读取到端口标识后,获取与端口标识对应的虚拟机对象、与虚拟机对象绑定的路由表和路由表包含的路由规则;其中,端口标识用于标识虚拟机;
模型生成模块704,用于基于端口标识、虚拟机对象、路由表以及路由规则之间的对应关系,生成流表模型;
模型下发模块706,用于将流表模型下发至开放虚拟交换机;
数据转发模块708,用于在开放虚拟交换机接收到源虚拟机发送的网络数据流后,基于流表模型将网络数据流转发至目的虚拟机;其中,源虚拟机为与开放虚拟交换机相连的多个虚拟机中的一个。
本公开实施例提供的数据转发装置,Openflow控制器根据获取到的端口标识、虚拟机对象、路由表以及路由规则之间的对应关系,生成流表模型,并将流表模型下发至开放虚拟交换机;在开放虚拟交换机接收到源虚拟机发送的网络数据流后,基于流表模型将网络数据流转发至目的虚拟机。一方面,相比于现有通过iptables实现的路由功能,在本实施例中,Openflow控制器生成的流表模型能够支持Openflow协议,基于此,通过该流表模型进行数据转发,能够有效提高数据转发性能。另一方面,不同的端口标识对应不同的流表模型,从而能够通过端口标识实现路由隔离,相比于现有基于linux namespace实现的隔离更加高效。
在一种实施例中,对象获取模块702包括:
构造单元,用于构造端口标识对应的端口对象;端口对象中包括:端口标识对应的虚拟机标识;
对象获取单元,用于将端口对象发送给数据下发层,通过数据下发层从预设的数据存储层中获取与虚拟机标识对应的虚拟机对象,虚拟机对象中包括:与虚拟机绑定的路由表的路由表标识;以及,获取与路由表标识对应的路由表和路由表中记录的路由索引,并获取路由索引映射的路由规则。
在一种实施例中,数据下发层包括全量数据下发模块和增量数据下发模块;端口标识包括本地端口标识和远程端口标识,且远程端口标识与本地端口标识各自对应的虚拟机在不同的计算节点下且属于同一逻辑交换机;上述对象获取单元具体用于:
将本地端口标识对应的本地端口对象发送给全量数据下发模块,以通过全量数据下发模块基于本地端口对象获取本地的虚拟机对象、路由表和路由规则;将远程端口标识对应的远程端口对象发送给增量数据下发模块,以通过增量数据下发模块基于远程端口对象获取远程的虚拟机对象、路由表和路由规则。
在一种实施例中,流表模型包括:第一流表项和第二流表项;模型生成模块704具体用于:按照端口标识对应虚拟机对象、虚拟机对象绑定路由表的对应关系,将端口标识、虚拟机对象和路由表,配置到第一流表项中;其中,路由表中记录有用于映射路由规则的路由索引;将标识有路由索引的路由规则配置到第二流表项中。
在一种实施例中,数据转发模块708包括:
路由索引获取单元,用于通过流表模型的第一流表项获取源端口标识对应的源虚拟机对象,以及获取源虚拟机对象绑定的路由表中的第一路由索引;其中,源端口标识为源虚拟机的标识;
转发单元,用于将第一路由索引输入至第二流表项,通过第二流表项获取第一路由索引映射的第一路由规则,并基于第一路由规则将网络数据流转发至目的虚拟机。
在一种实施例中,路由索引获取单元具体用于:获取源虚拟机对象中包括的路由表标识,根据路由表标识获取与源虚拟机绑定的路由表,以及获取与源虚拟机绑定的路由表中记录的第一路由索引。
在一种实施例中,流表模型包括:第三流表项;转发单元具体用于:通过第二流表项,根据第一路由规则对网络数据流进行修改;将修改后的网络数据流输入至第三流表项,通过第三流表项将修改后的网络数据转发至目的虚拟机。
在一种实施例中,转发单元具体用于:从第一路由规则中获取下一跳端口的mac地址、下一跳端口的端口标识,以及源虚拟机对应的mac地址;将网络数据流的源mac地址修改为源虚拟机对应的mac地址,将网络数据流的目的mac地址修改为下一跳端口的mac地址,将网络数据流的目的端口标识修改为下一跳端口的端口标识,以及将下一跳端口的端口标识对应的第二路由索引添加至网络数据流,得到修改后的网络数据流。
在一种实施例中,转发单元具体用于:如果修改后的网络数据流携带的目标ip地址在第一路由规则记录的目标网段内,且下一跳端口的mac地址为多个,则将修改后的网络数据流输入至分组表,以使分组表选择不同的链路将修改后的网络数据流输入至第三流表项。
在一种实施例中,转发单元具体用于:如果修改后的网络数据流携带的目标ip地址不在第一路由规则记录的目标网段内,则将修改后的网络数据流输入至流表模型中的第四流表项,以使第四流表项将修改后的网络数据流输入至第三流表项;其中,第四流表项被配置为同一专有网络VPC下子网络之间互通的直连路由。
在一种实施例中,转发单元具体用于:通过第三流表项,根据第一路由索引确定修改后的网络数据流的目的计算节点是本地计算节点还是远程计算节点;其中,本地计算节点为部署Openflow控制器、开放虚拟交换机和源虚拟机的计算节点;如果确定是本地计算节点,则将修改后的网络数据流输入至流表模型中的第五流表项,以使第五流表项基于第二路由索引将修改后的网络数据流转发至本地计算节点上的第一目的虚拟机;如果确定是远程计算节点,则将修改后的网络数据流输入至虚拟扩展局域网隧道端点VTEP,以通过VTEP将修改后的网络数据流转发至远程计算节点上的第二目的虚拟机。
本公开实施例所提供的数据转发装置可执行本公开任意实施例所提供的数据转发方法,具备执行方法相应的功能模块和有益效果。
图8为本公开实施例提供的一种电子设备的结构示意图。如图8所示,电子设备800包括一个或多个处理器801和存储器802。
处理器801可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备800中的其他组件以执行期望的功能。
存储器802可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器801可以运行所述程序指令,以实现上文所述的本公开的实施例的数据转发方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备800还可以包括:输入装置803和输出装置804,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入装置803还可以包括例如键盘、鼠标等等。
该输出装置804可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置804可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图8中仅示出了该电子设备800中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备800还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所述数据转发方法。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的数据转发方法。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (14)

1.一种数据转发方法,其特征在于,所述方法应用于计算节点,所述计算节点包括:Openflow控制器、开放虚拟交换机和多个虚拟机,所述方法包括:
在所述Openflow控制器读取到端口标识后,获取与所述端口标识对应的虚拟机对象、与所述虚拟机对象绑定的路由表和所述路由表包含的路由规则;其中,所述端口标识用于标识虚拟机;
基于所述端口标识、所述虚拟机对象、所述路由表以及所述路由规则之间的对应关系,生成流表模型;
将所述流表模型下发至开放虚拟交换机;
在所述开放虚拟交换机接收到源虚拟机发送的网络数据流后,基于所述流表模型将所述网络数据流转发至目的虚拟机;其中,所述源虚拟机为与所述开放虚拟交换机相连的多个所述虚拟机中的一个。
2.根据权利要求1所述的方法,其特征在于,所述获取与所述端口标识对应的虚拟机对象、与所述虚拟机对象绑定的路由表和所述路由表包含的路由规则,包括:
构造所述端口标识对应的端口对象;所述端口对象中包括:所述端口标识对应的虚拟机标识;
将所述端口对象发送给数据下发层,通过所述数据下发层从预设的数据存储层中获取与所述虚拟机标识对应的虚拟机对象,所述虚拟机对象中包括:与所述虚拟机绑定的路由表的路由表标识;以及,获取与所述路由表标识对应的路由表和所述路由表中记录的路由索引,并获取所述路由索引映射的路由规则。
3.根据权利要求2所述的方法,其特征在于,所述数据下发层包括全量数据下发模块和增量数据下发模块;所述端口标识包括本地端口标识和远程端口标识,且所述远程端口标识与所述本地端口标识各自对应的虚拟机在不同的计算节点下且属于同一逻辑交换机;
所述将所述端口对象发送给数据下发层,包括:
将所述本地端口标识对应的本地端口对象发送给所述全量数据下发模块,以通过所述全量数据下发模块基于所述本地端口对象获取本地的虚拟机对象、路由表和路由规则;
将所述远程端口标识对应的远程端口对象发送给所述增量数据下发模块,以通过所述增量数据下发模块基于所述远程端口对象获取远程的虚拟机对象、路由表和路由规则。
4.根据权利要求1所述的方法,其特征在于,所述流表模型包括:第一流表项和第二流表项;所述基于所述端口标识、所述虚拟机对象、所述路由表以及所述路由规则之间的对应关系,生成流表模型,包括:
按照所述端口标识对应所述虚拟机对象、所述虚拟机对象绑定所述路由表的对应关系,将所述端口标识、所述虚拟机对象和所述路由表,配置到所述第一流表项中;其中,所述路由表中记录有用于映射路由规则的路由索引;
将标识有路由索引的路由规则配置到所述第二流表项中。
5.根据权利要求4所述的方法,其特征在于,所述基于所述流表模型将所述网络数据流转发至目的虚拟机,包括:
通过所述流表模型的所述第一流表项获取源端口标识对应的源虚拟机对象,以及获取所述源虚拟机对象绑定的路由表中的第一路由索引;其中,所述源端口标识为所述源虚拟机的标识;
将所述第一路由索引输入至所述第二流表项,通过所述第二流表项获取所述第一路由索引映射的第一路由规则,并基于所述第一路由规则将所述网络数据流转发至目的虚拟机。
6.根据权利要求5所述的方法,其特征在于,所述获取所述源虚拟机对象绑定的路由表中的第一路由索引,包括:
获取所述源虚拟机对象中包括的路由表标识,根据所述路由表标识获取与所述源虚拟机绑定的路由表,以及获取与所述源虚拟机绑定的路由表中记录的第一路由索引。
7.根据权利要求5所述的方法,其特征在于,所述流表模型包括:第三流表项;所述基于所述第一路由规则将所述网络数据流转发至目的虚拟机,包括:
通过所述第二流表项,根据所述第一路由规则对所述网络数据流进行修改;
将修改后的网络数据流输入至第三流表项,通过所述第三流表项将所述修改后的网络数据转发至目的虚拟机。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第一路由规则对所述网络数据流进行修改,包括:
从所述第一路由规则中获取下一跳端口的mac地址、所述下一跳端口的端口标识,以及所述源虚拟机对应的mac地址;
将所述网络数据流的源mac地址修改为所述源虚拟机对应的mac地址,将所述网络数据流的目的mac地址修改为所述下一跳端口的mac地址,将所述网络数据流的目的端口标识修改为所述下一跳端口的端口标识,以及将所述下一跳端口的端口标识对应的第二路由索引添加至所述网络数据流,得到修改后的网络数据流。
9.根据权利要求8所述的方法,其特征在于,所述将修改后的网络数据流输入至第三流表项,包括:
如果修改后的网络数据流携带的目标ip地址在所述第一路由规则记录的目标网段内,且所述下一跳端口的mac地址为多个,则将所述修改后的网络数据流输入至分组表,以使所述分组表选择不同的链路将所述修改后的网络数据流输入至所述第三流表项。
10.根据权利要求7所述的方法,其特征在于,所述将修改后的网络数据流输入至第三流表项,包括:
如果修改后的网络数据流携带的目标ip地址不在所述第一路由规则记录的目标网段内,则将所述修改后的网络数据流输入至所述流表模型中的第四流表项,以使所述第四流表项将所述修改后的网络数据流输入至所述第三流表项;其中,所述第四流表项被配置为同一专有网络VPC下子网络之间互通的直连路由。
11.根据权利要求8所述的方法,其特征在于,所述通过所述第三流表项将所述修改后的网络数据转发至目的虚拟机,包括:
通过所述第三流表项,根据所述第一路由索引确定所述修改后的网络数据流的目的计算节点是本地计算节点还是远程计算节点;其中,所述本地计算节点为部署所述Openflow控制器、所述开放虚拟交换机和所述源虚拟机的计算节点;
如果确定是所述本地计算节点,则将所述修改后的网络数据流输入至所述流表模型中的第五流表项,以使所述第五流表项基于所述第二路由索引将所述修改后的网络数据流转发至所述本地计算节点上的第一目的虚拟机;
如果确定是所述远程计算节点,则将所述修改后的网络数据流输入至虚拟扩展局域网隧道端点VTEP,以通过所述VTEP将所述修改后的网络数据流转发至所述远程计算节点上的第二目的虚拟机。
12.一种数据转发装置,其特征在于,所述装置应用于计算节点,所述计算节点包括:Openflow控制器、开放虚拟交换机和多个虚拟机,所述装置包括:
对象获取模块,用于在所述Openflow控制器读取到端口标识后,获取与所述端口标识对应的虚拟机对象、与所述虚拟机对象绑定的路由表和所述路由表包含的路由规则;其中,所述端口标识用于标识虚拟机;
模型生成模块,用于基于所述端口标识、所述虚拟机对象、所述路由表以及所述路由规则之间的对应关系,生成流表模型;
模型下发模块,用于将所述流表模型下发至开放虚拟交换机;
数据转发模块,用于在所述开放虚拟交换机接收到源虚拟机发送的网络数据流后,基于所述流表模型将所述网络数据流转发至目的虚拟机;其中,所述源虚拟机为与所述开放虚拟交换机相连的多个所述虚拟机中的一个。
13.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-11中任一所述的数据转发方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-11中任一所述的数据转发方法。
CN202110064130.1A 2021-01-18 2021-01-18 一种数据转发方法、装置、设备及介质 Active CN112910776B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110064130.1A CN112910776B (zh) 2021-01-18 2021-01-18 一种数据转发方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110064130.1A CN112910776B (zh) 2021-01-18 2021-01-18 一种数据转发方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN112910776A true CN112910776A (zh) 2021-06-04
CN112910776B CN112910776B (zh) 2022-10-18

Family

ID=76115669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110064130.1A Active CN112910776B (zh) 2021-01-18 2021-01-18 一种数据转发方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN112910776B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115883456A (zh) * 2023-01-31 2023-03-31 天翼云科技有限公司 一种上行出口识别方法、装置及设备、介质和产品

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104283756A (zh) * 2013-07-02 2015-01-14 杭州华三通信技术有限公司 一种实现分布式多租户虚拟网络的方法和装置
CN104394080A (zh) * 2014-11-28 2015-03-04 杭州华三通信技术有限公司 实现安全组功能的方法及装置
CN104486299A (zh) * 2014-11-28 2015-04-01 杭州华三通信技术有限公司 一种acl下发的方法和设备
US20160105471A1 (en) * 2014-10-14 2016-04-14 Midokura Sarl System and method for distributed flow state p2p setup in virtual networks
CN106789667A (zh) * 2016-11-21 2017-05-31 华为技术有限公司 一种数据转发方法、相关设备及系统
CN106909439A (zh) * 2017-02-27 2017-06-30 郑州云海信息技术有限公司 一种虚拟机的迁移控制方法及装置
CN106936715A (zh) * 2015-12-31 2017-07-07 新华三技术有限公司 虚拟机报文控制方法及装置
CN107426348A (zh) * 2017-07-27 2017-12-01 郑州云海信息技术有限公司 一种ip地址的自动化管理方法和系统
EP3327994A1 (en) * 2015-08-25 2018-05-30 New H3C Technologies Co., Ltd. Virtual network management
CN109474627A (zh) * 2018-12-27 2019-03-15 南京优速网络科技有限公司 一种基于sdn的虚拟租户网络隔离方法及系统
CN110730133A (zh) * 2019-10-21 2020-01-24 北京百度网讯科技有限公司 路由通告方法和系统
CN111064649A (zh) * 2019-12-11 2020-04-24 锐捷网络股份有限公司 一种分层端口绑定实现方法、装置、控制设备及存储介质
CN111726305A (zh) * 2020-06-18 2020-09-29 广州市品高软件股份有限公司 一种面向虚拟机的多级流表管控方法及系统
CN111901236A (zh) * 2020-08-05 2020-11-06 烽火通信科技股份有限公司 一种利用动态路由优化openstack云网络的方法及系统

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104283756A (zh) * 2013-07-02 2015-01-14 杭州华三通信技术有限公司 一种实现分布式多租户虚拟网络的方法和装置
US20160105471A1 (en) * 2014-10-14 2016-04-14 Midokura Sarl System and method for distributed flow state p2p setup in virtual networks
CN104394080A (zh) * 2014-11-28 2015-03-04 杭州华三通信技术有限公司 实现安全组功能的方法及装置
CN104486299A (zh) * 2014-11-28 2015-04-01 杭州华三通信技术有限公司 一种acl下发的方法和设备
EP3327994A1 (en) * 2015-08-25 2018-05-30 New H3C Technologies Co., Ltd. Virtual network management
CN106936715A (zh) * 2015-12-31 2017-07-07 新华三技术有限公司 虚拟机报文控制方法及装置
CN106789667A (zh) * 2016-11-21 2017-05-31 华为技术有限公司 一种数据转发方法、相关设备及系统
CN106909439A (zh) * 2017-02-27 2017-06-30 郑州云海信息技术有限公司 一种虚拟机的迁移控制方法及装置
CN107426348A (zh) * 2017-07-27 2017-12-01 郑州云海信息技术有限公司 一种ip地址的自动化管理方法和系统
CN109474627A (zh) * 2018-12-27 2019-03-15 南京优速网络科技有限公司 一种基于sdn的虚拟租户网络隔离方法及系统
CN110730133A (zh) * 2019-10-21 2020-01-24 北京百度网讯科技有限公司 路由通告方法和系统
CN111064649A (zh) * 2019-12-11 2020-04-24 锐捷网络股份有限公司 一种分层端口绑定实现方法、装置、控制设备及存储介质
CN111726305A (zh) * 2020-06-18 2020-09-29 广州市品高软件股份有限公司 一种面向虚拟机的多级流表管控方法及系统
CN111901236A (zh) * 2020-08-05 2020-11-06 烽火通信科技股份有限公司 一种利用动态路由优化openstack云网络的方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
YAOHUA YAN,等: ""Open vSwitch Vxlan performance acceleration in cloud computing data center"", 《2016 5TH INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND NETWORK TECHNOLOGY (ICCSNT)》 *
张俊帅等: "OpenFlow交换机流表转发设计与实现", 《中国计量学院学报》 *
江涛: "" 基于OpenFlow的虚拟交换机的关键技术研究与实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115883456A (zh) * 2023-01-31 2023-03-31 天翼云科技有限公司 一种上行出口识别方法、装置及设备、介质和产品
CN115883456B (zh) * 2023-01-31 2023-06-23 天翼云科技有限公司 一种上行出口识别方法、装置及设备、介质和产品

Also Published As

Publication number Publication date
CN112910776B (zh) 2022-10-18

Similar Documents

Publication Publication Date Title
US10666609B2 (en) Management of domain name systems in a large-scale processing environment
JP5710928B2 (ja) ネットワークシステム、仮想ネットワーク管理方法及びルータ
WO2018040530A1 (zh) 一种确定虚拟机迁移的方法和装置
CN103095546B (zh) 一种处理报文的方法、装置及数据中心网络
CN114172802B (zh) 容器网络配置方法、装置、计算节点、主节点及存储介质
US10554555B2 (en) Hash-based overlay routing architecture for information centric networks
CN107113241B (zh) 路由确定方法、网络配置方法以及相关装置
US20140064093A1 (en) Hashing-based routing table management
CN107547242B (zh) Vm配置信息的获取方法及装置
CN105453492A (zh) 具有第三层分布式路由器功能的交换机集群
JP2015526992A (ja) 通信の方法及びシステム
KR20100021637A (ko) 최적의 dhcp 서버를 찾기 위한 라우터를 동적으로 구성하는 시스템 및 방법
CN102857414A (zh) 一种转发表写入、报文转发方法及装置
CN111010329B (zh) 一种报文传输方法及装置
KR20180103975A (ko) 자원 객체를 관리하는 방법 및 시스템
US9954775B2 (en) Software-defined network (SDN) system using host abstraction, and method for implementing the same
CN107547391A (zh) 一种报文传输方法和装置
WO2024093064A1 (zh) 一种大规模多模态网络中标识管理及优化转发方法和装置
CN108039968B (zh) 网络优化方法、设备及计算机可读存储介质
US10608942B1 (en) Reducing routes based on network traffic utilization
CN114401319B (zh) 一种请求处理方法、装置、服务器及存储介质
CN112910776B (zh) 一种数据转发方法、装置、设备及介质
US9641611B2 (en) Logical interface encoding
US11108854B2 (en) Peer-to-peer network for internet of things resource allocation operation
CN101534255A (zh) 一种实现特定请求定向处理的方法及装置

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
TA01 Transfer of patent application right

Effective date of registration: 20220707

Address after: 100190 1309, 13th floor, building 4, Zijin Digital Park, Haidian District, Beijing

Applicant after: Beijing volcano Engine Technology Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant