CN111817961A - Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置 - Google Patents

Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置 Download PDF

Info

Publication number
CN111817961A
CN111817961A CN202010785582.4A CN202010785582A CN111817961A CN 111817961 A CN111817961 A CN 111817961A CN 202010785582 A CN202010785582 A CN 202010785582A CN 111817961 A CN111817961 A CN 111817961A
Authority
CN
China
Prior art keywords
virtual
flow table
virtual private
private cloud
virtual machine
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
CN202010785582.4A
Other languages
English (en)
Other versions
CN111817961B (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202010785582.4A priority Critical patent/CN111817961B/zh
Priority to PCT/CN2020/118912 priority patent/WO2021139269A1/zh
Publication of CN111817961A publication Critical patent/CN111817961A/zh
Application granted granted Critical
Publication of CN111817961B publication Critical patent/CN111817961B/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/44Distributed 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/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

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

Abstract

本申请公开了一种Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置。该方法包括:在Overlay网络的虚拟私有云内建立虚拟机时,同步在虚拟私有云内针对四种互通类型分别配置流表;在虚拟机的生命周期内,将流表保持在主机内核中;其中,四种互通类型包括同一虚拟私有云内的各虚拟机之间互通的类型、不同虚拟私有云的虚拟机之间互通的类型、虚拟私有云内的虚拟机访问互联网的类型以及虚拟私有云内的虚拟机访问数据中心公共设施的类型;流表为Open vSwitch内核态流表。本申请的方法,针对四种互通类型分别配置流表,配置的流表全部采用内核态流表,避免了大量upcall造成的性能下降;配置的流表伴随虚拟机整个生命周期,可以提供稳定可靠的基于流表的统计。

Description

Overlay网络中基于Open vSwitch内核态流表的分布式路由 方法及装置
技术领域
本申请涉及计算机网络技术领域,具体涉及一种Overlay网络中基于OpenvSwitch内核态流表的分布式路由方法及装置。
背景技术
Overlay指的是在计算机网络技术领域的一种网络架构上叠加的虚拟化技术模式,其大体框架是在对基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其它网络业务分离,并且以基于IP的基础网络技术为主。Open vSwitch(简称OvS)是一个开源的虚拟交换软件,广泛应用于云计算行业,为网络管理员提供虚拟云主机之间和之内的流量可见性与可控性。简而言之,Open vSwitch即开放的OpenFlow交换机。
现有技术中较为常用的是Open vSwitch+ovsDB和openflow的控制结构,依赖OpenvSwitch在用户空间计算流表,然后下发到内核态,或者在流表老化之后下发指令到内核态删除流表。这种技术方案能实现API兼容,流程通用。但是存在以下缺陷:
1.对任何新建立的流,第一个包都需要被转发到用户态进行流表计算,首包处理会有延迟。
2.对大量的新连接的建立,会有大量的包从内核态拷贝到用户态,在计算完流表之后从用户态拷贝会内核态,会造成大量计算资源浪费。极端情况下,大量短连接甚至会造成计算全部的计算能力都在处理upcall流程。
3.在VPC(虚拟私有云,Virtual Private Cloud,简称VPC)网络内,不必要地频繁流表新建、老化流程消耗了过多资源。
4.流表一旦老化删除,其对应的统计项也会消失,对运维和问题跟踪不友好。
发明内容
本申请的目的是提供一种Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
根据本申请实施例的一个方面,提供一种Overlay网络中基于Open vSwitch内核态流表的分布式路由方法,包括:
在Overlay网络的虚拟私有云内建立虚拟机时,同步在所述虚拟私有云内针对四种互通类型分别配置流表;
在所述虚拟机的生命周期内,将所述流表保持在主机内核中;
其中,所述四种互通类型包括同一虚拟私有云内的各虚拟机之间互通的类型、不同虚拟私有云的虚拟机之间互通的类型、虚拟私有云内的虚拟机访问互联网的类型以及虚拟私有云内的虚拟机访问数据中心公共设施的类型;所述流表为Open vSwitch内核态流表。
进一步地,在所述虚拟私有云内针对所述同一虚拟私有云内的各虚拟机之间互通的类型配置流表,包括:
在同一虚拟私有云内,当某虚拟机向其他虚拟机发送数据时,对应所述其他虚拟机中的每一个分别配置一条第一流表;
所述某虚拟机配置一条第二流表以接收所述其他虚拟机中的每一个所发送的数据。
进一步地,所述在所述虚拟私有云内针对所述同一虚拟私有云内的各虚拟机之间互通的类型配置流表,还包括:在创建所述第一虚拟机时将所述第一流表和所述第二流表同步下发到所述主机内核的Open vSwitch数据路径上。
进一步地,在所述虚拟私有云内针对所述不同虚拟私有云的虚拟机之间的互通类型配置流表,包括:
检测不同虚拟私有云之间是否存在重叠的虚拟机IP地址;
若不存在,则直接使用流表来实现一虚拟私有云的虚拟机与另一虚拟私有云的虚拟机之间的互通;
若存在,则使用网络地址转换技术对所述重叠的虚拟机IP地址进行映射。
进一步地,所述使用网络地址转换技术对所述重叠的虚拟机IP地址进行映射,包括:
引入支持虚拟扩展局域网的网络地址转换网关,并配置虚拟私有云的虚拟机IP地址的映射规则。
进一步地,在所述虚拟私有云内针对虚拟私有云内的虚拟机访问互联网的类型配置流表,包括:
所述虚拟私有云内的虚拟机使用固定配置的流表访问网络地址转换网关,通过所述网络地址转换网关访问互联网。
进一步地,所述方法还包括:在配置流表时,在所述流表中设置匹配项,所述匹配项用于对所述虚拟机所发送和/或所接收的数据包进行校验。
根据本申请实施例的另一个方面,提供一种Overlay网络中基于Open vSwitch内核态流表的分布式路由装置,包括:
第一模块,用于在Overlay网络的虚拟私有云内建立虚拟机时,同步在所述虚拟私有云内针对四种互通类型配置流表;
第二模块,用于在所述虚拟机的生命周期内,将所述流表保持在主机内核中;
其中,所述四种互通类型包括同一虚拟私有云内的各虚拟机之间互通的类型、不同虚拟私有云的虚拟机之间互通的类型、虚拟私有云内的虚拟机访问互联网的类型以及虚拟私有云内的虚拟机访问数据中心公共设施的类型;所述流表为Open vSwitch内核态流表。
根据本申请实施例的另一个方面,提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现所述的Overlay网络中基于Open vSwitch内核态流表的分布式路由方法。
根据本申请实施例的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现所述的Overlay网络中基于Open vSwitch内核态流表的分布式路由方法。
本申请实施例的其中一个方面提供的技术方案可以包括以下有益效果:
本申请实施例提供的Overlay网络中基于Open vSwitch内核态流表的分布式路由方法,针对四种互通类型分别配置流表,配置的流表全部采用内核态流表,避免了大量upcall造成的性能下降;配置的流表伴随虚拟机整个生命周期,可以提供稳定可靠的基于流表的统计。
本申请的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者,部分特征和优点可以从说明书中推知或毫无疑义地确定,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请的一个实施例的Overlay网络中基于Open vSwitch内核态流表的分布式路由方法流程图;
图2示出了本申请的一个实施例中在虚拟私有云内针对同一虚拟私有云内的各虚拟机之间互通的类型配置流表的步骤流程图;
图3示出了本申请的一个实施例的在虚拟私有云内针对不同虚拟私有云的虚拟机之间的互通类型配置流表的步骤流程图;
图4示出了本申请的一个实施例的Overlay网络中基于Open vSwitch内核态流表的分布式路由装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本申请做进一步说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
在Overlay网络中,虚拟私有云(VPC)的虚拟机的互通类型可以分为四类:
1.同一虚拟私有云内的各虚拟机之间互通的类型;
2.不同虚拟私有云的虚拟机之间互通的类型;
3.虚拟私有云内的虚拟机访问互联网的类型;
4.虚拟私有云内的虚拟机访问数据中心公共设施的类型。
如图1所示,本申请的一个实施例提供了一种Overlay网络中基于Open vSwitch内核态流表的分布式路由方法,包括:
S10、在Overlay网络的虚拟私有云内建立虚拟机时,同步在所述虚拟私有云内针对四种互通类型分别配置流表;
S20、在所述虚拟机的生命周期内,将所述流表保持在主机内核中;
其中,所述四种互通类型包括同一虚拟私有云内的各虚拟机之间互通的类型、不同虚拟私有云的虚拟机之间互通的类型、虚拟私有云内的虚拟机访问互联网的类型以及虚拟私有云内的虚拟机访问数据中心公共设施的类型;所述流表为Open vSwitch内核态流表。
Open vSwitch(简称OVS)是一个实现了OpenFlow的虚拟交换机。
在所述虚拟私有云内针对四种互通类型分别配置流表,包括:
A、在所述虚拟私有云内针对所述同一虚拟私有云内的各虚拟机之间互通的类型配置流表;
B、在所述虚拟私有云内针对所述不同虚拟私有云的虚拟机之间的互通类型配置流表;
C、在所述虚拟私有云内针对虚拟私有云内的虚拟机访问互联网的类型配置流表;
D、在所述虚拟私有云内针对虚拟私有云内的虚拟机访问数据中心公共设施的类型配置流表。其中,A、B、C和D不代表步骤的执行先后顺序。
Open vSwitch提供了一个命令ovs-dpctl,可以直接向主机内核(kernel)数据路径(datapath)配置流表,流表的样式可以为:
ovs-dpctl add-flow vpc-dp
"in_port({vma_veth_id}),eth(src={vma_mac},dst={vmb_mac}),eth_type(0x0800),ipv4(src={vma_ip},dst={vmb_ip})"
"set(tunnel(tun_id={vpc_vni},src={host_1_ip},dst={host_2_ip},ttl=128,tp_dst=4789,flags(df|key))),{vxlan_port_id}"
在某些实施方式中,虚拟私有云的部署,包括:
为物理管理网口创建OVS网桥作为OVS管理网桥,并分别为各个物理工作网口创建OVS网桥作为OVS工作网桥;其中,物理网口与OVS网桥是一一对应的;
在创建虚拟机(VM)时,将为虚拟机(VM)添加的虚拟网口中,与物理管理网口对应的虚拟管理网口与OVS管理网桥关联,将与物理工作网口对应的虚拟工作网口与OVS工作网桥关联;
通过OVS管理网桥为目标OVS工作网桥设置数据下发规则;该数据下发规则用于指示目标OVS网桥将目标物理工作网口接收的多个用户的数据分别下发至对应用户的虚拟机(VM)的目标虚拟网口;其中,目标物理工作网口可以为物理工作网口中的任意一个,目标OVS工作网桥为为目标物理工作网口创建的OVS网桥,目标虚拟网口为与目标OVS网桥关联的虚拟工作网口。
同一虚拟私有云内的各虚拟机之间互通的类型
大部分情况下,在虚拟私有云以及该虚拟私有云内的虚拟机全部建立之后,就不会再有太多架构变动。例如,在同一虚拟私有云中包括四个虚拟机VM-A、VM-B、VM-C和VM-D,以虚拟机VM-A视角为例:
VM-A向VM-B、VM-C、VM-D发送数据,只需要对应VM-B、VM-C、VM-D三个虚拟机分别配置一条流表即可,流表样式如上文所述流表的样式。
VM-A接收VM-B、VM-C、VM-D发送来的数据时只需要一条流表,流表样式如下:
ovs-dpctl add-flow vpc-dp
"tunnel(tun_id={vpc_vni},dst={host_vma_ip},flags(-df-csum+key),ttl=64),in_port({vxlan_port_id}),eth(dst={vm_mac}),eth_type(0x0800),ipv4(dst={vm_ip})"{vma_veth_id}
以上举例可以看到,VM-A对同一VPC内其他VM发送的流表以及VM-A接收同一VPC内其他VM的流表是可以确定的,这些流表可以在VM-A被创建的时候同步被下发到主机(HOST-01)内核(kernel)Open vSwitch数据路径(datapath)上,而不需要在实际流量产生的时候才下发流表,从而可以减少首包延迟,并避免upcall。
在某些实施方式中,虚拟机(VM)下发流表的步骤包括:
1)在接收到来自虚拟交换机的请求下发第一流表项的报文之后,根据该报文中的IP地址和MAC地址,查找预设置的第一任务优先级列表;
2)若该第一任务优先级列表中无匹配表项,则根据该报文中的优先级字段信息,查找预设置的第二任务优先级列表。
3)根据步骤2)得到的查找结果,获取该报文对应的任务优先级参数。
4)根据步骤3)得到的任务优先级参数,并设置对应的标准流表项优先级。
5)向该虚拟交换机下发该第一流表项。
6)如果接收到来自该虚拟交换机的第一流表项的下发流表溢出失败消息,则将该标准流表项优先级与其保存的已成功下发到虚拟交换机上的流表项的优先级进行比较;根据比较结果,从优先级低于所述标准流表项优先级的流表项中,选择优先级最低的流表项作为第二流表项。
7)通知该虚拟交换机删除第二流表项后,重新向该虚拟交换机下发第一流表项。
在某些实施方式中,如图2所示,在虚拟私有云内针对同一虚拟私有云内的各虚拟机之间互通的类型配置流表,包括:
A1、在同一虚拟私有云内,当某虚拟机向其他虚拟机发送数据时,对应所述其他虚拟机中的每一个分别配置一条第一流表;
A2、所述某虚拟机配置一条第二流表以接收所述其他虚拟机中的每一个所发送的数据。
在某些实施方式中,所述在所述虚拟私有云内针对所述同一虚拟私有云内的各虚拟机之间互通的类型配置流表,还包括:A3、在创建所述第一虚拟机时将所述第一流表和所述第二流表同步下发到所述主机内核的Open vSwitch数据路径上。
不同虚拟私有云的虚拟机之间互通的类型
检测不同虚拟私有云之间是否存在重叠的虚拟机IP地址。如果两个虚拟私有云之间不存在重叠的虚拟机IP地址,则仍可以直接使用流表来实现从一个虚拟私有云的虚拟机与另一个虚拟私有云的虚拟机之间的互通。
从VPC1-VM1到VPC2-VM2的互通,流表如下
ovs-dpctl add-flow vpc-dp
"in_port({vpc1_vm1_port_id}),eth(src={vpc1_vm1_mac},dst={vpc2_vm2_mac}),eth_type(0x0800),ipv4(src={vpc1_vm1_ip},dst={vpc2_vm2_ip})"
"set(tunnel(tun_id={vpc2_vni},src={host_vm1_ip},dst={host_vm2_ip},ttl=128,tp_dst=4789,flags(df|key))),{vxlan_port_id}"
从VPC2-VM2到VPC1-VM1的互通,流表如下
ovs-dpctl add-flow vpc-dp
"in_port({vpc2_vm2_port_id}),eth(src={vpc2_vm2_mac},dst={vpc1_vm1_mac}),eth_type(0x0800),ipv4(src={vpc2_vm2_ip},dst={vpc1_vm1_ip})"
"set(tunnel(tun_id={vpc1_vni},src={host_vm2_ip},dst={host_vm1_ip},ttl=128,tp_dst=4789,flags(df|key))),{vxlan_port_id}"
如果不同的虚拟私有云之间具有相同的虚拟机IP(Internet Protocol,网际互连协议)地址,则使用NAT(Network Address Translation,网络地址转换)技术对不同VPC之间的虚拟机的相同IP地址进行映射。
使用NAT(Network Address Translation,网络地址转换)技术对不同VPC之间的虚拟机的相同IP地址进行映射,包括:引入支持VXLAN(Virtual eXtensible Local AreaNetwork,虚拟扩展局域网)的NAT网关,并配置虚拟私有云的虚拟机IP地址的映射规则,例如使用IP TABLES。
在某些实施方式中,如图3所示,在所述虚拟私有云内针对所述不同虚拟私有云的虚拟机之间的互通类型配置流表,包括:
B1、检测不同虚拟私有云之间是否存在重叠的虚拟机IP地址;
B2、若不存在,则直接使用流表来实现一虚拟私有云的虚拟机与另一虚拟私有云的虚拟机之间的互通;
B3、若存在,则使用网络地址转换技术对所述重叠的虚拟机IP地址进行映射。
所述使用网络地址转换技术对所述重叠的虚拟机IP地址进行映射,包括:
引入支持虚拟扩展局域网的网络地址转换网关,并配置虚拟私有云的虚拟机IP地址的映射规则。
虚拟私有云内的虚拟机访问互联网的类型
虚拟私有云内的虚拟机访问互联网需要使用VPC-VM映射到公网IP的NAT网关。VPC-VM到该NAT网关也使用固定配置的流表:
ovs-dpctl add-flow vpc-dp
"in_port({vm_veth_id}),eth(dst=gateway_mac),eth_type(0x0800),ipv4()"
"set(tunnel(tun_id={vpc_vni},src={host_vm_ip},dst={nat_gw_vtep},ttl=128,tp_dst=4789,flags(df|key))),{vxlan_port_id}"
在某些实施方式中,在所述虚拟私有云内针对虚拟私有云内的虚拟机访问互联网的类型配置流表,包括:
所述虚拟私有云内的虚拟机使用固定配置的流表访问网络地址转换网关,通过所述网络地址转换网关访问互联网。
虚拟私有云内的虚拟机访问数据中心公共设施的类型
数据中心公共设施例如可以为公共DNS、DNS PROXY、公共数据库、HTTP PROXY、软件包镜像或公共网络存储等。数据中心公共设施的IP地址通常配置为一个固定的IP段,则VPC-VM到数据中心公共设施也使用对应于该IP段固定配置的流表;虚拟私有云内的虚拟机VPC-VM访问数据中心公共设施时,使用的流表为
ovs-dpctl add-flow vpc-dp
"in_port({vm_veth_id}),eth(src={vm_mac}),eth_type(0x0800),ipv4(src={vm_ip},dst={comm_zone_cidr/mask})"
"set(tunnel(tun_id={vpc_vni},src={host_vm_ip},dst={nat_gw_vtep},ttl=128,tp_dst=4789,flags(df|key))),{vxlan_port_id}"
在某些实施方式中,在所述虚拟私有云内针对虚拟私有云内的虚拟机访问数据中心公共设施的类型配置流表,包括:
所述虚拟私有云内的虚拟机通过对应于固定IP段配置的流表访问数据中心公共设施;其中,所述固定IP段为所述数据中心公共设施的IP地址。
在虚拟私有云内建立虚拟机时,可同步在虚拟私有云内配置上述4类流表,在虚拟机生命周期内,这些流表可保持在主机的内核中,其对应的统计信息可由运维平台进行持续采集和分析,如:
in_port(4),eth(src=88:88:11:11:00:03,dst=88:88:11:11:00:02),eth_type(0x0800),ipv4(src=28.8.0.3,dst=28.8.0.2),packets:2190,bytes:214892,used:52234.782s,actions:3
从整体上看,一个虚拟机VM-A上线,在对整个VPC内所有虚拟机都可达的情况下,需要对该虚拟机的主机做上述的4类流表配置;也需要对有该VPC其他虚拟机的主机进行流表配置,即FLOW:VM-x→VM-a。
而如果只希望VM-A在本VPC内只访问本网段的其他虚拟机,则只需要添加VM-A在本子网内的互通流表。
在某些实施方式中,所述方法还包括:在配置流表时,在所述流表中设置匹配项,所述匹配项用于对所述虚拟机所发送和/或所接收的数据包进行校验。
在流表设计上,在流表中加入更多匹配项,例如SOURCE MAC,SOURCE IP,DST MAC,DST IP等,对虚拟机发送和接收的数据包做尽可能多的校验,也可以给overlay网络在防火墙之外提供额外的安全性。
如图4所示,本申请的另一个实施例提供了一种Overlay网络中基于Open vSwitch内核态流表的分布式路由装置,包括:
第一模块,用于在Overlay网络的虚拟私有云内建立虚拟机时,同步在所述虚拟私有云内针对四种互通类型配置流表;
第二模块,用于在所述虚拟机的生命周期内,将所述流表保持在主机内核中;
其中,所述四种互通类型包括同一虚拟私有云内的各虚拟机之间互通的类型、不同虚拟私有云的虚拟机之间互通的类型、虚拟私有云内的虚拟机访问互联网的类型以及虚拟私有云内的虚拟机访问数据中心公共设施的类型;所述流表为Open vSwitch内核态流表。
本申请的另一个实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现所述的Overlay网络中基于Open vSwitch内核态流表的分布式路由方法。
本申请的另一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现所述的Overlay网络中基于Open vSwitch内核态流表的分布式路由方法。
本申请实施例提供的Overlay网络中基于Open vSwitch内核态流表的分布式路由方法,针对四种互通类型分别配置流表,配置的流表全部采用内核态流表,避免了大量upcall造成的性能下降;配置的流表伴随虚拟机整个生命周期,可以提供稳定可靠的基于流表的统计;该方法可同时应用于虚拟机和容器网络,提供一致性的网络运维体验和架构;在网络控制面的工作负荷稳定可预测,没有openstack等方案中存在的在短连接下的性能颠簸问题;使用流表做数据包分发避免了集中式路由的网络瓶颈和单点故障的可能性,降低了网络设计难度;在流表设计上,在流表中加入更多匹配项,能进行更多的校验,增强了安全性。
需要说明的是:
术语“模块”并非意图受限于特定物理形式。取决于具体应用,模块可以实现为硬件、固件、软件和/或其组合。此外,不同的模块可以共享公共组件或甚至由相同组件实现。不同模块之间可以存在或不存在清楚的界限。
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述实施例仅表达了本申请的实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种Overlay网络中基于Open vSwitch内核态流表的分布式路由方法,其特征在于,包括:
在Overlay网络的虚拟私有云内建立虚拟机时,同步在所述虚拟私有云内针对四种互通类型分别配置流表;
在所述虚拟机的生命周期内,将所述流表保持在主机内核中;
其中,所述四种互通类型包括同一虚拟私有云内的各虚拟机之间互通的类型、不同虚拟私有云的虚拟机之间互通的类型、虚拟私有云内的虚拟机访问互联网的类型以及虚拟私有云内的虚拟机访问数据中心公共设施的类型;所述流表为Open vSwitch内核态流表。
2.根据权利要求1所述的方法,其特征在于,在所述虚拟私有云内针对所述同一虚拟私有云内的各虚拟机之间互通的类型配置流表,包括:
在同一虚拟私有云内,当某虚拟机向其他虚拟机发送数据时,对应所述其他虚拟机中的每一个分别配置一条第一流表;
所述某虚拟机配置一条第二流表以接收所述其他虚拟机中的每一个所发送的数据。
3.根据权利要求2所述的方法,其特征在于,所述在所述虚拟私有云内针对所述同一虚拟私有云内的各虚拟机之间互通的类型配置流表,还包括:在创建所述第一虚拟机时将所述第一流表和所述第二流表同步下发到所述主机内核的Open vSwitch数据路径上。
4.根据权利要求1所述的方法,其特征在于,在所述虚拟私有云内针对所述不同虚拟私有云的虚拟机之间的互通类型配置流表,包括:
检测不同虚拟私有云之间是否存在重叠的虚拟机IP地址;
若不存在,则直接使用流表来实现一虚拟私有云的虚拟机与另一虚拟私有云的虚拟机之间的互通;
若存在,则使用网络地址转换技术对所述重叠的虚拟机IP地址进行映射。
5.根据权利要求4所述的方法,其特征在于,所述使用网络地址转换技术对所述重叠的虚拟机IP地址进行映射,包括:
引入支持虚拟扩展局域网的网络地址转换网关,并配置虚拟私有云的虚拟机IP地址的映射规则。
6.根据权利要求1所述的方法,其特征在于,在所述虚拟私有云内针对虚拟私有云内的虚拟机访问互联网的类型配置流表,包括:
所述虚拟私有云内的虚拟机使用固定配置的流表访问网络地址转换网关,通过所述网络地址转换网关访问互联网。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:在配置流表时,在所述流表中设置匹配项,所述匹配项用于对所述虚拟机所发送和/或所接收的数据包进行校验。
8.一种Overlay网络中基于Open vSwitch内核态流表的分布式路由装置,其特征在于,包括:
第一模块,用于在Overlay网络的虚拟私有云内建立虚拟机时,同步在所述虚拟私有云内针对四种互通类型配置流表;
第二模块,用于在所述虚拟机的生命周期内,将所述流表保持在主机内核中;
其中,所述四种互通类型包括同一虚拟私有云内的各虚拟机之间互通的类型、不同虚拟私有云的虚拟机之间互通的类型、虚拟私有云内的虚拟机访问互联网的类型以及虚拟私有云内的虚拟机访问数据中心公共设施的类型;所述流表为Open vSwitch内核态流表。
9.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1-7中任一所述的Overlay网络中基于Open vSwitch内核态流表的分布式路由方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以实现如权利要求1-7中任一所述的Overlay网络中基于Open vSwitch内核态流表的分布式路由方法。
CN202010785582.4A 2020-08-06 2020-08-06 Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置 Active CN111817961B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010785582.4A CN111817961B (zh) 2020-08-06 2020-08-06 Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置
PCT/CN2020/118912 WO2021139269A1 (zh) 2020-08-06 2020-09-29 Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010785582.4A CN111817961B (zh) 2020-08-06 2020-08-06 Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置

