CN117478596B - 一种sdn流量转发系统、设备及方法 - Google Patents
一种sdn流量转发系统、设备及方法 Download PDFInfo
- Publication number
- CN117478596B CN117478596B CN202311811626.6A CN202311811626A CN117478596B CN 117478596 B CN117478596 B CN 117478596B CN 202311811626 A CN202311811626 A CN 202311811626A CN 117478596 B CN117478596 B CN 117478596B
- Authority
- CN
- China
- Prior art keywords
- bridge
- local
- virtual machine
- sdn
- traffic
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012546 transfer Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 19
- 230000001427 coherent effect Effects 0.000 claims description 2
- 238000012790 confirmation Methods 0.000 claims description 2
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/76—Routing in software-defined topologies, e.g. routing between virtual machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及计算机技术领域,提出了一种SDN流量转发系统、设备及方法。该系统包括:本地控制器,用于接收SDN控制器下发的规则;与本地控制器连接的虚拟交换机以及其基于接收的规则创建的第一网桥、第二网桥以及若干虚拟机,虚拟交换机响应于确认虚拟机接入的网络为Overlay网络,将第一网桥的内部端口与Overlay网络隧道的若干远端端点对应,将第二网桥与Overlay网络隧道的本地端点连接,并根据若干远端端点和本地端点配置用户态的路由表,第二网桥将从虚拟端口接收的流量流转至本地主机的目的虚拟机,或者基于路由表以及第一网桥流转至另一主机的目的虚拟机中。本发明的方案有利于提升SDN的网络性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种SDN流量转发系统、设备及方法。
背景技术
SDN(Software Defined Network,软件定义网络)是通过网络虚拟化实现的一种新型网络架构,将网络设备的控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络变得更加智能,为核心网络及应用的创新提供了良好的平台。DPDK(Data PlaneDevelopment Kit,数据平面开发套件)是一种高性能数据包处理的开源软件开发的工具包,DPDK可以绕过操作系统的内核CPU(Central Processing Unit,中央处理器),直接访问网卡硬件,从而实现更高效的数据包处理和网络功能虚拟化。
现有的SDN网络架构涉及到多个网桥并且网桥之间的数据转发依赖内核,对于虚拟机的流量转发无法适用DPDK技术,流量转发过程需要经过本地主机的网卡、CPU中断、上下文的切换后进入到内核协议栈中,之后通过用户空间进入到虚拟机中。上述数据包的流转路径较长且需要经过多次中断以及多次数据拷贝,严重限制了SDN的网络性能的提升,并且严重消耗了CPU资源,不利于系统的整体网络性能的提升。
发明内容
有鉴于此,有必要针对以上技术问题,提供一种SDN流量转发系统、设备及方法。
根据本发明的第一方面,提供了一种SDN流量转发系统,部署于本地主机,所述SDN流量转发系统包括:
本地控制器,用于接收SDN控制器下发的规则;
与所述本地控制器连接的虚拟交换机;以及
由所述虚拟交换机基于接收的所述规则创建的第一网桥、第二网桥以及若干虚拟机,所述第二网桥与所述虚拟机分别通过对应的虚拟端口连接,
其中,所述虚拟交换机用于响应于确认所述虚拟机接入的网络为Overlay网络,将所述第一网桥的内部端口与Overlay网络隧道的若干远端端点对应,将所述第二网桥与所述Overlay网络隧道的本地端点连接,并根据所述若干远端端点和所述本地端点配置用户态的路由表,
所述第二网桥与用于将从所述虚拟端口接收的流量流转至所述本地主机的目的虚拟机,或者基于所述路由表获取所述本地端点对应的目的远端端点并将所述流量流转至所述目的远端端点对应的所述内部端口,以经由所述第一网桥所连接的上行链路发送至所述本地主机的网卡接口,并进一步流转至另一主机的目的虚拟机中。
在一些实施例中,所述若干远端端点的数量与连接到同一所述SDN控制器的全部主机中除所述本地主机外的剩余主机的数量相一致。
在一些实施例中,所述若干远端端点的IP地址分别配置为所述剩余主机各自的IP地址,所述本地端点的IP地址配置为所述本地主机的IP地址。
在一些实施例中,所述虚拟交换机进一步用于根据所述本地端点的IP地址以及所述若干远端端点的IP地址配置用户态的路由表。
在一些实施例中,所述第一网桥的所述内部端口分别与所述若干远端端点的IP地址相对应。
在一些实施例中,所述第二网桥进一步用于响应于从与所述虚拟机连接的虚拟端口中接收到所述流量,获取发出所述流量的源虚拟机所在主机的第一IP地址以及接收所述流量的目的虚拟机所在主机的第二IP地址,并且根据所述第一IP地址和所述第二IP地址是否一致确认将所述流量流转至本地主机的目的虚拟机或者基于所述第二IP地址从所述路由表中获取所述目的远端端点并将所述流量基于所述目的远端端点的所述第二IP地址流转至对应的所述内部端口。
在一些实施例中,所述第二网桥进一步用于响应于所述第一IP地址和所述第二IP地址不一致,基于所述第二IP地址从所述路由表中匹配所述目的远端端点以及基于所述目的远端端点匹配所述内部端口,以将所述流量流转至所述本地端点并进一步基于所述目的远端端点流转至对应的所述内部端口。
在一些实施例中,所述第二网桥进一步用于响应于所述第一IP地址和所述第二IP地址一致,将所述流量从所述源虚拟机连接的虚拟端口发送至所述本地主机的所述目的虚拟机连接的虚拟端口以发送给所述目的虚拟机。
在一些实施例中,所述虚拟交换机进一步用于响应于确认所述虚拟机接入的网络为VLAN网络,在所述第一网桥和所述第二网桥上创建相互连接的端口对。
在一些实施例中,所述第二网桥进一步用于将从所述虚拟端口接收的流量流转至所述本地主机的目的虚拟机,或者通过所述端口对流转至所述第一网桥并经由所述第一网桥所连接的上行链路发送至所述本地主机的网卡接口,并进一步流转至所述另一主机的目的虚拟机中。
在一些实施例中,所述本地控制器进一步用于将虚拟机注册请求发送给所述SDN控制器,以及接收所述SDN控制器基于所述虚拟机注册请求为所述本地主机分配的资源。
在一些实施例中,所述本地控制器进一步用于基于所述资源将所述虚拟端口配置为DPDK类型的端口。
在一些实施例中,所述本地控制器进一步用于基于所述资源将所述第一网桥和所述第二网桥分别配置为NETDEV类型的网桥。
在一些实施例中,所述本地控制器进一步用于基于所述资源将所述第一网桥的所述内部端口配置为DPDK类型的端口。
在一些实施例中,所述资源包括待注册虚拟机的IP地址、所述待注册虚拟机连接的虚拟端口的对应标识以及所述待注册虚拟机所在主机的对应标识。
在一些实施例中,所述本地控制器进一步用于接收所述虚拟交换机返回的所述虚拟机的状态信息并将其发送给所述SDN控制器,以调整所述规则。
在一些实施例中,所述本地主机的网卡接口与用户态驱动的网卡连接,所述本地主机的网卡接口进一步用于将所述流量发送至所述用户态驱动的网卡,以经由所述用户态驱动的网卡将所述流量流转至另一主机的目的虚拟机中。
在一些实施例中,所述本地控制器进一步用于将所述本地主机的存储方式配置为大页内存。
在一些实施例中,所述本地控制器进一步用于响应于所述本地主机开机,将所述本地主机的非一致内存节点与所述本地主机的处理器绑定。
根据本发明的第二方面,提供了一种SDN流量转发设备,包括SDN控制器、若干主机以及物理交换机,所述若干主机分别包括如上述任一项所述的SDN流量转发系统,所述物理交换机连接所述SDN控制器以及每个所述SDN流量转发系统。
根据本发明的第三方面,提供了一种SDN流量转发方法,所述SDN流量转发方法包括:
虚拟机交换机基于SDN控制器下发的规则创建第一网桥、第二网桥以及若干虚拟机;
响应于确认所述虚拟机接入的网络为Overlay网络,将所述第一网桥的内部端口与所述Overlay网络隧道的若干远端端点对应,将所述第二网桥与所述Overlay网络隧道的本地端点连接;
所述虚拟交换机根据所述若干远端端点和所述本地端点配置用户态的路由表;
所述第二网桥将从虚拟端口接收的流量流转至所述本地主机的目的虚拟机,或者基于所述路由表获取所述本地端点对应的目的远端端点并将所述流量流转至所述目的远端端点对应的所述内部端口,以经由所述第一网桥所连接的上行链路发送至所述本地主机的网卡接口,并进一步流转至另一主机的目的虚拟机中。
上述一种SDN流量转发系统,包括本地控制器和与本地控制器连接的虚拟交换机,虚拟交换机基于SDN控制器下发的规则创建第一网桥、第二网桥以及若干虚拟机,当创建的虚拟机接入Overlay网络,将第一网桥的内部端口与Overlay网络隧道的若干远端端点对应,虚拟交换机基于若干远端端点和Overlay网络隧道的本地端点配置用户态的路由表,第二网桥与本地端点连接将从虚拟端口接收的流量流转至本地主机的目的虚拟机,或者从路由表中获取本地端点对应的目的远端端点,将流量流转到目的远端端点对应的内部端口,以经由第一网桥连接的上行链路将流量通过本地主机的网卡接口进一步流转至另一主机的目的虚拟机中。上述的SDN流量转发系统摒弃了现有的SDN架构至少需要3个及以上网桥的设置,仅需要两个网桥即可实现SDN的流量转发,在SDN网络中实现了通过DPDK进行流量转发,将数据包处理过程移至用户空间,实现更低的延迟和更高的吞吐量,使流量转发过程不依赖内核CPU路由,减少了对CPU资源的占用,提高了SDN网络流量转发处理速度,有利于提升SDN的网络性能。
此外,本发明还提供了一种SDN流量转发设备以及SDN流量转发方法同样能实现上述技术效果,这里不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1示出的为本发明一个实施例提供的一种SDN流量转发系统的示意图;
图2示出的为本发明一个实施例提供的第一网桥和第二网桥之间流量转发的示意图;
图3示出的为本发明另一个实施例提供的SDN流量转发设备的示意图;
图4示出的为本发明另一个实施例提供的一种SDN流量转发方法的流程图。
具体实施方式
为使本发明的目标、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
在一个实施例中,请参照图1所示,本发明提供了一种SDN流量转发系统,具体来说,SDN流量转发系统部署于本地主机101中,所述SDN流量转发系统包括:
本地控制器102,用于接收SDN控制器103下发的规则;与所述本地控制器102连接的虚拟交换机104;以及虚拟交换机104基于接收的所述规则创建的第一网桥105、第二网桥106以及虚拟机107,所述第二网桥106与所述虚拟机107分别通过对应的虚拟端口108连接,其中,所述虚拟交换机104用于响应于确认所述虚拟机107接入的网络为Overlay网络,将所述第一网桥105的内部端口109分别与所述Overlay网络隧道的若干远端端点对应,将所述第二网桥106与所述Overlay网络隧道的本地端点连接,并根据所述若干远端端点和所述本地端点配置用户态的路由表,所述第二网桥106用于将从所述虚拟端口108接收的流量流转至所述本地主机101的目的虚拟机,或者基于所述路由表获取所述本地端点对应的目的远端端点并将所述流量流转至所述目的远端端点对应的内部端口,以经由所述第一网桥105所连接的上行链路发送至所述本地主机101的网卡接口110,并进一步流转至另一主机的目的虚拟机中。
上述的SDN流量转发系统摒弃了现有的SDN架构至少需要3个及以上网桥的设置,仅需要两个网桥即可实现SDN的流量转发,在SDN网络中实现了通过DPDK进行流量转发,将数据包处理过程移至用户空间,实现更低的延迟和更高的吞吐量,使流量转发过程不依赖内核CPU路由,减少了对CPU资源的占用,提高了SDN网络流量转发处理速度,有利于提升SDN的网络性能。
上述Overlay网络,又称重叠网络,是一种运行在一个或多个已存在网络之上的网络,提供特定的附加功能。其将在一个或多个方面改变下层网络的性能/功能/特性。Overlay网络包括VXLAN网络以及Geneve网络,其中,VXLAN网络又称虚拟扩展局域网。
上述一种SDN流量转发系统,物理层面上,比如虚拟机a与虚拟机b之间跨网段通信,需要给虚拟机a配置网关,虚拟机a通过ARP(Address Resolution Protocol,地址解析协议)广播请求网关的MAC(Media Access Control Address,媒体存取控制位址)地址,然后将报文的目的IP(Internet Protocol,互联网协议)设置为虚拟机b的IP地址,将目的MAC地址设置为网关的MAC地址,之后将报文发送到网关进行路由。对于虚拟机107而言,资源是逻辑的,则SDN控制器103会在本地主机101下发流量的转发规则,这些规则应用到第二网桥106上并且可以自动对虚拟机107发出的ARP广播回应,以及将虚拟机a发出的报文转发到虚拟机b中。如果虚拟机b不在本地主机101上,而在另一主机上,将报文经由第一网桥105转发给另一主机上。
根据本发明的若干实施例,所述若干远端端点的数量与连接到同一所述SDN控制器103的全部主机中除所述本地主机101外的剩余主机的数量相一致。实现了每一个主机通过Overlay网络隧道的远端端点与连接到同一SDN控制器103的剩余每一个主机连通。
在一些实施例中,与某一SDN控制器103连接的主机为N个,则Overlay网络隧道的远端端点的数量为N-1个,实现了每一个主机可以通过Overlay网络隧道与SDN控制器103连接的剩余N-1个主机进行连通。
根据本发明的若干实施例,所述若干远端端点的IP地址分别配置为所述剩余主机各自的IP地址,所述本地端点的IP地址配置为所述本地主机101的IP地址。基于本地主机的IP地址以及剩余主机的IP地址,实现了通过隧道的本地端点以及每一远端端点建立本地主机101和剩余每一主机之间的连通。
在一些实施例中,请继续参考图1,第二网桥106通过隧道端口111与Overlay网络隧道的本地端点连接,隧道端口111配置为本地端点的IP地址,即为本地主机101的IP地址。
根据本发明的若干实施例,所述虚拟交换机104进一步用于根据所述本地端点的IP地址以及所述若干远端端点的IP地址配置用户态的路由表。由于在DPDK的配置条件下内核协议栈被旁路,避免了流量转发过程依赖内核路由表路由的过程,通过配置用户态的路由表实现了实现第二网桥106将Overlay网络报文通过第一网桥105,再经由第一网桥105的上行链路发送出去。
根据本发明的若干实施例,所述内部端口109与所述若干远端端点的IP地址对应。通过二者的对应实现了本地主机101和Overlay网络隧道连接的剩余主机之间的隧道通信。
在一些实施例中,内部端口109配置的IP地址可以来自同一网段,比如172.16.100.0/24网段的172.16.100.10,通过上述配置的IP地址用于与Overlay网络隧道的远端端点相对应。
根据本发明的若干实施例,所述第二网桥106进一步用于响应于从与所述虚拟机107连接的虚拟端口108中接收到所述流量,获取发出所述流量的源虚拟机所在主机的第一IP地址以及接收所述流量的目的虚拟机所在主机的第二IP地址,并且根据所述第一IP地址和所述第二IP地址是否一致确认将所述流量流转至本地主机101的目的虚拟机或者基于所述第二IP地址从所述路由表中获取所述目的远端端点并将所述流量基于所述目的远端端点的所述第二IP地址流转至对应的所述内部端口。实现了通过源虚拟机所在主机的第一IP地址(即本地主机101的IP地址)和目的虚拟机所在主机的第二IP地址是否一致来判断接收到的流量的源虚拟机和目的虚拟机是否同属于一个主机,有利于第二网桥106根据源虚拟机和目的虚拟机是否同属于一个主机对流量进行不同的转发。
根据本发明的若干实施例,所述第二网桥106进一步用于响应于所述第一IP地址和所述第二IP地址不一致,基于所述第二IP地址从所述路由表中匹配所述目的远端端点以及基于所述目的远端端点匹配所述内部端口,以将所述流量流转至所述本地端点并进一步基于所述目的远端端点流转至对应的所述内部端口。如果属于不同主机,第二网桥106将流量发送至Overlay网络隧道的本地端点,图2示出的为本发明一个实施例提供的第一网桥和第二网桥之间流量转发的示意图,在图2的基础上,在图2的基础上,继续参考图1,第二网桥106将流量发送至与Overlay网络隧道的本地端点连接的隧道端口111上,并基于用户态的路由表对流量进行外层封装后发送到内部端口,以经由第一网桥105连接的上行链路流转网卡接口110,并进一步流转至另一主机的目的虚拟机中。由于虚拟机107注册过程中,SDN控制器103记录了虚拟机107的足够多的属性,比如接入到什么类型的网络,因此,SDN控制器103可以基于记录的属性给本地主机101下发关于第二网桥106的相应的规则。
根据本发明的若干实施例,所述第二网桥106进一步用于响应于所述第一IP地址和所述第二IP地址一致,将所述流量从所述源虚拟机连接的虚拟端口108发送至所述本地主机101的所述目的虚拟机连接的虚拟端口108以发送给所述目的虚拟机。如果属于同一主机,则直接由第二网桥106所连接的目的虚拟机的虚拟端口108将流量发送给目的虚拟机,而无需再经由第一网桥105流转至另一主机中。
根据本发明的若干实施例,所述虚拟交换机104进一步用于响应于确认所述虚拟机107接入的网络为VLAN(Virtual Local Area Network,虚拟局域网)网络,在所述第一网桥105和所述第二网桥106上创建相互连接的端口对。对于VLAN网络,在虚拟交换机104创建第一网桥105、第二网桥106以及虚拟机107时会同时在第一网桥105与第二网桥106上创建相互连接的端口对,通过该端口对可以直接建立两个网桥的连通。
根据本发明的若干实施例,所述第二网桥106进一步用于将从所述虚拟端口108接收的流量流转至所述本地主机101的目的虚拟机,请在图1的基础上,继续参考图2,或者通过所述端口对流转至所述第一网桥105并经由所述第一网桥105所连接的上行链路发送至所述本地主机的网卡接口110,并进一步流转至所述另一主机的目的虚拟机中。指定第一网桥105和第二网桥106相互映射,VLAN网络下可以直接在第一网桥105与第二网桥106上创建相互连接的端口对,对于VLAN网络,流量转发过程无需隧道参与,当接入VLAN网络的虚拟机发出流量时,会匹配到本地控制器102发送的规则。如果目的虚拟机不属于本地主机101,则通过该端口对直接将流量发送给第一网桥105,并经由所述第一网桥105所连接的上行链路发送至所述本地主机的网卡接口110,并进一步流转至所述另一主机的目的虚拟机中;如果目的虚拟机属于本地主机101,则流量被转发到本地主机101的目的虚拟机上。进而实现了对于虚拟机107接入的不同网络均可以实现流量正常转发功能。
根据本发明的若干实施例,所述本地控制器102进一步用于将虚拟机注册请求发送给所述SDN控制器103,以及接收所述SDN控制器103基于所述虚拟机注册请求为所述本地主机101分配的资源。比如,本地控制器102收到注册申请后将其发送给SDN控制器103,SDN控制器103为本地主机101分配对应的资源并记录相关注册信息,比如ID(Identitydocument,身份标识)、IP地址等。
根据本发明的若干实施例,所述本地控制器102进一步用于基于所述资源将所述虚拟端口108配置为DPDK类型的端口。虚拟端口108指的是虚拟机107接入用户网络时使用的端口,对于每一个虚拟机107都至少又一个与之对应的虚拟端口108。用户网络指的是在第一网桥105和第二网桥106的基础上,虚拟交换机104基于SDN控制器103下发的规则所创建出来的逻辑网络。该网络没有对应的实体,只是对应了不同的转发、隔离规则的组合,这些规则组合最终会应用到接入该网络的虚拟机端口上,实现不同的网络不同路径转发,丢弃以及隔离的效果。
在一些实施例中,将虚拟端口108的端口类型设置为dpdkvhostuserclient类型,并记录其socket(套接字)路径,虚拟机107开机时,虚拟交换机104基于规则配置虚拟端口108并将配置的虚拟端口108接入到第二网桥106上,还需要经由向本地控制器102向SDN控制器103申请注册时记录的ID、MAC地址、状态信息等。虚拟机107开机后,就可以在系统内部看到网卡,此网卡为基于上述步骤创建的基于DPDK的SDN网络端口,同时,虚拟机107接入到SDN网络。
在一些实施例中,请参考图1,本地控制器102进一步用于基于所述资源将隧道端口111配置为DPDK类型的端口,具体地,将隧道端口111的端口类型设置为dpdkvhostuserclient类型,并记录其socket路径。
根据本发明的若干实施例,所述本地控制器102进一步用于基于所述资源将所述第一网桥105和所述第二网桥106分别配置为NETDEV类型的网桥。由于配置两个网桥为NETDEV类型的网桥,因此,避免了流量报文转发像常规的SDN流量转发(宿主机内核协议栈—宿主机用户空间—虚拟机内核协议栈—虚拟机用户空间)需要依赖内核路由转发,而是通过轮询驱动程序直接到达用户态,提高了SDN网络流量转发处理速度,有利于提升SDN的网络性能。
根据本发明的若干实施例,所述本地控制器102进一步用于基于所述资源将所述内部端口109配置为DPDK类型的端口。具体地,将内部端口109的端口类型设置为dpdkvhostuserclient类型,并记录其socket路径。
根据本发明的若干实施例,所述资源包括待注册虚拟机的IP地址、所述待注册虚拟机连接的虚拟端口108的对应标识以及所述待注册虚拟机所在主机的对应标识。虚拟机107创建过程中向SDN控制器103申请上述资源,涉及到虚拟机ID(标识此端口被哪个虚拟机使用)、虚拟机所在主机ID(标识虚拟机在哪个主机上)、MAC地址(注册时随机生成并保存)、接入的网络、端口的类型(表示正在注册的设备是虚拟机,而非路由器等设备)实现了虚拟机107注册过程中,用户对此没有感知。
根据本发明的若干实施例,所述本地控制器102进一步用于接收所述虚拟交换机104返回的所述虚拟机107的状态信息并将其发送给所述SDN控制器103,以调整所述规则。比如,本地控制器102收集当前主机中各虚拟机、虚拟网络、虚拟路由器等网络设备的状态并发送给SDN控制器103,有利于SDN控制器103把握整个网络中所有设备的状态,以做出更合理的网络转发规则。
根据本发明的若干实施例,所述本地主机101的网卡接口110与用户态驱动的网卡连接,所述本地主机101的网卡接口110进一步用于将所述流量发送至所述用户态驱动的网卡,即vfio-pci驱动的网卡,以经由所述用户态驱动的网卡将所述流量流转至另一主机的目的虚拟机中。
根据本发明的若干实施例,所述本地控制器102进一步用于将所述本地主机101的存储方式配置为大页内存。有利于减少内存所需的页表项,减少大内存访问时的开销,并提高TLB(Translation Look-aside Buffer,地址变换高速缓存)的命中率。
根据本发明的若干实施例,所述本地控制器102进一步用于响应于所述本地主机101开机,将所述本地主机101的非一致内存节点(NUMA节点)与所述本地主机101的处理器绑定。可以保证数据包处理过程中尽量位于同一个NUMA节点,提高数据处理速度和效率。
在一些实施例中,请参照图3所示,本发明还提供了SDN流量转发设备,包括SDN控制器103、若干主机101以及物理交换机120,所述若干主机101分别包括如上述任一项所述的SDN流量转发系统,所述物理交换机120连接所述SDN控制器103以及每个所述SDN流量转发系统。
在一些实施例中,请参照图4所示,本发明还提供了一种SDN流量转发方法,所述方法包括:
步骤201,虚拟机交换机基于SDN控制器下发的规则创建第一网桥、第二网桥以及若干虚拟机;
步骤202,响应于确认所述虚拟机接入的网络为Overlay网络,将所述第一网桥的内部端口与所述Overlay网络隧道的若干远端端点对应,将所述第二网桥与所述Overlay网络隧道的本地端点连接;
步骤203,所述虚拟交换机根据所述若干远端端点和所述本地端点配置用户态的路由表;
步骤204,所述第二网桥将从虚拟端口接收的流量流转至所述本地主机的目的虚拟机,或者基于所述路由表获取所述本地端点对应的目的远端端点并将所述流量流转至所述目的远端端点对应的内部端口,以经由所述第一网桥所连接的上行链路发送至所述本地主机的网卡接口,并进一步流转至另一主机的目的虚拟机中。
在一些实施例中,所述若干远端端点的数量与连接到同一所述SDN控制器的全部主机中除所述本地主机外的剩余主机的数量相一致。
在一些实施例中,所述若干远端端点的IP地址分别配置为所述剩余主机的IP地址,所述本地端点的IP地址配置为所述本地主机的IP地址。
在一些实施例中,步骤203还包括:所述虚拟交换机根据所述本地端点的IP地址以及所述若干远端端点的IP地址配置用户态的路由表。
在一些实施例中,所述内部端口与所述若干远端端点的IP地址相对应。
在一些实施例中,步骤204还包括:第二网桥响应于从与所述虚拟机连接的虚拟端口中接收到所述流量,获取发出所述流量的源虚拟机所在主机的第一IP地址以及接收所述流量的目的虚拟机所在主机的第二IP地址,并且根据所述第一IP地址和所述第二IP地址是否一致确认将所述流量流转至本地主机的目的虚拟机或者基于所述第二IP地址从所述路由表中获取所述目的远端端点并将所述流量基于所述目的远端端点的所述第二IP地址流转至对应的所述内部端口。
在一些实施例中,步骤204还包括:所述第二网桥响应于所述第一IP地址和所述第二IP地址不一致,基于所述第二IP地址从所述路由表中匹配所述目的远端端点以及基于所述目的远端端点匹配所述内部端口,以将所述流量流转至所述本地端点并进一步基于所述目的远端端点流转至对应的所述内部端口。
在一些实施例中,步骤204还包括:所述第二网桥响应于所述第一IP地址和所述第二IP地址一致,将所述流量从所述源虚拟机连接的虚拟端口发送至所述本地主机的所述目的虚拟机连接的虚拟端口以发送给所述目的虚拟机。
在一些实施例中,步骤202还包括:响应于确认所述虚拟机接入的网络为VLAN网络,所述虚拟交换机在所述第一网桥和所述第二网桥上创建相互连接的端口对。
在一些实施例中,步骤204还包括:所述第二网桥将从所述虚拟端口接收的流量流转至所述本地主机的目的虚拟机,或者通过所述端口对流转至所述第一网桥并经由所述第一网桥所连接的上行链路发送至所述本地主机的网卡接口,并进一步流转至所述另一主机的目的虚拟机中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (21)
1.一种SDN流量转发系统,其特征在于,部署于本地主机,包括:
本地控制器,用于接收SDN控制器下发的规则;
与所述本地控制器连接的虚拟交换机;以及
由所述虚拟交换机基于接收的所述规则创建的第一网桥、第二网桥以及若干虚拟机,所述第二网桥与所述虚拟机分别通过对应的虚拟端口连接,
其中,所述虚拟交换机用于响应于确认所述虚拟机接入的网络为Overlay网络,将所述第一网桥的内部端口与Overlay网络隧道的若干远端端点对应,将所述第二网桥与所述Overlay网络隧道的本地端点连接,并根据所述若干远端端点和所述本地端点配置用户态的路由表,
所述第二网桥用于将从所述虚拟端口接收的流量流转至所述本地主机的目的虚拟机,或者基于所述路由表获取所述本地端点对应的目的远端端点并将所述流量流转至所述目的远端端点对应的所述内部端口,以经由所述第一网桥所连接的上行链路发送至所述本地主机的网卡接口,并进一步流转至另一主机的目的虚拟机中。
2.根据权利要求1所述的SDN流量转发系统,其特征在于,所述若干远端端点的数量与连接到同一所述SDN控制器的全部主机中除所述本地主机外的剩余主机的数量相一致。
3.根据权利要求2所述的SDN流量转发系统,其特征在于,所述若干远端端点的IP地址分别配置为所述剩余主机各自的IP地址,所述本地端点的IP地址配置为所述本地主机的IP地址。
4.根据权利要求3所述的SDN流量转发系统,其特征在于,所述虚拟交换机进一步用于根据所述本地端点的IP地址以及所述若干远端端点的IP地址配置所述用户态的路由表。
5.根据权利要求4所述的SDN流量转发系统,其特征在于,所述第一网桥的所述内部端口与所述若干远端端点的IP地址相对应。
6.根据权利要求5所述的SDN流量转发系统,其特征在于,所述第二网桥进一步用于响应于从与所述虚拟机连接的虚拟端口中接收到所述流量,获取发出所述流量的源虚拟机所在主机的第一IP地址以及接收所述流量的目的虚拟机所在主机的第二IP地址,并且根据所述第一IP地址和所述第二IP地址是否一致,确认将所述流量流转至本地主机的目的虚拟机或者基于所述第二IP地址从所述路由表中获取所述目的远端端点并将所述流量基于所述目的远端端点的所述第二IP地址流转至对应的所述内部端口。
7.根据权利要求6所述的SDN流量转发系统,其特征在于,所述第二网桥进一步用于响应于所述第一IP地址和所述第二IP地址不一致,基于所述第二IP地址从所述路由表中匹配所述目的远端端点以及基于所述目的远端端点匹配所述内部端口,以将所述流量流转至所述本地端点并进一步基于所述目的远端端点流转至对应的所述内部端口。
8.根据权利要求6所述的SDN流量转发系统,其特征在于,所述第二网桥进一步用于响应于所述第一IP地址和所述第二IP地址一致,将所述流量从所述源虚拟机连接的虚拟端口发送至所述本地主机的所述目的虚拟机连接的虚拟端口以发送给所述目的虚拟机。
9.根据权利要求1所述的SDN流量转发系统,其特征在于,所述虚拟交换机进一步用于响应于确认所述虚拟机接入的网络为VLAN网络,在所述第一网桥和所述第二网桥上创建相互连接的端口对。
10.根据权利要求9所述的SDN流量转发系统,其特征在于,所述第二网桥进一步用于将从所述虚拟端口接收的流量流转至所述本地主机的目的虚拟机,或者通过所述端口对流转至所述第一网桥并经由所述第一网桥所连接的上行链路发送至所述本地主机的网卡接口,并进一步流转至所述另一主机的目的虚拟机中。
11.根据权利要求1所述的SDN流量转发系统,其特征在于,所述本地控制器进一步用于将虚拟机注册请求发送给所述SDN控制器,以及接收所述SDN控制器基于所述虚拟机注册请求为所述本地主机分配的资源。
12.根据权利要求11所述的SDN流量转发系统,其特征在于,所述本地控制器进一步用于基于所述资源将所述虚拟端口配置为DPDK类型的端口。
13.根据权利要求11所述的SDN流量转发系统,其特征在于,所述本地控制器进一步用于基于所述资源将所述第一网桥和所述第二网桥分别配置为NETDEV类型的网桥。
14.根据权利要求11所述的SDN流量转发系统,其特征在于,所述本地控制器进一步用于基于所述资源将所述第一网桥的所述内部端口配置为DPDK类型的端口。
15.根据权利要求11所述的SDN流量转发系统,其特征在于,所述资源包括待注册虚拟机的IP地址、所述待注册虚拟机连接的虚拟端口的对应标识以及所述待注册虚拟机所在主机的对应标识。
16.根据权利要求1所述的SDN流量转发系统,其特征在于,所述本地控制器进一步用于接收所述虚拟交换机返回的所述虚拟机的状态信息并将其发送给所述SDN控制器,以调整所述规则。
17.根据权利要求16所述的SDN流量转发系统,其特征在于,所述本地主机的网卡接口与用户态驱动的网卡连接,所述本地主机的网卡接口进一步用于将所述流量发送至所述用户态驱动的网卡,以经由所述用户态驱动的网卡将所述流量流转至另一主机的目的虚拟机中。
18.根据权利要求1所述的SDN流量转发系统,其特征在于,所述本地控制器进一步用于将所述本地主机的存储方式配置为大页内存。
19.根据权利要求1所述的SDN流量转发系统,其特征在于,所述本地控制器进一步用于响应于所述本地主机开机,将所述本地主机的非一致内存节点与所述本地主机的处理器绑定。
20.一种SDN流量转发设备,其特征在于,包括SDN控制器、若干主机以及物理交换机,所述若干主机分别包括如权利要求1-19任一项所述的SDN流量转发系统,所述物理交换机连接所述SDN控制器以及每个所述SDN流量转发系统。
21.一种SDN流量转发方法,其特征在于,包括基于权利要求1-19任一项所述的SDN流量转发系统执行以下步骤:
虚拟机交换机基于SDN控制器下发的规则创建第一网桥、第二网桥以及若干虚拟机;
响应于确认所述虚拟机接入的网络为Overlay网络,将所述第一网桥的内部端口与所述Overlay网络隧道的若干远端端点对应,将所述第二网桥与所述Overlay网络隧道的本地端点连接;
所述虚拟交换机根据所述若干远端端点和所述本地端点配置用户态的路由表;
所述第二网桥将从虚拟端口接收的流量流转至所述本地主机的目的虚拟机,或者基于所述路由表获取所述本地端点对应的目的远端端点并将所述流量流转至所述目的远端端点对应的内部端口,以经由所述第一网桥所连接的上行链路发送至所述本地主机的网卡接口,并进一步流转至另一主机的目的虚拟机中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311811626.6A CN117478596B (zh) | 2023-12-26 | 2023-12-26 | 一种sdn流量转发系统、设备及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311811626.6A CN117478596B (zh) | 2023-12-26 | 2023-12-26 | 一种sdn流量转发系统、设备及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117478596A CN117478596A (zh) | 2024-01-30 |
CN117478596B true CN117478596B (zh) | 2024-02-23 |
Family
ID=89627828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311811626.6A Active CN117478596B (zh) | 2023-12-26 | 2023-12-26 | 一种sdn流量转发系统、设备及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117478596B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101657532B1 (ko) * | 2015-05-29 | 2016-09-19 | 삼성에스디에스 주식회사 | 오버레이 sdn 망의 브릿지 도메인 확장 방법 |
CN108111383A (zh) * | 2017-12-26 | 2018-06-01 | 北京航空航天大学 | 一种基于sdn的跨域容器虚拟网络组建方法 |
CN110838964A (zh) * | 2018-08-16 | 2020-02-25 | 上海仪电(集团)有限公司中央研究院 | 一种虚拟网络与物理网络的网络对接系统 |
CN115865769A (zh) * | 2021-09-23 | 2023-03-28 | 华为技术有限公司 | 报文处理方法、网络设备及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9847938B2 (en) * | 2015-07-31 | 2017-12-19 | Nicira, Inc. | Configuring logical routers on hardware switches |
-
2023
- 2023-12-26 CN CN202311811626.6A patent/CN117478596B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101657532B1 (ko) * | 2015-05-29 | 2016-09-19 | 삼성에스디에스 주식회사 | 오버레이 sdn 망의 브릿지 도메인 확장 방법 |
CN108111383A (zh) * | 2017-12-26 | 2018-06-01 | 北京航空航天大学 | 一种基于sdn的跨域容器虚拟网络组建方法 |
CN110838964A (zh) * | 2018-08-16 | 2020-02-25 | 上海仪电(集团)有限公司中央研究院 | 一种虚拟网络与物理网络的网络对接系统 |
CN115865769A (zh) * | 2021-09-23 | 2023-03-28 | 华为技术有限公司 | 报文处理方法、网络设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117478596A (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7355830B2 (ja) | マルチクラウド環境におけるオンデマンドフローに基づくポリシー実施のためのシステムおよび方法 | |
US10063470B2 (en) | Data center network system based on software-defined network and packet forwarding method, address resolution method, routing controller thereof | |
US10652047B2 (en) | Connectivity to internet via shared services in enterprise fabric based network with LISP control plane | |
US10931580B2 (en) | Packet processing method and network device | |
WO2018137369A1 (zh) | 混合云管理方法、装置和计算设备 | |
WO2017215390A1 (zh) | 一种纵向堆叠系统的数据转发端口选择方法及装置 | |
WO2015085523A1 (zh) | 一种虚拟可扩展局域网的通信方法、装置和系统 | |
US8737388B2 (en) | Method, apparatus and system for processing packets | |
JP5612468B2 (ja) | リアルタイム通信ネットワークにおける診断データの通信のための方法と装置 | |
CN105657081A (zh) | 提供dhcp服务的方法、装置及系统 | |
WO2022001669A1 (zh) | 建立vxlan隧道的方法及相关设备 | |
WO2017113300A1 (zh) | 路由确定方法、网络配置方法以及相关装置 | |
US10574570B2 (en) | Communication processing method and apparatus | |
CN112887229B (zh) | 一种会话信息同步方法及装置 | |
JP2010531602A5 (zh) | ||
CA2774281C (en) | User access method, system, access server, and access device | |
JP7389091B2 (ja) | トラフィックフォワーディングを制御するための方法、装置及びシステム | |
CN115442184B (zh) | 一种接入系统及方法、接入服务器、系统及存储介质 | |
CN117478596B (zh) | 一种sdn流量转发系统、设备及方法 | |
WO2017036384A1 (zh) | 运营商边缘设备及数据转发方法 | |
US20210211373A1 (en) | Ultra-reliable low latency communications (urllc) support for wireless access | |
CN111935336A (zh) | 基于IPv6的网络治理方法及系统 | |
CN115065730B (zh) | 一种数据处理方法、第一容器、电子设备及存储介质 | |
CN113300931B (zh) | 一种虚拟机迁移发现方法及vtep | |
CN114760242B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |