CN109831390B - 报文转发控制方法及装置 - Google Patents
报文转发控制方法及装置 Download PDFInfo
- Publication number
- CN109831390B CN109831390B CN201910054817.XA CN201910054817A CN109831390B CN 109831390 B CN109831390 B CN 109831390B CN 201910054817 A CN201910054817 A CN 201910054817A CN 109831390 B CN109831390 B CN 109831390B
- Authority
- CN
- China
- Prior art keywords
- virtual
- message
- broadcasted
- port
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种报文转发控制方法及装置,实现原理为:接收经过第一虚拟防火墙安全处理后的目的地址为广播地址、组播地址或者未知单播地址的待广播报文,待广播报文为发往虚拟交换机的第一虚拟端口时被虚拟交换机引流至与第一虚拟端口匹配的第一引流策略指示的第一虚拟防火墙中进行安全处理的报文;遍历第一虚拟端口之外的每个第二虚拟端口,若该第二虚拟端口的流表项中包括指示虚拟交换机将待广播报文引流到该第一虚拟防火墙之外的其它虚拟防火墙的第二引流策略,则不匹配该流表项,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。由此,能够避免虚拟交换机在接收到待广播报文时,由于多级流表的设计不周导致的恶性环路问题。
Description
技术领域
本公开涉及云计算技术领域,具体而言,涉及一种报文转发控制方法及装置。
背景技术
为了连接虚拟机网络,诞生了虚拟交换机(Vswitch),虚拟交换机实现了物理交换机所具有的大部分功能,例如可通过软件方式实现物理交换机的二层网络功能。目前较为常用的一种虚拟交换机是OVS(OpenVswitch,开源虚拟交换机)。
通过配置虚拟机网卡下发流表成功后,多级流表就会存储于OVS中,OVS可以通过查询流表对待转发报文进行匹配控制。目前的多级流表设计都是以单播报文的转发控制的思想为主,并未考虑到一些目的地址为广播地址、组播地址或者未知单播地址的待广播报文带来的问题,这样会导致OVS在接收到上述待广播报文时,可能会由于多级流表的设计不周导致恶性环路问题。
发明内容
为了克服现有技术中的上述不足,本公开的目的在于提供一种报文转发控制方法及装置,以解决或者改善上述问题。
为了实现上述目的,本公开实施例采用的技术方案如下:
第一方面,本公开提供一种报文转发控制方法,应用于虚拟交换机,所述方法可以包括:
接收经过第一虚拟防火墙安全处理后的待广播报文,其中,该待广播报文为发往所述虚拟交换机的第一虚拟端口时被所述虚拟交换机引流至与所述第一虚拟端口匹配的第一引流策略指示的第一虚拟防火墙中进行安全处理的报文,该待广播报文的目的地址为广播地址、组播地址或者未知单播地址;
遍历所述第一虚拟端口之外的每个第二虚拟端口,从所述虚拟交换机的出方向流表中查找该第二虚拟端口的流表项;
若该第二虚拟端口的流表项中包括指示所述虚拟交换机将该待广播报文引流到该第一虚拟防火墙之外的其它虚拟防火墙的第二引流策略,则不匹配该流表项,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
在一种可能的实施方式中,所述遍历所述第一虚拟端口之外的每个第二虚拟端口,从所述虚拟交换机的出方向流表中匹配该第二虚拟端口的流表项的步骤,可以包括:
遍历所述第一虚拟端口之外的每个第二虚拟端口,将该第二虚拟端口分别与所述虚拟交换机的出方向流表中每个流表项的匹配域中的端口号进行匹配;
在该第二虚拟端口与所述虚拟交换机的出方向流表中任意一个流表项的匹配域中的端口号匹配时,将该流表项确定为匹配该第二虚拟端口的流表项。
在一种可能的实施方式中,所述不匹配该流表项,直接通过该第二虚拟端口将该报文发送给对应的目的虚拟机的步骤,可以包括:
判断寄存器中预设标志位上的标志值是否为该第二虚拟端口的流表项的匹配域中的引流标志值;
在判断结果为否时,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
在一种可能的实施方式中,所述接收经过第一虚拟防火墙安全处理后的待广播报文的步骤之前,所述方法还可以包括:
在接收到源虚拟机通过所述第一虚拟端口发送的报文后,判断所述报文是否为待广播报文;
若所述报文为待广播报文,则将寄存器中预设标志位上的标志值由引流标志值修改为非引流标志值,并判断所述虚拟交换机的入方向流表中是否包括与所述第一虚拟端口匹配的第一引流策略,其中,所述引流标志值和所述非引流标志值为不同的标志值;
若所述虚拟交换机的入方向流表中包括与所述第一虚拟端口匹配的第一引流策略,则将所述待广播报文引流到所述第一引流策略指示的第一虚拟防火墙中,以使所述第一虚拟防火墙对所述待广播报文进行安全处理。
在一种可能的实施方式中,所述方法还可以包括:
若该第二虚拟端口的流表项中不包括所述第二引流策略,则直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
第二方面,本公开实施例还提供一种报文转发控制装置,应用于虚拟交换机,所述装置可以包括:
报文接收模块,可以用于接收经过第一虚拟防火墙安全处理后的待广播报文,其中,该待广播报文为发往所述虚拟交换机的第一虚拟端口时被所述虚拟交换机引流至与所述第一虚拟端口匹配的第一引流策略指示的第一虚拟防火墙中进行安全处理的报文,该待广播报文的目的地址为广播地址、组播地址或者未知单播地址;
遍历查找模块,可以用于遍历所述第一虚拟端口之外的每个第二虚拟端口,从所述虚拟交换机的出方向流表中查找该第二虚拟端口的流表项;
发送模块,可以用于若该第二虚拟端口的流表项中包括指示所述虚拟交换机将该待广播报文引流到该第一虚拟防火墙之外的其它虚拟防火墙的第二引流策略,则不匹配该流表项,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
第三方面,本公开实施例还提供一种服务器,所述服务器可以包括:
存储介质;
处理器;以及
上述的报文转发控制装置,所述报文转发控制装置存储于所述存储介质中并包括由所述处理器执行的计算机可执行指令。
第四方面,本公开实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时可以实现上述的报文转发控制方法。
相对于现有技术而言,本公开具有以下有益效果:
本公开提供一种报文转发控制方法及装置,实现原理为:接收经过第一虚拟防火墙安全处理后的待广播报文,该待广播报文为发往虚拟交换机的第一虚拟端口时被虚拟交换机引流至与第一虚拟端口匹配的第一引流策略指示的第一虚拟防火墙中进行安全处理的报文,该待广播报文的目的地址为广播地址、组播地址或者未知单播地址;遍历第一虚拟端口之外的每个第二虚拟端口,若该第二虚拟端口的流表项中包括指示虚拟交换机将该待广播报文引流到该第一虚拟防火墙之外的其它虚拟防火墙的第二引流策略,则不匹配该流表项,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。由此,能够避免虚拟交换机在接收到待广播报文时,由于多级流表的设计不周导致的恶性环路问题。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为本公开实施例提供的报文转发控制方法的应用场景示意图;
图2为一种虚拟机配置引流规则的示意图;
图3为一种引流广播环路通信图;
图4为本公开实施例提供的报文转发控制方法的流程示意图;
图5为本公开实施例提供的引流广播环路处理后的通信图;
图6为本公开实施例提供的报文转发控制装置的功能模块示意图之一;
图7为本公开实施例提供的报文转发控制装置的功能模块示意图之二;
图8为本公开实施例提供的用于实现上述报文转发控制方法的一种服务器的结构框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为了更好地理解本公开的技术方案,下面首先对本公开实施例的报文转发控制方法的应用场景进行描述。如图1所示,服务器100上运行虚拟交换机(Vswitch)以及至少一个虚拟机(Virtual Machine,VM),例如虚拟机A、B、C等。虚拟交换机内设置有多个虚拟端口,用于连接虚拟机端口和物理端口,该虚拟机端口设置在虚拟机的虚拟网卡上,物理端口设置在物理网卡上。连接服务器100上物理网卡的物理端口与外部的物理网络进行通信。连接虚拟网卡的虚拟端口与该服务器100上的虚拟机连接,用于实现虚拟机与外部网络,或虚拟机相互之间的数据交换。一般而言,一个虚拟交换机可以管理一台服务器100上的所有虚拟机(如图1所示),也可以以分布式管理的方式同时管理多台服务器100上的虚拟机。虚拟网卡通常设置在虚拟机上,一台虚拟机可以设置一个或多个虚拟网卡。当虚拟机设置多个虚拟网卡时,可以使该虚拟机连接不同的虚拟网络。
可以理解,图1所示的应用场景仅为示意,服务器100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
其中,以上述虚拟交换机为OVS(OpenVswitch,开源虚拟交换机)为例,OVS接收到上述报文时,会将该报文与流表中的表项进行逐一匹配,并根据命中表项中记载的动作处理该报文。例如图1所示的应用场景中,OVS通过虚拟端口A接收到虚拟机A发送的报文时,对该报文的处理流程通常包括协议解析、表项查找和动作执行。其中,协议解析是通过程序分析报文的协议头和尾,从而得到该报文在产生和传输过程中的行为信息,例如,该报文的时间、源地址、目的地址、协议版本、状态码等。表项查找是根据解析出的行为信息,查找预先设置好的流表,得到命中表项;最后再执行命中表项中记载的动作,例如,通过指定的虚拟端口转发、丢弃该报文等,从而完成对该报文的处理流程。
请参阅图2,当需要对虚拟机发送的报文进行防护时,可以采用虚拟机的形式将虚拟防火墙(VirtualFireWall,VFW)下挂到虚拟交换机OVS上。VFW作为一个特殊的虚拟机运行在服务器100中,该创建的VFW可具有与传统物理防火墙相同的安全防护功能。当服务器100内部虚拟机VM间的访问报文需要进行安全防护时,管理员可在VFW上配置相应的安全策略,而VFW可自动配置OVS中的引流策略,并可以流表形式保存在OVS中,OVS可根据流表内容对报文进行匹配,从而可将特定VM的报文引流到VFW中,由VFW对VM间的报文进行安全防护处理,最后经VFW处理过的报文再回到OVS中进行正常转发。例如图1所示的应用场景中,如果虚拟交换机配置了需要将虚拟机A发送的报文引流至VFW中进行安全防护的引流策略,则当虚拟机A通过虚拟交换机向虚拟机B发送报文时,该报文会被虚拟交换机引流至VFW中进行安全防护,接着经VFW安全处理过的报文再返回到虚拟交换机中进行正常转发。通过前述方案,在虚拟环境中,可使用VFW实现对服务器100内部VM间报文的防护。
如前述背景技术所获知的技术问题,经过发明人仔细分析,导致恶性环路问题的原因主要包括以下几种情形:
第一种情形,当源虚拟机发送给OVS的报文为目的地址为广播地址、组播地址或者未知单播地址的待广播报文时,OVS会遍历当前的所有虚拟端口将该待广播报文进行广播,此时源虚拟机也会重复接收到OVS广播的待广播报文,造成OVS与源虚拟机之间形成恶性环路。或者,如果OVS中配置了针对源虚拟机的引流策略,那么该待广播报文会被OVS引流至VFW中进行安全防护,经VFW安全处理过的待广播报文在返回到虚拟交换机时,由于该安全处理过的待广播报文中的目的地址依旧未发生变化,OVS同样会将该安全处理过的待广播报文进行广播。此时源虚拟机也会重复接收到OVS广播的待广播报文,造成OVS与源虚拟机之间形成恶性环路。
针对上述情形,经过发明人研究后,提出OVS可以在处理上述待广播报文时,在遍历所有虚拟端口的同时,将该待广播报文中的源地址所对应的端口号和各个虚拟端口的端口号进行比对,若比对结果为相同则不允许转发,此时不会将该待广播报文发送到发送此待广播报文的源虚拟机上。
然而发明人在进一步研究中发现,对于多次引流的情况,上述方案依旧无法解决恶性环路问题。下面将结合图3对第二种情形进行说明。
第二种情形,请参阅图3,假设OVS的入方向流表中配置了针对VM1的第一引流策略、出方向流表中配置有针对VM4的第二引流策略,该第一引流策略用于指示OVS将VM1发送的报文引流至VFW1中,该第二引流策略用于指示OVS将发往VM4的报文引流至VFW2中。下面以VM1向OVS发送一个广播报文(1)为例,对多次引流造成的恶性环路问题的通信过程进行详细阐述。
通信过程a,OVS根据第一引流策略将广播报文(1)引流到VFW1中进行安全处理。
通信过程b,VFW1对该广播报文(1)进行安全处理后,返回广播报文(2)到OVS。
通信过程c,该广播报文(2)被OVS分别广播到所有VM中,例如VM2、VM3以及VM4中,其中OVS会根据第二引流策略将广播到VM4的广播报文(2)引流到VFW2中进行安全处理。
通信过程d,VFW2对该广播报文(2)进行安全处理后,返回广播报文(3)到OVS,此广播报文(3)又会再次被广播到所有VM中,此时所有VM,例如VM2、VM3以及VM4会收到两次广播报文,也即都会依次收到广播报文(2)和广播报文(3)。其中,OVS会根据第一引流策略将广播到VM1的广播报文(3)再次引流到VFW1中,此时返回上述通信过程b。由此不难看出,VFW1和VFW2之间已经形成了往复循环的恶性环路。
不难看出,上述恶性环路的情形均是由于在设计OVS的流表时未考虑到一些待广播报文而导致的,而一旦出现恶性环路,这些待广播报文进入恶性环路后便会不断的循环转发、广播,无法结束,大量的报文处理造成严重的网络广播风暴,耗尽交换资源,造成OVS瘫痪。此外,恶性环路也会产生MAC地址漂移,造成网络中断,从而引发严重后果。
基于上述技术问题的发现,本申请发明人提出下述技术方案以解决或者改善上述问题。需要注意的是,以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开实施例针对上述问题所提出的解决方案,都应该是发明人在发明创造过程中对本公开做出的贡献。
下面结合图1对图4所示的报文转发控制方法进行详细说明,该报文转发控制方法由图1中所示的虚拟交换机执行。应当理解,在其它实施例中,本实施例的报文转发控制方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该报文转发控制方法的详细步骤介绍如下。
步骤S110,接收经过第一虚拟防火墙安全处理后的待广播报文。
在一些可能的实施方式中,该待广播报文可以是但不限于目的地址为广播地址、组播地址或者未知单播地址等任意需要进行广播的报文。
虚拟交换机可以在接收到源虚拟机通过第一虚拟端口发送的报文后,判断该报文是否为待广播报文。若该报文为待广播报文,则将寄存器中预设标志位上的标志值由引流标志值修改为非引流标志值,其中,引流标志值和非引流标志值为不同的标志值。
以判断该报文是否为广播报文、组播报文或者未知单播报文为例,可以通过以下的表1判断该报文是否为待广播报文报文,并在判定该报文为待广播报文时,根据该表1将寄存器中预设标志位上的标志值由引流标志值修改为非引流标志值。
表1
如表1所示,if(is_IGMP(flow))为组播报文的判断条件,其中,IGMP(InternetGroup Management Protocol)是因特网协议家族中的一个组播协议,flow表示该报文作为采用组播协议的组播报文流出,因此当判断该报文满足is_IGMP(flow)时,判定该报文为待广播报文。
(flow->dl_type==ETH_TYPE_IP)&&ip_is_local_multicast(flow->nw_dst)为广播报文的判断条件,其中,flow->dl_type==ETH_TYPE_IP用于判断报文是否为IP报文。若为IP报文,则通过ip_is_local_multicast(flow->nw_dst)判断报文中的IP地址是否为D类地址,若为D类地址,则判定该报文为待广播报文。
if(!mac_port)为未知单播报文(Unknown Unicast)的判断条件,其中,!mac_port表示MAC表中没有该报文的目的MAC条目,此时则判定该报文为待广播报文。
所属领域的技术人员能够理解,在实际实施时也可以设置与上述示例不同的判断条件以判断该报文是否为待广播报文,本实施例对此不作任何限制。
在上述基础上,本实施例还可以将标识该报文类型的标记存储于寄存器中预设标志位reg3中,从而根据报文类型来设置对应的标志值,该预设标志位reg3可以以二进制的方式进行存储。例如,当报文类型为单播类型时,标识该报文类型的标记可以为0,也即,将该寄存器中预设标志位reg3的标志值设置为引流标志值0。反之,当判定该报文为待广播报文时,可以执行上述表1中的动作:set reg3=1,也即,将该寄存器中预设标志位reg3上的标志值由引流标志值0修改为非引流标志值1。
本实施例中,虚拟交换机中还存储有多级流表,例如入方向流表和出方向流表。该入方向流表中可以包括多个用于匹配入方向的报文的流表项,该出方向流表中可以包括多个用于匹配出方向的报文的流表项。其中,每个流表项可以包括匹配域和动作域,该匹配域包括与报文进行匹配的匹配条件,该动作域包括在该报文满足该匹配域的匹配条件时对应的执行动作。
详细地,虚拟交换机在从该第一虚拟端口接收到该待广播报文后,由于该待广播报文为入方向上的报文,则判断虚拟交换机的入方向流表中是否包括与第一虚拟端口匹配的第一引流策略,例如,可以将第一虚拟端口与入方向流表中的各个流表项的匹配域进行匹配,以获取匹配的流表项,并判断该流表项的动作域中是否包括第一引流策略。
若虚拟交换机的入方向流表中包括与第一虚拟端口匹配的第一引流策略,则将该待广播报文引流到第一引流策略指示的第一虚拟防火墙中,以使第一虚拟防火墙对待广播报文进行安全处理。
其中,管理员可通过虚拟防护墙管理器(VFW Manager)配置第一虚拟防火墙的安全策略,该安全策略可包括访问控制和安全防范等多个方面的安全处理,安全防范具体可包括对报文是否包含泛洪(flood)攻击进行过滤等;访问控制在第一虚拟防火墙中可支持基于VM,IP,MAC,主机名等信息划分安全域,通过配置安全域间的规则,可以实现对安全域间报文的防护。例如,同一网段,同一业务划分到同一安全域,这样,同一安全域内的VM间可允许报文交互,不同安全域间VM不允许报文交互,或有报文限制等。第一虚拟防火墙上的安全策略配置完成后,第一虚拟防火墙就可以知道需要对哪些报文进行安全防护处理,从而可以通过制定引流策略给虚拟交换机,使得虚拟交换机可将相应的报文(例如上述待广播报文)引流至该第一虚拟防火墙进行处理。
步骤S120,遍历第一虚拟端口之外的每个第二虚拟端口,从虚拟交换机的出方向流表中查找该第二虚拟端口的流表项。
由于经过第一虚拟防火墙安全处理后的待广播报文的目的地址依旧未发生变化,因此虚拟交换机还需要将该待广播报文进行广播。在广播该待广播报文时,为了避免发送该待广播报文的源虚拟机也接收到该待广播报文,此时则不再遍历该第一虚拟端口,而是遍历该第一虚拟端口之外的每个第二虚拟端口,从虚拟交换机的出方向流表中查找该第二虚拟端口的流表项。
例如,可以遍历第一虚拟端口之外的每个第二虚拟端口,将该第二虚拟端口分别与虚拟交换机的出方向流表中每个流表项的匹配域中的端口号进行匹配,在该第二虚拟端口与虚拟交换机的出方向流表中任意一个流表项的匹配域中的端口号匹配时,将该流表项确定为匹配该第二虚拟端口的流表项。
步骤S130,若该第二虚拟端口的流表项中包括指示虚拟交换机将该待广播报文引流到该第一虚拟防火墙之外的其它虚拟防火墙的第二引流策略,则不匹配该流表项,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
若该第二虚拟端口的流表项中包括指示虚拟交换机将该待广播报文引流到该第一虚拟防火墙之外的其它虚拟防火墙的第二引流策略,此时如果虚拟交换机根据该第二引流策略选择将该待广播报文引流到该第一虚拟防火墙之外的其它虚拟防火墙,参照前述背景技术,必然会造成该第一虚拟防火墙与该第二引流策略指示的其它防火墙之间的恶性环路。
为此,本实施例预先对该包括指示虚拟交换机将该待广播报文引流到该第一虚拟防火墙之外的其它虚拟防火墙的第二引流策略的第二虚拟端口的流表项中的匹配域进行配置,除了该匹配域中的端口号的匹配条件外,增加引流标志值的匹配条件:multi_Flag=0。这样,在实际匹配时,在匹配端口号之后,还要匹配multi_Flag=0,才能触发动作域中的第二引流策略。
在具体匹配时,即判断寄存器中预设标志位上的标志值是否为该第二虚拟端口的流表项的匹配域中的引流标志值,在判断结果为否时,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
详细地,参照前述说明,当判定该报文为待广播报文时,将该寄存器中预设标志位reg3上的标志值由引流标志值0修改为非引流标志值1。也即,此时寄存器中预设标志位reg3上的标志值为非引流标志值1,而该第二虚拟端口的流表项的匹配域中的引流标志值为0,由于非引流标志值1和引流标志值为0不同,因此二者无法匹配成功,此时在出方向则触发该出方向流表中的默认流表项default,→output:out_port,也即,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。反之,若该报文为单播报文,参照前述说明,此时寄存器中预设标志位reg3上的标志值为引流标志值0,引流标志值0可以与multi_Flag=0匹配,则触发正常引流过程,将该报文引流至第二引流策略指示的该第一虚拟防火墙之外的其它虚拟防火墙中。
在另一种情况中,若该第二虚拟端口的流表项中不包括第二引流策略,则直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
基于上述设计,通过对出方向流表进行优化,能够避免虚拟交换机在接收到待广播报文时,由于多级流表的设计不周导致的恶性环路问题,有效防止了待广播报文进入恶性环路造成严重的网络广播风暴,耗尽交换资源,同时还可以防止产生MAC地址漂移而引起的网络中断问题。
下面将结合一个具体的示例对本实施例提出的报文转发控制方法进行详细说明。请参阅图5,假设OVS的入方向流表中配置了针对VM1的第一引流策略、出方向流表中配置有针对VM4的第二引流策略,该第一引流策略用于指示OVS将VM1发送的报文引流至VFW1中,该第二引流策略用于指示OVS将发往VM4的报文引流至VFW2中。下面以VM1通过第一虚拟端口向OVS发送一个广播报文(1)为例,对采用本实施例提供的技术方案后的引流通信过程进行详细阐述。
通信过程a,OVS识别到该广播报文(1)为待广播报文,将寄存器中预设标志位reg3上的标志值由引流标志值0修改为非引流标志值1,并根据第一引流策略将广播报文(1)引流到VFW1中进行安全处理。
通信过程b,VFW1对该广播报文(1)进行安全处理后,返回广播报文(2)到OVS。
通信过程c,OVS接收该广播报文(2),并遍历第一虚拟端口之外的每个第二虚拟端口,从出方向流表中查找每个第二虚拟端口的流表项。
通信过程d,由于与VM2、VM3连接的第二虚拟端口的流表项中没有配置第二引流策略,此时OVS则直接将广播报文(2)通过分别与VM2、VM3连接的第二虚拟端口发送给VM2、VM3。与VM4连接的第二虚拟端口的流表项中包括第二引流策略,此时OVS将预设标志位reg3上修改后的非引流标志值1与该流表项中的匹配条件multi_Flag=0进行匹配,由于非引流标志值1和引流标志值为0不同,因此二者无法匹配成功,此时则在出方向匹配该出方向流表中的默认流表项default,→output:out_port,直接通过该第二虚拟端口将该广播报文(2)发送给VM4。由此,有效避免了VFW1和VFW2之间出现恶性环路。
值得说明的是,在其它实施例中,也可以通过配置OVS上的虚拟防火墙端口的端口属性以避免虚拟防火墙收到待广播报文。例如,可以将该的虚拟防火墙端口的属性设置为no_flood,配置命令为:ovs-ofctl mod-port br vfw no-flood,其中br是VFW所在的网桥名字,vfw是VFW对应的虚拟防火墙端口名。由此,所有的虚拟防火墙都无法接收到待广播报文,同样避免了由于多级流表中的多次引流造成的恶性环路。
进一步地,图6示出了本公开实施例提供的报文转发控制装置200的功能模块图,该报文转发控制装置200实现的功能可以对应上述报文转发控制方法执行的步骤。该报文转发控制装置200可以理解为上述服务器100,或服务器100的处理器,也可以理解为独立于上述服务器100或处理器之外的在服务器100控制下实现本公开功能的组件。如图6所示,该报文转发控制装置200可以包括报文接收模块210、遍历查找模块220以及发送模块230,下面分别对该报文转发控制装置200的各个功能模块的功能进行详细阐述。
报文接收模块210,用于接收经过第一虚拟防火墙安全处理后的待广播报文,其中,该待广播报文为发往虚拟交换机的第一虚拟端口时被虚拟交换机引流至与第一虚拟端口匹配的第一引流策略指示的第一虚拟防火墙中进行安全处理的报文,该待广播报文的目的地址为广播地址、组播地址或者未知单播地址。
遍历查找模块220,用于遍历第一虚拟端口之外的每个第二虚拟端口,从虚拟交换机的出方向流表中查找该第二虚拟端口的流表项。
发送模块230,用于若该第二虚拟端口的流表项中包括指示虚拟交换机将该待广播报文引流到该第一虚拟防火墙之外的其它虚拟防火墙的第二引流策略,则不匹配该流表项,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
在一种可能的实施方式中,遍历查找模块220具体可以通过以下方式从虚拟交换机的出方向流表中匹配该第二虚拟端口的流表项:
遍历第一虚拟端口之外的每个第二虚拟端口,将该第二虚拟端口分别与虚拟交换机的出方向流表中每个流表项的匹配域中的端口号进行匹配;
在该第二虚拟端口与虚拟交换机的出方向流表中任意一个流表项的匹配域中的端口号匹配时,将该流表项确定为匹配该第二虚拟端口的流表项。
在一种可能的实施方式中,发送模块230具体可以通过以下方式将该待广播报文发送给对应的目的虚拟机:
判断寄存器中预设标志位上的标志值是否为该第二虚拟端口的流表项的匹配域中的引流标志值;
在判断结果为否时,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
在一种可能的实施方式中,请进一步参阅图7,报文转发控制装置200还可以包括判断模块209,判断模块209,可以用于在接收到源虚拟机通过第一虚拟端口发送的报文后,判断报文是否为待广播报文,若报文为待广播报文,则将寄存器中预设标志位上的标志值由引流标志值修改为非引流标志值,其中,引流标志值和非引流标志值为不同的标志值。
判断模块209,具体还可以用于判断虚拟交换机的入方向流表中是否包括与第一虚拟端口匹配的第一引流策略,若虚拟交换机的流表中包括与第一虚拟端口匹配的第一引流策略,则将该待广播报文引流到第一引流策略指示的第一虚拟防火墙中,以使第一虚拟防火墙对该待广播报文进行安全处理。
在一种可能的实施方式中,若该第二虚拟端口的流表项中不包括第二引流策略,则发送模块230,具体还可以用于直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
进一步地,请参阅图8,本公开实施例还提供了一种用于实现上述报文转发控制方法的服务器100,本实施例中,所述服务器100可以由总线110作一般性的总线体系结构来实现。根据服务器100的具体应用和整体设计约束条件,总线110可以包括任意数量的互连总线和桥接。总线110将各种电路连接在一起,这些电路包括处理器120、存储介质130和总线接口140。可选地,服务器100可以使用总线接口140将网络适配器150等经由总线110连接。网络适配器150可用于实现服务器100中物理层的信号处理功能,并通过天线实现射频信号的发送和接收。用户接口160可以连接外部设备,例如:键盘、显示器、鼠标或者操纵杆等。总线110还可以连接各种其它电路,如定时源、外围设备、电压调节器或者功率管理电路等,这些电路是本领域所熟知的,因此不再详述。
可以替换的,服务器100也可配置成通用处理系统,例如通称为芯片,该通用处理系统包括:提供处理功能的一个或多个微处理器,以及提供存储介质130的至少一部分的外部存储器,所有这些都通过外部总线体系结构与其它支持电路连接在一起。
可替换的,服务器100可以使用下述来实现:具有处理器120、总线接口140、用户接口160的ASIC(专用集成电路);以及集成在单个芯片中的存储介质130的至少一部分,或者,服务器100可以使用下述来实现:一个或多个FPGA(现场可编程门阵列)、PLD(可编程逻辑器件)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合。
其中,处理器120负责管理总线110和一般处理(包括执行存储在存储介质130上的软件)。处理器120可以使用一个或多个通用处理器和/或专用处理器来实现。处理器120的例子包括微处理器、微控制器、DSP处理器和能够执行软件的其它电路。应当将软件广义地解释为表示指令、数据或其任意组合,而不论是将其称作为软件、固件、中间件、微代码、硬件描述语言还是其它。
在图8中存储介质130被示为与处理器120分离,然而,本领域技术人员很容易明白,存储介质130或其任意部分可位于服务器100之外。举例来说,存储介质130可以包括传输线、用数据调制的载波波形、和/或与无线节点分离开的计算机制品,这些介质均可以由处理器120通过总线接口140来访问。可替换地,存储介质130或其任意部分可以集成到处理器120中,例如,可以是高速缓存和/或通用寄存器。
所述处理器120可执行上述实施例,具体地,所述存储介质130中可以存储有所述报文转发控制装置200,所述处理器120可以用于执行所述报文识别装置200。
进一步地,本申请实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的报文转发控制方法。
在本公开所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
可以替换的,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其它可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的电子设备、服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,术语"包括"、"包含"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于本领域技术人员而言,显然本公开不限于上述示范性实施例的细节,而且在不背离本公开的精神或基本特征的情况下,能够以其它的具体形式实现本公开。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本公开的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本公开内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (10)
1.一种报文转发控制方法,其特征在于,应用于虚拟交换机,所述方法包括:
接收经过第一虚拟防火墙安全处理后的待广播报文,其中,该待广播报文为发往所述虚拟交换机的第一虚拟端口时被所述虚拟交换机引流至与所述第一虚拟端口匹配的第一引流策略指示的第一虚拟防火墙中进行安全处理的报文,该待广播报文的目的地址为广播地址、组播地址或者未知单播地址;
遍历所述第一虚拟端口之外的每个第二虚拟端口,从所述虚拟交换机的出方向流表中查找该第二虚拟端口的流表项;
若该第二虚拟端口的流表项中包括指示所述虚拟交换机将该待广播报文引流到该第一虚拟防火墙之外的其它虚拟防火墙的第二引流策略,则不匹配该流表项,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
2.根据权利要求1所述的报文转发控制方法,其特征在于,所述遍历所述第一虚拟端口之外的每个第二虚拟端口,从所述虚拟交换机的出方向流表中匹配该第二虚拟端口的流表项的步骤,包括:
遍历所述第一虚拟端口之外的每个第二虚拟端口,将该第二虚拟端口分别与所述虚拟交换机的出方向流表中每个流表项的匹配域中的端口号进行匹配;
在该第二虚拟端口与所述虚拟交换机的出方向流表中任意一个流表项的匹配域中的端口号匹配时,将该流表项确定为匹配该第二虚拟端口的流表项。
3.根据权利要求1或2所述的报文转发控制方法,其特征在于,所述不匹配该流表项,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机的步骤,包括:
判断寄存器中预设标志位上的标志值是否为该第二虚拟端口的流表项的匹配域中的引流标志值;
在判断结果为否时,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
4.根据权利要求3所述的报文转发控制方法,其特征在于,所述接收经过第一虚拟防火墙安全处理后的待广播报文的步骤之前,所述方法还包括:
在接收到源虚拟机通过所述第一虚拟端口发送的报文后,判断所述报文是否为待广播报文;
若所述报文为待广播报文,则将寄存器中预设标志位上的标志值由引流标志值修改为非引流标志值,并判断所述虚拟交换机的入方向流表中是否包括与所述第一虚拟端口匹配的第一引流策略,其中,所述引流标志值和所述非引流标志值为不同的标志值;
若所述虚拟交换机的入方向流表中包括与所述第一虚拟端口匹配的第一引流策略,则将所述待广播报文引流到所述第一引流策略指示的第一虚拟防火墙中,以使所述第一虚拟防火墙对所述待广播报文进行安全处理。
5.根据权利要求1所述的报文转发控制方法,其特征在于,所述方法还包括:
若该第二虚拟端口的流表项中不包括所述第二引流策略,则直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
6.一种报文转发控制装置,其特征在于,应用于虚拟交换机,所述装置包括:
报文接收模块,用于接收经过第一虚拟防火墙安全处理后的待广播报文,其中,该待广播报文为发往所述虚拟交换机的第一虚拟端口时被所述虚拟交换机引流至与所述第一虚拟端口匹配的第一引流策略指示的第一虚拟防火墙中进行安全处理的报文,该待广播报文的目的地址为广播地址、组播地址或者未知单播地址;
遍历查找模块,用于遍历所述第一虚拟端口之外的每个第二虚拟端口,从所述虚拟交换机的出方向流表中查找该第二虚拟端口的流表项;
发送模块,用于若该第二虚拟端口的流表项中包括指示所述虚拟交换机将该待广播报文引流到该第一虚拟防火墙之外的其它虚拟防火墙的第二引流策略,则不匹配该流表项,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
7.根据权利要求6所述的报文转发控制装置,其特征在于,所述遍历查找模块具体通过以下方式从所述虚拟交换机的出方向流表中匹配该第二虚拟端口的流表项:
遍历所述第一虚拟端口之外的每个第二虚拟端口,将该第二虚拟端口分别与所述虚拟交换机的出方向流表中每个流表项的匹配域中的端口号进行匹配;
在该第二虚拟端口与所述虚拟交换机的出方向流表中任意一个流表项的匹配域中的端口号匹配时,将该流表项确定为匹配该第二虚拟端口的流表项。
8.根据权利要求6或7所述的报文转发控制装置,其特征在于,所述发送模块具体通过以下方式将该待广播报文发送给对应的目的虚拟机:
判断寄存器中预设标志位上的标志值是否为该第二虚拟端口的流表项的匹配域中的引流标志值;
在判断结果为否时,直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
9.根据权利要求8所述的报文转发控制装置,其特征在于,所述装置还包括:
判断模块,用于在接收到源虚拟机通过所述第一虚拟端口发送的报文后,判断所述报文是否为待广播报文,若所述报文为待广播报文,则将寄存器中预设标志位上的标志值由引流标志值修改为非引流标志值,其中,所述引流标志值和所述非引流标志值为不同的标志值;
所述判断模块,具体还用于判断所述虚拟交换机的入方向流表中是否包括与所述第一虚拟端口匹配的第一引流策略,若所述虚拟交换机的入方向流表中包括与所述第一虚拟端口匹配的第一引流策略,则将所述待广播报文引流到所述第一引流策略指示的第一虚拟防火墙中,以使所述第一虚拟防火墙对所述待广播报文进行安全处理。
10.根据权利要求6所述的报文转发控制装置,其特征在于,若该第二虚拟端口的流表项中不包括所述第二引流策略,则所述发送模块,具体还用于直接通过该第二虚拟端口将该待广播报文发送给对应的目的虚拟机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910054817.XA CN109831390B (zh) | 2019-01-21 | 2019-01-21 | 报文转发控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910054817.XA CN109831390B (zh) | 2019-01-21 | 2019-01-21 | 报文转发控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109831390A CN109831390A (zh) | 2019-05-31 |
CN109831390B true CN109831390B (zh) | 2022-06-10 |
Family
ID=66861768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910054817.XA Active CN109831390B (zh) | 2019-01-21 | 2019-01-21 | 报文转发控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109831390B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111130863B (zh) * | 2019-12-12 | 2023-07-14 | 北京浪潮数据技术有限公司 | 一种虚拟网卡管理方法、系统、设备及计算机存储介质 |
CN111132170A (zh) * | 2019-12-31 | 2020-05-08 | 奇安信科技集团股份有限公司 | 虚拟防火墙的通信方法和装置、虚拟防火墙及拓扑结构 |
CN113810348B (zh) * | 2020-06-17 | 2023-04-07 | 华为技术有限公司 | 网络安全检测方法、系统、设备及控制器 |
CN112003796B (zh) * | 2020-08-07 | 2023-04-18 | 北京浪潮数据技术有限公司 | 一种广播报文处理方法、系统、设备及计算机存储介质 |
CN112333162B (zh) * | 2020-10-23 | 2022-05-24 | 新华三信息安全技术有限公司 | 一种业务处理方法及设备 |
CN113992592B (zh) * | 2021-10-27 | 2023-11-17 | 锐捷网络股份有限公司 | 一种报文转发方法、装置、端口引流系统及存储介质 |
CN114172718B (zh) * | 2021-12-03 | 2024-01-23 | 北京天融信网络安全技术有限公司 | 安全策略配置方法、装置、电子设备及存储介质 |
CN114546498A (zh) * | 2021-12-31 | 2022-05-27 | 广州芯德通信科技股份有限公司 | 一种基于光端机启动异常和处理方法、系统及平台 |
CN115277605B (zh) * | 2022-07-26 | 2023-10-17 | 深圳云豹智能有限公司 | 虚拟交换机的报文处理方法和装置、芯片及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9374285B1 (en) * | 2013-02-07 | 2016-06-21 | Big Switch Networks, Inc. | Systems and methods for determining network topologies |
CN106936777A (zh) * | 2015-12-29 | 2017-07-07 | 中移(苏州)软件技术有限公司 | 基于OpenFlow的云计算分布式网络实现方法、系统 |
CN107896195A (zh) * | 2017-11-16 | 2018-04-10 | 锐捷网络股份有限公司 | 服务链编排方法、装置及服务链拓扑结构 |
WO2018205982A1 (zh) * | 2017-05-11 | 2018-11-15 | 中兴通讯股份有限公司 | 软件定义网络中广播、组播实现方法、装置及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104022960B (zh) * | 2013-02-28 | 2017-05-31 | 新华三技术有限公司 | 基于OpenFlow协议实现PVLAN的方法和装置 |
US9858104B2 (en) * | 2014-09-24 | 2018-01-02 | Pluribus Networks, Inc. | Connecting fabrics via switch-to-switch tunneling transparent to network servers |
-
2019
- 2019-01-21 CN CN201910054817.XA patent/CN109831390B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9374285B1 (en) * | 2013-02-07 | 2016-06-21 | Big Switch Networks, Inc. | Systems and methods for determining network topologies |
CN106936777A (zh) * | 2015-12-29 | 2017-07-07 | 中移(苏州)软件技术有限公司 | 基于OpenFlow的云计算分布式网络实现方法、系统 |
WO2018205982A1 (zh) * | 2017-05-11 | 2018-11-15 | 中兴通讯股份有限公司 | 软件定义网络中广播、组播实现方法、装置及存储介质 |
CN107896195A (zh) * | 2017-11-16 | 2018-04-10 | 锐捷网络股份有限公司 | 服务链编排方法、装置及服务链拓扑结构 |
Also Published As
Publication number | Publication date |
---|---|
CN109831390A (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109831390B (zh) | 报文转发控制方法及装置 | |
US11102059B2 (en) | Virtual network health checker | |
US11323487B1 (en) | Scalable policy management for virtual networks | |
CN109791482B (zh) | 用于在微服务环境中缩放服务发现的方法和装置 | |
US9667551B2 (en) | Policy enforcement proxy | |
US9716665B2 (en) | Method for sharding address lookups | |
CN113273142B (zh) | 通信系统和通信方法 | |
CN113261240A (zh) | 使用可编程客户机进行多租户隔离 | |
US20200014698A1 (en) | Infrastructure aware adaptive resource allocation | |
US20150172156A1 (en) | Detecting end hosts in a distributed network environment | |
US10567344B2 (en) | Automatic firewall configuration based on aggregated cloud managed information | |
US20180006969A1 (en) | Technique for gleaning mac and ip address bindings | |
CN113261242A (zh) | 使用可编程交换机进行覆盖网络路由 | |
US10432628B2 (en) | Method for improving access control for TCP connections while optimizing hardware resources | |
CN113302898A (zh) | 将客户机-设备对等互联的虚拟路由控制器 | |
US11799972B2 (en) | Session management in a forwarding plane | |
US11888876B2 (en) | Intelligent quarantine on switch fabric for physical and virtualized infrastructure | |
US10567222B2 (en) | Recommending configurations for client networking environment based on aggregated cloud managed information | |
US10284521B2 (en) | Automatic security list offload with exponential timeout | |
CN115865802B (zh) | 虚拟实例的流量镜像方法、装置、虚拟机平台及存储介质 | |
CN115412492B (zh) | 由架顶式交换机针对裸金属服务器的策略实施 | |
CN117596205A (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 |