Publications (2)

Publication Number Publication Date
CN111817961A true CN111817961A (zh) 2020-10-23
CN111817961B CN111817961B (zh) 2022-02-08

Family

ID=72863653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010785582.4A Active CN111817961B (zh) 2020-08-06 2020-08-06 Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置

Country Status (2)

Country Link
CN (1) CN111817961B (zh)
WO (1) WO2021139269A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113595905A (zh) * 2021-07-23 2021-11-02 平安科技(深圳)有限公司 分布式路由方法、装置、设备及存储介质
CN113612688A (zh) * 2021-07-14 2021-11-05 曙光信息产业(北京)有限公司 分布式软件定义网络控制系统及其构建方法
CN115002028A (zh) * 2022-04-30 2022-09-02 济南浪潮数据技术有限公司 一种报文处理方法、装置及介质

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113783765B (zh) * 2021-08-10 2023-01-06 济南浪潮数据技术有限公司 一种实现云内网和云外网互通的方法、系统、设备和介质
CN113472598B (zh) * 2021-08-31 2022-02-25 阿里云计算有限公司 云服务方法、电子设备和计算机可读存储介质
CN113904986B (zh) * 2021-09-29 2022-11-18 烽火通信科技股份有限公司 vxlan虚拟网络和vlan网络二层互通方法及设备
CN114172789B (zh) * 2021-12-07 2023-11-10 北京天融信网络安全技术有限公司 虚拟设备链路探测方法、装置、设备及存储介质
CN115550309A (zh) * 2022-08-29 2022-12-30 紫光云技术有限公司 一种解决vpc互通地址重叠的方法
CN115412512B (zh) * 2022-10-31 2023-03-24 浙江九州云信息科技有限公司 一种基于IPv6的多云跨网互通方法及装置
CN116723162B (zh) * 2023-08-10 2023-11-03 浪潮电子信息产业股份有限公司 一种网络首包处理方法、系统、装置、介质及异构设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102497434A (zh) * 2011-12-16 2012-06-13 中国科学院计算技术研究所 内核态虚拟网络设备的建立方法、及其包发送和接收方法
US20140226661A1 (en) * 2013-02-11 2014-08-14 Cisco Technology, Inc. Binary compatible extension architecture in an openflow compliant network environment
CN104601468A (zh) * 2015-01-13 2015-05-06 杭州华三通信技术有限公司 报文转发方法和设备
US20160315880A1 (en) * 2015-04-24 2016-10-27 Alcatel-Lucent Usa, Inc. User-defined flexible traffic monitoring in an sdn switch
CN108881069A (zh) * 2018-06-26 2018-11-23 新华三云计算技术有限公司 多播流量的转发方法、装置和服务器
CN111130975A (zh) * 2018-11-01 2020-05-08 深信服科技股份有限公司 一种混合云网络互通系统及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105591863B (zh) * 2014-10-20 2019-11-26 中兴通讯股份有限公司 一种实现虚拟私有云网络与外部网络互通的方法和装置
CN107276783B (zh) * 2016-04-08 2022-05-20 中兴通讯股份有限公司 一种实现虚拟机统一管理及互通的方法、装置和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102497434A (zh) * 2011-12-16 2012-06-13 中国科学院计算技术研究所 内核态虚拟网络设备的建立方法、及其包发送和接收方法
US20140226661A1 (en) * 2013-02-11 2014-08-14 Cisco Technology, Inc. Binary compatible extension architecture in an openflow compliant network environment
CN104601468A (zh) * 2015-01-13 2015-05-06 杭州华三通信技术有限公司 报文转发方法和设备
US20160315880A1 (en) * 2015-04-24 2016-10-27 Alcatel-Lucent Usa, Inc. User-defined flexible traffic monitoring in an sdn switch
WO2016172066A1 (en) * 2015-04-24 2016-10-27 Alcatel Lucent User-defined flexible traffic monitoring in an sdn switch
CN108881069A (zh) * 2018-06-26 2018-11-23 新华三云计算技术有限公司 多播流量的转发方法、装置和服务器
CN111130975A (zh) * 2018-11-01 2020-05-08 深信服科技股份有限公司 一种混合云网络互通系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王洋: "基于OVS的网络流量统计分析系统的设计与实现", 《CNKI优秀硕士论文》 *
陆世亮 等: "基于内核的POF交换机设计与实现", 《电子技术》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113612688A (zh) * 2021-07-14 2021-11-05 曙光信息产业(北京)有限公司 分布式软件定义网络控制系统及其构建方法
CN113612688B (zh) * 2021-07-14 2023-03-24 曙光信息产业(北京)有限公司 分布式软件定义网络控制系统及其构建方法
CN113595905A (zh) * 2021-07-23 2021-11-02 平安科技(深圳)有限公司 分布式路由方法、装置、设备及存储介质
WO2023000630A1 (zh) * 2021-07-23 2023-01-26 平安科技(深圳)有限公司 分布式路由方法、装置、设备及存储介质
CN115002028A (zh) * 2022-04-30 2022-09-02 济南浪潮数据技术有限公司 一种报文处理方法、装置及介质
CN115002028B (zh) * 2022-04-30 2024-02-13 济南浪潮数据技术有限公司 一种报文处理方法、装置及介质

