CN109743326B - 流量传输方法及装置 - Google Patents
流量传输方法及装置 Download PDFInfo
- Publication number
- CN109743326B CN109743326B CN201910030515.9A CN201910030515A CN109743326B CN 109743326 B CN109743326 B CN 109743326B CN 201910030515 A CN201910030515 A CN 201910030515A CN 109743326 B CN109743326 B CN 109743326B
- Authority
- CN
- China
- Prior art keywords
- traffic
- transmitted
- flow
- virtual machine
- state
- 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
技术领域
本公开涉及通信技术领域,具体而言,涉及一种流量传输方法及装置。
背景技术
云安全在云计算中起着基础性的关键作用,状态防火墙(Stateful firewall)作为云安全的具体实施手段之一,能满足网络数据流量安全隔离的需求。
状态防火墙是一种能够提供状态数据包检查(Stateful Packet Inspection,SPI)或状态查看(Stateful Inspection)功能的防火墙。状态防火墙能够持续追踪穿过该防火墙的各种网络连接的状态,区分不同连接种类下的合法数据包,提供动态数据包过滤(Dynamic Packet Filtering)的功能。
发明内容
有鉴于此,本公开提供一种流量传输方法及装置。
第一方面,本公开提供了一种流量传输方法,应用于服务器中的虚拟交换机,所述虚拟交换机与状态防火墙通信连接,所述方法包括:
获得需要所述虚拟交换机进行转发的待传输流量;
若所述待传输流量为广播帧,则判断所述待传输流量是否满足预设处理条件;
若所述待传输流量满足所述预设处理条件,则针对所述待传输流量设置第一标记变量;
基于所述第一标记变量,跳过所述状态防火墙的流量转发规则广播所述待传输流量,以避免基于所述待传输流量所要广播至的任一对象的流量转发规则将所述待传输流量的连接标记为禁止状态,从而不禁止所述待传输流量传输至其他对象。
可选地,所述方法还包括:
若所述待传输流量不满足所述预设处理条件,则针对所述待传输流量设置第二标记变量;
基于所述第二标记变量,根据所述状态防火墙的流量转发规则广播所述待传输流量,在基于所述待传输流量所要广播至的任一对象的流量转发规则判定所述待传输流量的连接为禁止时,将所述待传输流量的连接标记为禁止状态。
可选地,所述预设处理条件包括:待传输流量被标记为带状态转发,并且已经建立连接跟踪。
可选地,所述方法还包括:
若所述虚拟交换机的转发表中存在与所述待传输流量的目的MAC地址对应的端口,则通过查找到的所述端口转发所述待传输流量;若所述虚拟交换机的转发表中不存在与所述待传输流量的目的MAC地址对应的端口,则判定所述待传输流量为广播帧。
可选地,所述针对所述待传输流量设置第一标记变量,包括:将预设标志寄存器的设定标志位设置为所述第一标记变量。
第二方面,本公开提供一种流量传输装置,应用于服务器中的虚拟交换机,所述虚拟交换机与状态防火墙通信连接,所述流量传输装置包括:
流量获得模块,用于获得需要所述虚拟交换机进行转发的待传输流量;
流量处理模块,用于若所述待传输流量为广播帧,则判断所述待传输流量是否满足预设处理条件;若所述待传输流量满足所述预设处理条件,则针对所述待传输流量设置第一标记变量;基于所述第一标记变量,跳过所述状态防火墙的流量转发规则广播所述待传输流量,以避免基于所述待传输流量所要广播至的任一对象的流量转发规则将所述待传输流量的连接标记为禁止状态,从而不禁止所述待传输流量传输至其他对象。
可选地,所述流量处理模块还用于:若所述待传输流量不满足所述预设处理条件,则针对所述待传输流量设置第二标记变量;基于所述第二标记变量,根据所述状态防火墙的流量转发规则广播所述待传输流量,在基于所述待传输流量所要广播至的任一对象的流量转发规则判定所述待传输流量的连接为禁止时,将所述待传输流量的连接标记为禁止状态。
可选地,所述预设处理条件包括:待传输流量被标记为带状态转发,并且已经建立连接跟踪。
可选地,所述流量处理模块还用于,若所述虚拟交换机的转发表中存在与所述待传输流量的目的MAC地址对应的端口,则通过查找到的所述端口转发所述待传输流量;若所述虚拟交换机的转发表中不存在与所述待传输流量的目的MAC地址对应的端口,则判定所述待传输流量为广播帧。
可选地,所述流量处理模块针对所述待传输流量设置第一标记变量,包括:将预设标志寄存器的设定标志位设置为所述第一标记变量。
第三方面,本公开提供一种服务器,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述流量传输方法。
第四方面,本公开提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在服务器执行上述流量传输方法。
本公开提供的流量传输方法及装置,针对满足预设处理条件的待传输流量设置第一标记变量,基于第一标记变量,跳过状态防火墙的流量转发规则广播待传输流量,以避免待传输流量的连接标记为禁止状态,从而不禁止待传输流量传输至其他对象,实现待传输流量的可靠传输。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本公开提供的一种服务器中虚拟交换机与虚拟机的示例性方框示意图。
图2为本公开提供的一种服务器的方框示意图。
图3为本公开提供的一种流量传输方法的流程示意图。
图4为本公开提供的一种流量传输装置的方框示意图。
图标:10-服务器;11-存储器;12-处理器;13-网络模块;14-流量传输装置;141-流量获得模块;142-流量处理模块。
具体实施方式
本公开中的流量传输方法及装置可以应用于服务器,服务器中创建有虚拟交换机(Vswitch)和虚拟机(Virtual Machine),虚拟交换机与状态防火墙通信连接。其中,虚拟交换机可以为开源虚拟交换机(Open Virtual Switch,OVS)。服务器中存储各虚拟机之间,或者和外界设备之间通信的连接状态信息。连接状态信息可以包括连接发起(origin)方向和回复(reply)方向的连接状态。连接状态信息可以通过连接跟踪命令获得。
在状态防火墙的处理模型中,如何正确处理各种类型的流量是一件很基本并重要的事情。本公开中的流量(Flow)可以定义为某个特定的网络流量。例如,一个传输控制协议(Transmission Control Protocol,TCP)连接就是一个流量,或者从某个网络协议(Internet Protocol,IP)地址发出来的数据包,都可以被认为是一个流量。服务器中的一条连接状态信息属于点对点(Peer-to-Peer,P2P)的信息。例如,对于TCP而言,连接状态信息由通信双方的IP地址、传输协议、端口号等决定。经研究发现,服务器中存储各虚拟机之间,或者和外界设备之间通信的连接状态信息,基于状态防火墙的流量转发规则,有可能造成连接状态相互干扰。例如,广播和虚拟局域网(Virtual Local Area Network,VLAN)逻辑网络可能造成连接状态干扰,使得原本正常的通信受到干扰而被中断。由于服务器中的流量较大、连接数目较大等原因,广播产生的时机较多,频繁发生的广播容易造成众多业务流中断,使客户蒙受重大损失。
广播造成业务流中断的主要原因如下。
虚拟交换机的基本工作原理是媒体访问控制(Media Access Control,MAC)地址学习和端口转发。
如图1所示,示出了服务器10中运行有虚拟机A、虚拟机B和虚拟机C的示例性应用场景。虚拟交换机内设置有多个端口(虚拟端口),用于连接虚拟机和外界设备,以实现虚拟机与外界设备,或者虚拟机相互之间的流量传输。在图1所示的应用场景中,流量的转发过程一般为:虚拟交换机中存储有转发表,也称为媒体访问控制(Media Access Control,MAC)表。该转发表中包括各个虚拟机的MAC地址和所连接的端口之间的对应关系,如虚拟机C与端口C的对应关系。如果虚拟机A向虚拟机B发送流量,那么虚拟交换机通过端口A接收到虚拟机A发送的流量,并检测转发表中是否存在虚拟机A的MAC地址。若不存在就学习虚拟机A的MAC地址,并记录虚拟机A的MAC地址与连接虚拟机A的端口A之间的对应关系到转发表中。之后转发虚拟机A传输的流量时,根据流量的目的MAC地址在转发表中查找。如果查找到转发表中存在目的MAC地址(虚拟机B的MAC地址)和对应的端口,表明该目的MAC地址被学习过,根据流量中的目的MAC地址(虚拟机B的MAC地址)查找到连接虚拟机B的目的端口(端口B),然后将流量从端口B转发给虚拟机B。如果查找到转发表中不存在虚拟机B的MAC地址,那么虚拟机A传输的流量为未知单播,从而将流量从非接收端口如图1中的端口B和端口C转发。
在转发表中不存在虚拟机B的MAC地址的情况下,为了进行虚拟机B的MAC地址学习,虚拟机A会发送包括目的IP地址(虚拟机B的IP地址)的地址解析协议(AddressResolution Protocol,ARP)请求,该ARP请求的目的MAC地址是广播帧(ff-ff-ff-ff-ff-ff),源IP地址为虚拟机A的IP地址,源MAC地址为虚拟机A的MAC地址。虚拟交换机接收到该ARP请求之后,发现其为广播帧,因此,将该ARP请求从非接收端口,如图1中的端口B和端口C发送出去(即广播)。虚拟机B和虚拟机C接收到该APR请求之后,将自身的IP地址与APR请求中的目的IP地址进行比对,如果APR请求中的目的IP地址是自身的IP地址,则将虚拟机A的IP地址和MAC地址的对应关系进行记录,并回复一个ARP报文,在该ARP报文中包括自身的MAC地址。虚拟交换机将该ARP报文转发至虚拟机A,虚拟机A在接收到该ARP报文之后,对虚拟机B的IP地址和MAC地址的对应关系进行记录,虚拟交换机从而在该过程中学习到虚拟机A和虚拟机B的MAC地址。
鉴于MAC地址的学习需要一定的时间,在转发表中的内容全部被清空的情况下,虚拟交换机会将接收到的流量从非接收端口转发(广播),状态防火墙中会配置各虚拟机的流量转发规则,虚拟交换机将流量广播至各虚拟机,可能造成输出流量匹配处理过程中,基于状态防火墙中的流量转发规则匹配处理泛洪的流量,使原有连接的状态出错,从而造成原有连接中断。
例如,在图1所示场景中。如果在状态防火墙的流量转发规则中,对虚拟机A、虚拟机B和虚拟机C分别进行了以下配置:虚拟机A可收发报文,不配置任何规则。虚拟机B配置白名单规则,即默认为拒绝,并在白名单中添加规则允许虚拟机A的IP地址向其发送流量,如控制报文协议(Internet Control Message Protocol,ICMP)报文。虚拟机C配置黑名单规则,即默认通过,并在黑名单中添加规则禁止虚拟机A的IP地址的流量,如ICMP报文通过,并在接收到虚拟机A发送的流量时,将连接标记为禁止状态。
基于上述配置,在虚拟机A ping虚拟机B的情况下,若执行管理命令如ovs-appctlfdb/flush vswitch,清空虚拟交换机维护的FDB(Forwarding Data Base)表,会导致转发表中的内容全部被清空,从而需要重新生成内核流表(Flow Table)的每一项。由于转发表中的内容全部被清空,导致虚拟机A向虚拟机B传输的流量变成未知单播。该种情况下,虚拟交换机将虚拟机A向虚拟机B传输的流量广播到虚拟机B和虚拟机C,在进行流量广播之前,虚拟交换机基于状态防火墙中的流量转发规则对流量进行判断,例如,虚拟交换机在将流量广播至虚拟机C之前,由于虚拟机C在黑名单中添加规则禁止虚拟机A的IP地址的流量通过,并在接收到虚拟机A发送的流量时,将连接标记为禁止状态,因而根据状态防火墙中虚拟机C的流量转发规则,虚拟交换机会将虚拟机A所传输的流量在状态防火墙中标记为禁止状态。例如,将虚拟机A传输的流量的连接标记为禁止状态,如mark=1。虚拟机A传输的流量的连接标记为禁止状态之后,使用连接跟踪(conntrack)命令观察虚拟机A的连接发现mark=1,虚拟交换机从而会禁止虚拟机A传输的流量传输至虚拟机B。导致虚拟机A ping虚拟机B被中断,虚拟机A到虚拟机B的连接状态受到干扰,二者无法建立连接。在虚拟机A传输的流量的连接标记为禁止状态的情况下,在转发表中的内容恢复之后,虚拟机A传输的流量仍然会被禁止,导致使原本能够建立的连接中断。
类似地,若在状态防火墙的流量转发规则中,配置虚拟机A可接收流量,虚拟机B可发送流量,虚拟机C拒绝接收虚拟机B发送的流量,并在接收到虚拟机B发送的流量时,将连接标记为禁止状态。在虚拟机B向虚拟机A传输的流量变成未知单播的情况,虚拟交换机会将虚拟机B向虚拟机A传输的流量广播到虚拟机A和虚拟机C。由于流量转发规则中配置了虚拟机C拒绝接收虚拟机B发送的流量,并在接收到虚拟机B发送的流量时,将连接标记为禁止状态,因而根据状态防火墙中虚拟机C的流量转发规则,虚拟交换机会将虚拟机B传输的流量标记为禁止状态,进而同样导致虚拟机B和虚拟机A的连接状态受到干扰,连接中断。
其中,FDB表用于维护转发表,以决定是将流量进行过滤还是转发。因而,清空虚拟交换机维护的FDB表,会导致转发表中的内容全部被清空。连接跟踪(conntrack)指跟踪并记录连接状态,是状态防火墙进行状态检测的基础,用于维护通信双方之间的连接状态信息。
为了改善因广播未知单播的流量,基于状态防火墙的转发规则所造成的连接中断,可以在进行状态防火墙配置时,对于广播或者未知单播的流量均选择丢弃。然而,该种处理方式会引起需要进行传输的流量(如上述虚拟机A和虚拟机B之间传输的流量)在变成未知单播后被丢弃,引起业务的断流,不符合用户的需求。
基于上述研究,本公开提供一种报文传输方法及装置,在虚拟交换机进行流量转发过程中,针对满足预设处理条件的待传输流量,设置第一标记变量,基于第一标记变量,跳过状态防火墙的流量转发规则广播待传输流量,以避免待传输流量的连接标记为禁止状态,从而不禁止待传输流量传输至其他对象。从而避免因广播所造成待传输流量的连接被标记为禁止状态,避免连接中断。以及避免待传输流量变成未知单播后因广播而被丢弃,引起业务的断流,实现待传输流量的可靠传输。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
下面将结合本公开中附图,对本公开中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
请结合参阅图2,是本公开提供的服务器10的一种方框示意图。本公开中的服务器10可以是主机、计算机等能够创建虚拟交换机和虚拟机的设备,虚拟交换机与状态防火墙通信连接。其中,状态防火墙可以设置于服务器10中,也可以设置于独立于服务器10的设备中。如图2所示,服务器10可以包括:存储器11、处理器12和网络模块13。
所述存储器11、处理器12以及网络模块13相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器11中存储有至少一个可以软件或固件(firmware)的形式存储于所述存储器11中的功能模块,所述处理器12通过运行存储在存储器11内的软件或硬件形式的功能模块,从而执行各种功能应用以及数据处理,即实现本公开中由服务器10执行的流量传输方法。
其中,所述存储器11可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)、磁盘或固态硬盘等。其中,存储器11用于存储程序,所述处理器12在接收到执行指令后,执行所述程序。
所述处理器12可能是一种集成电路芯片,具有数据的处理能力。上述的处理器12可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。可以实现或者执行本公开中的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
网络模块13用于通过网络建立服务器10与外部通信终端之间的通信连接,实现网络信号及数据的收发操作。上述网络信号可包括无线信号或者有线信号。
可以理解,图2所示的结构仅为示意,服务器10还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
在上述基础上,本公开还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在服务器10执行下述的流量传输方法。
请结合参阅图3,本公开提供一种流量传输方法,该方法可以由服务器10执行,应用于服务器10中的虚拟交换机,所述虚拟交换机与状态防火墙通信连接。所述方法包括以下步骤。
步骤S11,获得需要所述虚拟交换机进行转发的待传输流量。
待传输流量可以来自于服务器10中的各虚拟机,也可以来自于外界设备。
步骤S12,若所述待传输流量为广播帧,则判断所述待传输流量是否满足预设处理条件。若所述待传输流量满足所述预设处理条件,则执行步骤S13和步骤S14。若所述待传输流量不满足所述预设处理条件,执行步骤S15和步骤S16。
待传输流量是否为广播帧可以通过以下方式判定:查找虚拟交换机的转发表中是否存在与待传输流量的目的MAC地址对应的端口,若虚拟交换机的转发表中存在与待传输流量的目的MAC地址对应的端口,则通过查找到的端口转发待传输流量。若虚拟交换机的转发表中不存在与待传输流量的目的MAC地址对应的端口,则判定待传输流量为广播帧。
本公开中,满足预设处理条件的待传输流量指需要避免被中断传输的流量。预设处理条件可以包括:待传输流量被标记为带状态转发,并且已经建立连接跟踪。
其中,在流量关联有连接状态时,流量带状态转发,流量所关联的连接状态可以灵活设置。例如,可以设置为允许客户端到服务端建立连接,但不允许服务端建立连接等。在流量未关联有连接状态时流量不带状态转发。流量进入虚拟交换机,由虚拟交换机提交给内核的过程中,内核进行虚拟连接状态的维护,即连接跟踪。虚拟交换机通过调用内核暴露的连接跟踪接口判断流量是否已建立连接跟踪以及关联的连接状态。
为了避免虚拟交换机基于待传输流量所要广播至的对象的流量转发规则,将满足预设处理条件的待传输流量判定为禁止,将其连接标记为禁止状态,使得待传输流量无法传输至其他对象,从而导致待传输流量中断。本公开中,若待传输流量为广播帧,且满足预设处理条件,在广播待传输流量之前,执行步骤S13。
步骤S13,针对所述待传输流量设置第一标记变量。
其中,针对所述待传输流量设置第一标记变量的方式有多种,例如,可以将预设标志寄存器的设定标志位设置为所述第一标记变量。其中,预设标志寄存器可以为流寄存器。又例如,可以通过内存变量设置第一标记变量。
步骤S14,基于所述第一标记变量,跳过所述状态防火墙的流量转发规则广播所述待传输流量,以避免基于所述待传输流量所要广播至的任一对象的流量转发规则将所述待传输流量的连接标记为禁止状态,从而不禁止所述待传输流量传输至其他对象。
由于基于第一标记变量,虚拟交换机跳过状态防火墙的流量转发规则广播待传输流量,从而避免了基于待传输流量所要广播至的任一对象的流量转发规则判定待传输流量的连接为禁止,将待传输流量的连接标记为禁止状态,进而使得待传输流量可以传输至其他对象。本公开中,待传输流量所要广播至的任一对象指与虚拟机交换机建立连接的、除进行待传输流量发送的设备之外的各设备,例如,在图1所示场景中,虚拟机A发送的待传输流量所要广播至的对象包括虚拟机B和虚拟机C。在图1所示场景中,若虚拟机A发送的待传输流量满足预设处理条件,则针对待传输流量设置第一标记变量。基于第一标记变量,跳过状态防火墙的流量转发规则,待传输流量被广播至虚拟机B和虚拟机C。在待传输流量广播至虚拟机C之后,虚拟机C判定自身的IP地址或者MAC地址与待传输流量中的相应地址不匹配,从而不回应该待传输流量。由于虚拟交换机跳过了状态防火墙的流量转发规则,因而不会将待传输流量的连接标记为禁止状态,从而不影响待传输流量传输至其他对象,如图1中的虚拟机B,从而确保虚拟机A能够与虚拟机B建立连接。
步骤S15,针对所述待传输流量设置第二标记变量。
其中,第二标记变量不同于第一标记变量,第二标记变量用于标识待传输流量并非满足预设处理条件的流量。
步骤S16,基于所述第二标记变量,根据所述状态防火墙的流量转发规则广播所述待传输流量,在基于所述待传输流量所要广播至的任一对象的流量转发规则判定所述待传输流量的连接为禁止时,将所述待传输流量的连接标记为禁止状态。
在待传输流量并不满足预设处理条件的情况下,表明待传输流量并非需要避免被中断的流量。该种情况下,针对待传输流量设置第二标记变量,基于第二标记变量,虚拟交换机在将待传输流量进行广播之前,判断基于待传输流量所要广播至的对象的流量转发规则,待传输流量的连接是否为禁止,如果为禁止,将待传输流量的连接标记为禁止状态,中断待传输流量的传输。例如,在图1所示场景中,若虚拟机A发送的待传输流量不满足预设处理条件,则针对待传输流量设置第二标记变量。基于第二标记变量,根据状态防火墙的流量转发规则广播待传输流量,在将待传输流量广播至虚拟机B和虚拟机C之前。虚拟交换机基于状态防火墙中的流量转发规则对待传输流量进行判断。例如,若虚拟交换机在将流量广播至虚拟机C之前,根据虚拟机C的流量转发规则得出禁止虚拟机A发送的流量通过,并在接收到虚拟机A发送的流量时,将连接标记为禁止状态,那么,虚拟交换机会将虚拟机A所传输的流量在状态防火墙中标记为禁止状态,中断待传输流量的传输。
基于上述流量传输方法,实现了对满足预设处理条件的待传输流量和不满足预设处理条件的待传输流量的分别处理,确保满足预设处理条件的待传输流量不会被标记为禁止状态,从而避免满足预设处理条件的待传输流量被拦截,确保满足预设处理条件的待传输流量的可靠传输。
为了更为清楚地阐述本公开的实现原理,现以下述场景为例,对本公开的实现流程进行举例说明。
以图1所示场景为例,假设状态防火墙的流量转发规则包括以下内容:虚拟机A,不配任何规则;虚拟机B,配置白名单,并放通A;虚拟机C,配置黑名单,拒绝A。那么,基于状态防火墙的流量转发规则,在出方向存在如下两条流表:
ct_state=+est-rel-rpl,ct_mark=0,icmp,reg1=0x5/0xffff,nw_src=172.20.21.201actions=output:NXM_NX_REG1[0..15]
ct_state=+est-rel-rpl,ct_mark=0,icmp,reg1=0xb/0xffff,nw_src=172.20.21.201actions=ct(commit,exec(load:0x1->NXM_NX_CT_MARK[]))
其中:reg1=0x5/0xffff代表流量的目的设备为虚拟机B,reg1=0xb/0xffff代表流量的目的设备为虚拟机C,172.20.21.201为虚拟机A的IP地址,172.20.21.202为虚拟机B的IP地址,172.20.21.203为虚拟机C的IP地址。
当在虚拟交换机执行命令清空转发表时,若虚拟机A ping虚拟机B,当虚拟机A传输的流量到达虚拟交换机后,虚拟交换机无法查找到虚拟机B的MAC地址,于是将流量进行广播,在将流量发送给虚拟机B和虚拟机C之前,虚拟交换机基于流量转发规则对待传输流量进行判断。
例如,在将流量发送给虚拟机C之前,基于状态防火墙的流量转发规则所得到的流表:
ct_state=+est-rel-rpl,ct_mark=0,icmp,reg1=0xb/0xffff,nw_src=172.20.21.201actions=ct(commit,exec(load:0x1->NXM_NX_CT_MARK[])),虚拟交换机会将流量conntrack的mark置为1,在匹配该条流表之前,内核态的conntrack的mark=0,根据该流表匹配动作,流量送入内核态,基于状态防火墙的流量转发规则所得到的上述流表导致mark置1,mark置1之后,流量传输中断,从而影响虚拟机A和虚拟机B的通信。
又例如,假设状态防火墙的流量转发规则包括以下内容:虚拟机A,不配任何规则;虚拟机B,配置白名单,并放通A;虚拟机C,配置白名单,拒绝一切其他的连接。那么,基于状态防火墙的流量转发规则,在出方向存在如下两条流表:
ct_state=+est-rel-rpl,ct_mark=0,icmp,reg1=0x5/0xffff,nw_src=172.20.21.201actions=output:NXM_NX_REG1[0..15]
ct_state=+est-rel-rpl,ct_mark=0,ip,reg1=0xb/0xffffactions=ct(commit,exec(load:0x1->NXM_NX_CT_MARK[]))
其中:reg1=0x5/0xffff代表目的设备为虚拟机B,reg1=0xb/0xffff代表目的设备为虚拟机C,172.20.21.201为虚拟机A的IP地址,172.20.21.202为虚拟机B的IP地址,172.20.21.203为虚拟机C的IP地址。
当在虚拟交换机执行命令清空转发表时,虚拟机A发起的ping流量到达虚拟交换机后,虚拟交换机无法查找到虚拟机B的MAC地址,于是将流量进行广播,在将流量发送给虚拟机B和虚拟机C之前,虚拟交换机基于流量转发规则对待传输流量进行判断。
例如,在将流量广播给虚拟机C之前,基于状态防火墙的流量转发规则所得到的流表:
ct_state=+est-rel-rpl,ct_mark=0,ip,reg1=0xb/0xffffactions=ct(commit,exec(load:0x1->NXM_NX_CT_MARK[])),虚拟交换机会将mark置1。从而导致建立的连接通道被认为是非法的,后续的流量到达后将直接被丢弃。
由上述举例可知,在转发表被清空之后,基于状态防火墙的流量转发规则,待传输流量有很大的可能会被标记为禁止状态(mark置1),导致通信失败。
为了确保上述场景中流量的可靠传输,本公开中,通过以下方式进行流量传输。
虚拟交换机获得需要进行转发的待传输流量,如虚拟机A所要传输至虚拟机B的流量后,查找转发表中是否存在与虚拟机B的MAC地址对应的端口,若转发表中存在与虚拟机B的MAC地址对应的端口,则通过查找到的端口转发待传输流量。若转发表中不存在与虚拟机B的MAC地址对应的端口,则判定待传输流量为广播帧。
在判定待传输流量为广播帧的情况下,判断待传输流量是否满足预设处理条件,如待传输流量被标记为带状态转发,并且已经建立连接跟踪。在待传输流量为广播帧,且满足预设处理条件时,在广播待传输流量之前,在虚拟交换机层针对待传输流量设置第一标记变量,从而基于第一标记变量,在出方向上让待传输流量跳过状态防火墙的流量转发规则的一系列转发动作,使得上述场景中,虚拟交换机不会因虚拟机C的流量转发规则将待传输流量的连接设置为禁止状态,不执行将mark设置为1的这一动作,那么连接通道不会被认为是非法的,从而使得待传输流量能够传输至其他对象,如传输至虚拟机B,虚拟机B回复的流量亦可以传输至虚拟机A。从而确保待传输流量的可靠传输。
在判定待传输流量为广播帧的情况下,若待传输流量不满足预设处理条件,那么针对述待传输流量设置第二标记变量,基于第二标记变量,在出方向上不让待传输流量跳过状态防火墙的流量转发规则的一系列转发动作,使得上述场景中,根据状态防火墙的流量转发规则广播待传输流量,虚拟交换机在将待传输流量进行广播之前,判断基于待传输流量所要广播至的对象的流量转发规则,待传输流量的连接是否为禁止,例如,在基于虚拟机C的流量转发规则判定待传输流量的连接为禁止时,将待传输流量的连接标记为禁止状态,执行将mark设置为1的这一动作,从而中断待传输流量的传输。
请结合参阅图4,本公开还提供一种流量传输装置14,应用于服务器10中的虚拟交换机,所述虚拟交换机与状态防火墙通信连接,所述流量传输装置14包括流量获得模块141和流量处理模块142。
其中,流量获得模块141用于获得需要所述虚拟交换机进行转发的待传输流量。
关于流量获得模块141的实现方式可以参阅图3中步骤S11的相关描述,在此不作赘述。
流量处理模块142用于若所述待传输流量为广播帧,则判断所述待传输流量是否满足预设处理条件;若所述待传输流量满足所述预设处理条件,则针对所述待传输流量设置第一标记变量;基于所述第一标记变量,跳过所述状态防火墙的流量转发规则广播所述待传输流量,以避免基于所述待传输流量所要广播至的任一对象的流量转发规则将所述待传输流量的连接标记为禁止状态,从而不禁止所述待传输流量传输至其他对象。
关于流量处理模块142的实现方式可以参阅图3中步骤S12至步骤S14的相关描述,在此不作赘述。
可选地,所述流量处理模块142还用于:若所述待传输流量不满足所述预设处理条件,则针对所述待传输流量设置第二标记变量;基于所述第二标记变量,根据所述状态防火墙的流量转发规则广播所述待传输流量,在基于所述待传输流量所要广播至的任一对象的流量转发规则判定所述待传输流量的连接为禁止时,将所述待传输流量的连接标记为禁止状态。
可选地,所述预设处理条件包括:待传输流量被标记为带状态转发,并且已经建立连接跟踪。
可选地,所述流量处理模块还用于,若所述虚拟交换机的转发表中存在与所述待传输流量的目的MAC地址对应的端口,则通过查找到的所述端口转发所述待传输流量;若所述虚拟交换机的转发表中不存在与所述待传输流量的目的MAC地址对应的端口,则判定所述待传输流量为广播帧。
可选地,所述流量处理模块针对所述待传输流量设置第一标记变量,包括:将预设标志寄存器的设定标志位设置为所述第一标记变量。
本公开中,流量传输装置14的实现原理与前述流量传输方法的实现原理类似,相应内容可以参阅前述方法实施例,因而在此不作赘述。
本公开中的流量传输方法及装置,通过对满足预设处理条件的待传输流量设置第一标记变量,对不满足预设处理条件的待传输流量设置第二标记变量,实现了对不同待传输流量的分流处理,针对设置有第一标记变量的待传输流量,跳过状态防火墙的流量转发规则,从而避免将待传输流量的连接标记为禁止状态,从而不禁止待传输流量传输至其他对象,确保待传输流量的可靠传输。针对设置有第二标记变量的待传输流量,根据状态防火墙的流量转发规则进行广播,在根据待传输流量所要广播至的任一对象的流量转发规则判定其连接为禁止时,将待传输流量的连接标记为禁止状态,确保了待传输流量转发的安全性。
在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本公开的可选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (6)
1.一种流量传输方法,其特征在于,应用于服务器中的虚拟交换机,所述虚拟交换机与状态防火墙通信连接,所述方法包括:
获得需要所述虚拟交换机进行转发的待传输流量;
若所述待传输流量为广播帧,则判断所述待传输流量是否满足预设处理条件;
若所述待传输流量满足所述预设处理条件,则针对所述待传输流量设置第一标记变量;
基于所述第一标记变量,跳过所述状态防火墙的流量转发规则广播所述待传输流量,以避免基于所述待传输流量所要广播至的任一对象的流量转发规则将所述待传输流量的连接标记为禁止状态,从而不禁止所述待传输流量传输至其他对象;
若所述待传输流量不满足所述预设处理条件,则针对所述待传输流量设置第二标记变量;
基于所述第二标记变量,根据所述状态防火墙的流量转发规则广播所述待传输流量,在基于所述待传输流量所要广播至的任一对象的流量转发规则判定所述待传输流量的连接为禁止时,将所述待传输流量的连接标记为禁止状态;
其中,所述预设处理条件包括:待传输流量被标记为带状态转发,并且已经建立连接跟踪。
2.根据权利要求1所述的流量传输方法,其特征在于,所述方法还包括:
若所述虚拟交换机的转发表中存在与所述待传输流量的目的MAC地址对应的端口,则通过查找到的所述端口转发所述待传输流量;若所述虚拟交换机的转发表中不存在与所述待传输流量的目的MAC地址对应的端口,则判定所述待传输流量为广播帧。
3.根据权利要求1所述的流量传输方法,其特征在于,所述针对所述待传输流量设置第一标记变量,包括:将预设标志寄存器的设定标志位设置为所述第一标记变量。
4.一种流量传输装置,其特征在于,应用于服务器中的虚拟交换机,所述虚拟交换机与状态防火墙通信连接,所述流量传输装置包括:
流量获得模块,用于获得需要所述虚拟交换机进行转发的待传输流量;
流量处理模块,用于若所述待传输流量为广播帧,则判断所述待传输流量是否满足预设处理条件;若所述待传输流量满足所述预设处理条件,则针对所述待传输流量设置第一标记变量;基于所述第一标记变量,跳过所述状态防火墙的流量转发规则广播所述待传输流量,以避免基于所述待传输流量所要广播至的任一对象的流量转发规则将所述待传输流量的连接标记为禁止状态,从而不禁止所述待传输流量传输至其他对象;
所述流量处理模块还用于:若所述待传输流量不满足所述预设处理条件,则针对所述待传输流量设置第二标记变量;基于所述第二标记变量,根据所述状态防火墙的流量转发规则广播所述待传输流量,在基于所述待传输流量所要广播至的任一对象的流量转发规则判定所述待传输流量的连接为禁止时,将所述待传输流量的连接标记为禁止状态;
所述预设处理条件包括:待传输流量被标记为带状态转发,并且已经建立连接跟踪。
5.根据权利要求4所述的流量传输装置,其特征在于,所述流量处理模块还用于,若所述虚拟交换机的转发表中存在与所述待传输流量的目的MAC地址对应的端口,则通过查找到的所述端口转发所述待传输流量;若所述虚拟交换机的转发表中不存在与所述待传输流量的目的MAC地址对应的端口,则判定所述待传输流量为广播帧。
6.根据权利要求5所述的流量传输装置,其特征在于,所述流量处理模块针对所述待传输流量设置第一标记变量,包括:将预设标志寄存器的设定标志位设置为所述第一标记变量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910030515.9A CN109743326B (zh) | 2019-01-10 | 2019-01-10 | 流量传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910030515.9A CN109743326B (zh) | 2019-01-10 | 2019-01-10 | 流量传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109743326A CN109743326A (zh) | 2019-05-10 |
CN109743326B true CN109743326B (zh) | 2021-09-07 |
Family
ID=66364621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910030515.9A Active CN109743326B (zh) | 2019-01-10 | 2019-01-10 | 流量传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109743326B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110798409A (zh) * | 2019-10-31 | 2020-02-14 | 深信服科技股份有限公司 | 流量处理方法、装置和存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1735072B (zh) * | 2004-08-13 | 2010-04-21 | 中兴通讯股份有限公司 | 一种无线局域网网桥透明桥接的改进实现方法 |
CN101789904A (zh) * | 2010-02-04 | 2010-07-28 | 杭州华三通信技术有限公司 | 流量控制的方法及设备 |
CN103532878B (zh) * | 2013-09-26 | 2017-01-04 | 华为技术有限公司 | 数据包的处理方法和网络流量的管理方法及装置和系统 |
KR20150053620A (ko) * | 2013-11-08 | 2015-05-18 | 한국전자통신연구원 | 패킷 전송 장치 및 방법 |
CN103973700A (zh) * | 2014-05-21 | 2014-08-06 | 成都达信通通讯设备有限公司 | 移动终端预设联网地址防火墙隔离应用系统 |
CN107005479B (zh) * | 2014-12-17 | 2020-06-26 | 华为技术有限公司 | 软件定义网络sdn中数据转发的方法、设备和系统 |
CN106027463B (zh) * | 2016-01-21 | 2019-10-01 | 李明 | 一种数据传输的方法 |
CN105721347A (zh) * | 2016-02-18 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 精确控制网络带宽的方法和系统 |
CN105681218B (zh) * | 2016-04-11 | 2019-01-08 | 北京邮电大学 | 一种Openflow网络中流量处理的方法及装置 |
CN106357538A (zh) * | 2016-11-17 | 2017-01-25 | 迈普通信技术股份有限公司 | 一种数据转发方法及设备 |
CN106899604B (zh) * | 2017-03-14 | 2020-06-05 | 东软集团股份有限公司 | 数据包过滤规则的处理方法及装置 |
WO2018170516A2 (en) * | 2017-03-17 | 2018-09-20 | Ofinno Technologies, Llc | Radio access network notification area update failure |
CN108471397B (zh) * | 2018-01-31 | 2020-12-15 | 华为技术有限公司 | 防火墙配置、报文发送方法和装置 |
-
2019
- 2019-01-10 CN CN201910030515.9A patent/CN109743326B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109743326A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8250647B2 (en) | Method and apparatus for automatic filter generation and maintenance | |
US7167922B2 (en) | Method and apparatus for providing automatic ingress filtering | |
US20080250496A1 (en) | Frame Relay Device | |
CN110830371B (zh) | 报文重定向方法、装置、电子设备及可读存储介质 | |
US8732296B1 (en) | System, method, and computer program product for redirecting IRC traffic identified utilizing a port-independent algorithm and controlling IRC based malware | |
JP4615504B2 (ja) | ネットワーク中継システム、および、ネットワーク中継システムにおける方法 | |
US20060137002A1 (en) | System, method and program product to route message packets | |
US7869394B1 (en) | Limiting data packet forwarding to trusted ports | |
EP2991292A1 (en) | Network collaborative defense method, device and system | |
CN111200611B (zh) | 基于边界接口等价类的域内源地址验证方法及装置 | |
US8949458B1 (en) | Automatic filtering to prevent network attacks | |
CA2494052C (en) | Method and apparatus for inspecting inter-layer address binding protocols | |
US9467372B2 (en) | Methods and systems for processing internet protocol packets | |
US11805049B2 (en) | Communication method and communications device | |
CN110191104A (zh) | 一种安全防护的方法及装置 | |
CN109743326B (zh) | 流量传输方法及装置 | |
US20200228496A1 (en) | Transfer apparatus | |
JP2003505934A (ja) | 安全なネットワーク・スイッチ | |
US20180007075A1 (en) | Monitoring dynamic device configuration protocol offers to determine anomaly | |
CN116055387B (zh) | 组播报文处理方法、装置、服务器和介质 | |
CN113014530B (zh) | Arp欺骗攻击防范方法及系统 | |
CN112217783A (zh) | 用于在通信网络中的攻击识别的设备和方法 | |
US8625456B1 (en) | Withholding a data packet from a switch port despite its destination address | |
US20060185009A1 (en) | Communication apparatus and communication method | |
CN110945847B (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 |