流量转发设备和流量转发方法
文献发布时间:2024-04-18 19:58:21
技术领域
本发明涉及通信技术领域,特别是指一种流量转发设备和流量转发方法。
背景技术
随着云计算技术的快速发展,云计算平台为用户提供了大量的计算资源和网络资源。虚拟化技术是云计算的核心技术之一,可以实现对物理资源的有效利用和隔离。然而,在传统的虚拟化网络环境中,网络性能存在较大的瓶颈,主要表面为数据传输延迟高、吞吐量低等问题。
单根输入输出虚拟化(Single Root I/O Virtualization,SR-IOV)是一种输入输出(Input/Output,I/O)虚拟化技术,可以实现对硬件资源的共享和虚拟化。通过SR-IOV虚拟化技术,虚拟机可以直接访问物理网卡资源,从而提高网络性能。但是现有技术中,基于SR-IOV虚拟化技术的网络加速方法仍然具有一定的局限性,比如,通过智能网卡来实现虚拟化网络的加速,但是智能网卡成本高,并且涉及硬件更换,不利于现有环境的改造;还有通过使用网卡的SR-IOV功能来实现网络技术加速,但是现有的使用网卡的SR-IOV功能进行网络技术加速是通过破坏原有的虚拟化网络结构来实现的,流量无法受到虚拟化网络的功能控制。
发明内容
本发明的目的是提供一种流量转发设备和流量转发方法,用以解决现有的虚拟化网络结构改造困难或流量不受控的问题。
为解决上述技术问题,本发明实施例提供如下技术方案:
本发明实施例提供一种流量转发设备,包括:
虚拟交换机OVS、至少一个虚拟机和具有单根输入输出虚拟化SR-IOV功能的智能网卡;
所述智能网卡包括第一虚拟功能VF口、第二VF口和至少一个第三VF口;
第一VF口、所述第二VF口分别与所述OVS连接,一个第三VF口与一个所述虚拟机连接。
可选地,所述第一VF口的第一虚拟局域网vlan号用于指示所述第一VF口为所述智能网卡的出口。
可选地,所述第二VF口为trunk口,所述第二VF口的第一媒体介入控制mac地址为:FE:FF:FF:FF:FF:FF。
可选地,所述至少一个第三VF口中每一第三VF口的第二vlan号按照预设顺序由1024依次递增,每一所述第三VF口的第二mac地址为:00:00:00:00:00:01。
可选地,第一VF口和所述第二VF口的驱动为vfio-pci,所述第一VF口与所述OVS中的br-phy网桥连接,所述第二VF口与所述OVS中的br-int网桥连接。
本发明实施例还提供一种流量转发方法,应用于如上中任一项所述的流量转发设备,所述方法包括:
至少一个虚拟机中的目标虚拟机的目标流量经过与所述目标虚拟机连接的第三虚拟功能VF口进入所述智能网卡;
所述智能网卡将所述目标流量转发至所述第二VF口,所述目标流量经过所述第二VF口进入虚拟交换机OVS;
所述OVS将所述目标流量转发至所述第一VF口,所述目标流量经过所述第一VF口进入所述智能网卡;
所述智能网卡将所述目标流量转发至物理功能PF口。
可选地,至少一个虚拟机中的目标虚拟机的目标流量经过与所述目标虚拟机连接的第三虚拟功能VF口进入所述智能网卡,包括:
所述目标流量经过所述第三VF口,所述智能网卡为所述目标流量添加所述第三VF口对应的第二vlan号和所述第三VF口对应的第二媒体介入控制mac地址;
所述目标流量进入所述智能网卡。
可选地,所述智能网卡将所述目标流量转发至所述第二VF口,包括:
所述智能网卡通过二层交换功能将所述目标流量转发至所述第二VF口;
所述智能网卡将所述目标流量转发至物理功能PF口,包括:
所述智能网卡通过二层交换功能所述目标流量转发至PF口。
可选地,所述目标流量经过所述第二VF口进入虚拟交换机OVS,包括:
所述目标流量经过所述第二VF口进入所述OVS的br-int网桥。
可选地,所述OVS将所述目标流量转发至所述第一VF口,包括:
所述OVS根据所述目标流量对应的第二vlan号和第二mac地址,确定所述目标流量由所述第三VF口进入所述智能网卡;
所述OVS根据所述第三VF口,将所述目标流量转发至所述OVS中的br-phy网桥;
所述目标流量经过所述br-phy网桥至所述第一VF口。
本发明的上述技术方案的有益效果如下:
本发明方案提供的流量转发设备,包括:虚拟交换机OVS、至少一个虚拟机和具有单根输入输出虚拟化SR-IOV功能的智能网卡,其中,所述智能网卡包括第一虚拟功能VF口、第二VF口和至少一个第三VF口,第一VF口、所述第二VF口分别与所述OVS连接,一个第三VF口与一个所述虚拟机连接,本发明提供的流量转发设备有效利用智能网卡的SR-IOV功能,无需更换智能网卡,改造简单,且未破坏现有的虚拟化网络结构,保证流量仍受到虚拟化网络控制。
附图说明
图1为本发明提供的虚拟化网络结构及流量路径示意图之一;
图2为本发明提供的虚拟化网络结构及流量路径示意图之二;
图3为本发明提供的虚拟化网络结构及流量路径示意图之三;
图4为本发明实施例提供的流量转发设备的结构示意图;
图5为本发明实施例提供的流量转发方法的流程图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”、“在一实施例中”或“在一可选实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常可互换使用。
在本申请所提供的实施例中,应理解,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
为了方便理解,在进行本发明具体实施方式的说明之前,首先进行说明如下:
以neutron openvswitch方案为例,虚拟化网络结构及流量路径如图1所示。
物理机中包括两个虚拟机,分别为虚拟机1和虚拟机2,还包括网卡和虚拟交换机(Open vSwitch,OVS),其中,虚拟机1和虚拟机2分别通过数据平面开发套件(Data PlaneDevelopment Kit,dpdk)组件和虚拟交换机OVS连接,OVS中包括br-int网桥和br-phy网桥,br-phy网桥通过dpdk组件和网卡连接。虚拟机1的流量经过br-int网桥、br-phy网桥进入网卡后经由网卡出物理机。
现有技术对SR-IOV功能的利用主要分为两类:
第一类是绕过原有虚拟化网络结构,利用SR-IOV功能来使用网卡硬件能力加速虚拟化资源。但此时流量未经过虚拟化网络功能的处理,不受控制。该虚拟化网络结构及流量路径如图2所示。
物理机包括两个虚拟机,分别为虚拟机1和虚拟机2、SR-IOV网卡(具有SR-IOV功能的智能网卡),其中,虚拟机1与SR-IOV网卡的VF 0口连接,虚拟机2与SR-IOV网卡的VF 1口连接,SR-IOV网卡具有二层交换机功能,虚拟机1的流量经由VF 0口进入SR-IOV网卡,二层交换机功能将流量转发至PF口流出SR-IOV网卡。
第二类是利用智能网卡功能,将原有的虚拟机网络功能卸载至智能网卡内。但智能网卡成本高,涉及硬件更换,不利于现有环境的改造。该虚拟化网络结构及流量路径如图3所示。
物理机包括两个虚拟机,分别为虚拟机1和虚拟机2,还包括智能网卡和OVS,其中,虚拟机1与SR-IOV网卡的VF 0口连接,虚拟机2与SR-IOV网卡的VF 1口连接,虚拟机1的流量经由VF 0口进入SR-IOV网卡,之后流量进入OVS后转发至PF口流出SR-IOV网卡。
如图4所示,本发明实施例提供一种流量转发设备(即物理机),包括:
虚拟交换机OVS、至少一个虚拟机和具有单根输入输出虚拟化SR-IOV功能的智能网卡(即图4中的SR-IOV网卡),本发明实施例中,以两个虚拟机为例进行说明,分别为虚拟机1和虚拟机2。SR-IOV网卡具有二层交换功能(即图4中的二层交换机)。
所述智能网卡包括第一虚拟功能(Virtual Function,VF)口、第二VF口和至少一个第三VF口,其中,第一VF口、所述第二VF口分别与所述OVS连接,一个第三VF口与一个所述虚拟机连接。
具体地,在本实施例中,开启智能网卡的SR-IOV功能,利用SR-IOV网卡的二层交换功能(需要支持trunk口功能)划出两个VF口用于对接原有虚拟化网络结构,即通过第一VF口(即图4中的VF 0)和第二VF口(即图4中的VF 1)分别与OVS连接,旨在利用SR-IOV功能硬件加速的同时接入原有虚拟化网络。所述智能网卡包括两个第三VF口,分别为图4中的VF 2和VF 3,VF 2口和虚拟机1连接,VF 3口和虚拟机2连接。
在一可选实施例中,所述第一VF口的第一虚拟局域网(Virtual Local AreaNetwork,vlan)号用于指示所述第一VF口为所述智能网卡的出口,即在本可选实施例中配置VF 0口vlan为网卡出口vlan号,保证VF 0口流量可出物理机。
在一可选实施例中,所述第二VF口为trunk口,所述第二VF口的第一媒体介入控制(Medium Access Control,mac)地址为:FE:FF:FF:FF:FF:FF,即在本可选实施例中配置VF1口为trunk口,同时配置mac地址为FE:FF:FF:FF:FF:FF。(trunk口保证可以收到其他VF口流量包,配置mac地址用于标识流量)。
在一可选实施例中,所述至少一个第三VF口中每一第三VF口的第二vlan号按照预设顺序由1024依次递增,每一所述第三VF口的第二mac地址为:00:00:00:00:00:01,即在本可选实施例中,配置剩余的VF口vlan号为1024递增,配置mac地址为00:00:00:00:00:01(vlan号递增用于区分VF口,配置mac地址用于标识流量为VF口)。
在一可选实施例中,第一VF口和所述第二VF口的驱动为vfio-pci,所述第一VF口与所述OVS中的br-phy网桥连接,所述第二VF口与所述OVS中的br-int网桥连接,即在本可选实施例中,如图4所示,更换VF 0口及VF 1口驱动为vfio-pci,使用dpdk方式分别挂载至OVS的br-phy网桥及br-int网桥。
还需要说明的是,在本实施例中,还给OVS下发流表,流表用于指示OVS根据mac地址及vlan号来区分VF口流量并转发。
如图5所示,本发明实施例还提供一种流量转发方法,应用于如上中任一项所述的流量转发设备,所述方法包括:
步骤501:至少一个虚拟机中的目标虚拟机的目标流量经过与所述目标虚拟机连接的第三虚拟功能VF口进入所述智能网卡。
在本实施例中,以图4所示的虚拟机1为目标虚拟机为例进行说明,第三VF口为图4所示的VF 2。
在本步骤中,虚拟机1的目标流量经过VF 2口进入智能网卡(SR-IOV网卡)。
可选地,步骤501包括:
所述目标流量经过所述第三VF口,所述智能网卡为所述目标流量添加所述第三VF口对应的第二vlan号和所述第三VF口对应的第二媒体介入控制mac地址;所述目标流量进入所述智能网卡。
具体地,虚拟机1的目标流量经VF 2口进入SR-IOV网卡,所述智能网卡为目标流量打上vlan号1024和mac地址。
步骤502:所述智能网卡将所述目标流量转发至所述第二VF口,所述目标流量经过所述第二VF口进入虚拟交换机OVS。
在本步骤中,SR-IOV网卡将目标流量转发至trunk口进入OVS。
可选地,步骤502包括:
通过所述智能网卡的二层交换功能将所述目标流量转发至所述第二VF口,即SR-IOV网卡内的二层交换机将流量转发至trunk口进入OVS,所述目标流量经过所述VF 1口进入所述OVS的br-int网桥。
步骤503:所述OVS将所述目标流量转发至所述第一VF口,所述目标流量经过所述第一VF口进入所述智能网卡。
在本步骤中,OVS将目标流量转发至VF 0口,经过VF 0口进入SR-IOV网卡。
可选地,步骤503包括:
所述OVS根据所述目标流量对应的第二vlan号和第二mac地址,确定所述目标流量由所述第三VF口进入所述智能网卡;所述OVS根据所述第三VF口,将所述目标流量转发至所述OVS中的br-phy网桥;所述目标流量经过所述br-phy网桥至所述第一VF口。
具体地,OVS根据配置的流表通过mac地址及vlan号来区分VF口为VF 2口,为其匹配转发流表及相应处理,送至br-phy网桥。目标流量经br-phy网桥VF 0口进入SR-IOV网卡,并打上vlan号。
步骤504:所述智能网卡将所述目标流量转发至物理功能(Physical Function,PF)口。
在本步骤中,SR-IOV网卡将所述目标流量转发至PF口出物理机。
可选地,步骤504包括:
所述智能网卡通过的二层交换功能将所述目标流量转发至PF口,即利用SR-IOV网卡内的二层交换机将目标流量转发至PF口。
经过上述步骤,目标流量的转发路径如图4所示。
本发明实施例提供的流量转发设备和流量转发方法通过SR-IOV功能将原本虚拟机流量卸载至VF利用硬件能力转发,降低了数据传输延迟高、提高了数据吞吐量。同时保证了原有虚拟化网络结构不被破坏,虚拟化网络功能仍旧生效,有效利用了网卡SR-IOV功能,方便环境改造。
本发明未涉及智能网卡的使用,有效利用SR-IOV功能,经济成本低,改造难度低,且未破坏原有虚拟化网络结构,在利用SR-IOV功能加速的同时,保证虚拟化网络功能的可用性。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
- 一种基于流定义的流量转发方法及装置
- 一种流量转发控制方法及装置
- 一种流量转发设备的链路聚合方法及流量转发设备
- 流量转发控制方法及装置、流量转发方法及芯片、交换机