Also Published As

Publication number Publication date
WO2021139269A1 (zh) 2021-07-15
CN111817961B (zh) 2022-02-08

Similar Documents

Publication Publication Date Title
CN111817961B (zh) Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置
CN113556275B (zh) 计算方法、计算装置和计算机可读存储介质
US10911398B2 (en) Packet generation method based on server cluster and load balancer
US10742690B2 (en) Scalable policy management for virtual networks
US20220377045A1 (en) Network virtualization of containers in computing systems
US11418546B1 (en) Scalable port range management for security policies
US9602636B1 (en) Stateless packet segmentation and processing
JP6087922B2 (ja) 通信制御方法及びゲートウェイ
US8959611B1 (en) Secure packet management for bare metal access
US20150355934A1 (en) Method for generating configuration information, and network control unit
US11509581B2 (en) Flow-based local egress in a multisite datacenter
US9112769B1 (en) Programatically provisioning virtual networks
CN114338606B (zh) 一种公有云的网络配置方法及相关设备
CN114301868B (zh) 快速生成虚拟容器浮动ip的方法及网络直通的方法和装置
US10862850B2 (en) Network-address-to-identifier translation in virtualized computing environments
CN112003794B (zh) 一种浮动ip限流方法、系统、终端及存储介质
CN114124714A (zh) 一种多层级网络部署方法、装置、设备及存储介质
CN112968879B (zh) 一种实现防火墙管理的方法及设备
JP2015012581A (ja) 通信システム、管理装置、管理方法、および、管理プログラム
JP5952229B2 (ja) 管理装置、経路情報生成方法および経路情報生成プログラム
CN111756651A (zh) 一种流量传输方法、装置、设备、介质
Han et al. High-Performance and Low-Cost VPP Gateway for Virtual Cloud Networks
CN115604167A (zh) 一种公有云mac地址学习优化方法

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
GR01 Patent grant
GR01 Patent grant