CN101707617B - 报文过滤方法、装置及网络设备 - Google Patents

报文过滤方法、装置及网络设备 Download PDF

Info

Publication number
CN101707617B
CN101707617B CN2009102529292A CN200910252929A CN101707617B CN 101707617 B CN101707617 B CN 101707617B CN 2009102529292 A CN2009102529292 A CN 2009102529292A CN 200910252929 A CN200910252929 A CN 200910252929A CN 101707617 B CN101707617 B CN 101707617B
Authority
CN
China
Prior art keywords
message
information
address
parameter
icmp
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.)
Expired - Fee Related
Application number
CN2009102529292A
Other languages
English (en)
Other versions
CN101707617A (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.)
Ruijie Networks Co Ltd
Original Assignee
Fujian Star Net Communication 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 Fujian Star Net Communication Co Ltd filed Critical Fujian Star Net Communication Co Ltd
Priority to CN2009102529292A priority Critical patent/CN101707617B/zh
Publication of CN101707617A publication Critical patent/CN101707617A/zh
Application granted granted Critical
Publication of CN101707617B publication Critical patent/CN101707617B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种报文过滤方法、装置及网络设备,方法包括:根据接收到的报文,获取包括报文的源IP地址、目的IP地址、协议类型、第一参数和第二参数的第一信息和表示源IP地址所属的VRF的第一标识;对第一信息进行离散化处理,生成第一索引值;将第一信息和第一标识与数据流表中第一索引值对应的各流记录中的信息分别进行匹配;当未匹配到包含第一信息和第一标识的流记录时,创建报文所属的流记录;当匹配到包含第一信息和第一标识的流记录时,根据流记录中的连接状态信息判断报文的合法性,并对报文进行过滤处理。本发明提供的报文过滤方法、装置及网络设备,减少了报文过滤过程中查询路由表的操作,提高了防火墙转发报文的性能。

Description

报文过滤方法、装置及网络设备
技术领域
本发明实施例涉及防火墙技术,尤其涉及一种报文过滤方法、装置及网络设备。 
背景技术
防火墙作为一种重要的网络防护设备,被广泛的配置在网络的各个环节,以对内部网络和外部网络之间的交互报文进行过滤,拦截恶意攻击。防火墙对报文的过滤是通过跟踪整个报文的交互过程,在一定上下文环境中对交互报文的合法性进行判断来实现的,而不是仅基于单个报文。其中,防火墙通过为交互过程中的报文创建“流”来记录交互过程中的上下文环境,并以流表的形式组织和管理流。 
通常,流记录中的字节元素只包含源网络协议(Internet Protocol;简称为:IP)地址、目的IP地址、协议类型、源端口和目的端口五元组,并根据该五元组完成对报文的过滤处理。但是,随着虚拟专用网络(VirtualPrivate Network;简称为:VPN)的快速发展,为了隔离不同的VPN用户和解决地址重叠问题引出了虚拟路由转发(Virtual Routing Forwarding;简称为:VRF)技术,VRF可以把一台路由器划分为多台虚拟路由器,每一台虚拟路由器有自己的路由表、转发表和相应接口,因此,在一台路由器上可以维护一个或多个VRF,不同的VRF通过VRF标识区分。而在一些特定的应用环境中,需要对VRF静态路由进行扩展,通过配置到其他VRF的下一跳作为出接口以实现跨VRF路由,上述以五元组方式对报文进行过滤处理的方式将不再适用。 
在跨VRF路由模式下,防火墙接收到报文,为了判断该报文是否合 法,需要从报文头提取源IP、目的IP、协议类型、源端口和目的端口;从防火墙接口属性值中获取源IP所属的VRF以及通过查询路由表得到目的IP所属的VRF,即得到七元组:源IP、源IP所属的VRF,目的IP、目的IP所属的VRF、协议类型、源端口和目的端口。七元组经过哈希(HASH)运算,根据该HASH结果找到该报文在流表中的映射位置。然后将该报文的七元组与流表映射位置处的各流记录中的七元组逐个进行匹配;若与其中一个匹配上,则说明该报文所属的流已存在,并通过进一步判断该报文类型,以判断报文的合法性;若未匹配上,则在该报文符合创建新连接条件后,为该报文创建一个流,并挂在流表索引对应的位置,以记录该报文所属的连接。 
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:防火墙每收到报文后,在获取七元组,以确定该报文所属的“流”记录是否存在的过程中,需要通过查路由表获得目的IP所属的VRF,而查路由表是一种比较耗时的操作,频繁查询路由表,将会影响防火墙转发报文的速度,降低防火墙转发报文的性能。 
发明内容
本发明实施例提供一种报文过滤方法、装置及网络设备,用以克服现有技术中防火墙过滤报文时频繁查询路由表的缺陷,提高防火墙转发报文的性能。 
本发明实施例提供一种报文过滤方法,包括: 
根据接收到的报文,获取第一信息和第一标识,所述第一信息包括所述报文的源IP地址、目的IP地址、协议类型、第一参数和第二参数,所述第一标识为所述源IP地址所属的虚拟路由转发表的标识; 
对所述第一信息进行离散化处理,生成第一索引值; 
在数据流表中所述第一索引值对应的各流记录中,将所述第一信息和所 述第一标识与各流记录中的信息分别进行匹配; 
当未匹配到包含所述第一信息和所述第一标识的流记录时,创建与所述第一索引值对应的新的流记录,用于记录连接状态信息,并将所述第一信息和所述第一标识记录在所述新的流记录中,且将根据所述第一信息和所述源IP地址所属的虚拟路由转发表的标识在路由表中查询获取的目的IP地址所属的虚拟路由转发表的标识记录在所述新的流记录中; 
当匹配到包含所述第一信息和所述第一标识的流记录时,根据匹配到的流记录中的连接状态信息判断所述报文的合法性,并对所述报文进行过滤处理。 
本发明实施例提供一种报文过滤装置,包括: 
获取模块,用于根据接收到的报文,获取第一信息和第一标识,所述第一信息包括所述报文的源IP地址、目的IP地址、协议类型、第一参数和第二参数,所述第一标识为所述源IP地址所属的虚拟路由转发表的标识; 
生成模块,用于对所述第一信息进行离散化处理,生成第一索引值; 
匹配模块,用于在数据流表中所述第一索引值对应的各流记录中,将所述第一信息和所述第一标识与各流记录中的信息分别进行匹配; 
创建模块,用于当未匹配到包含所述第一信息和所述第一标识的流记录时,创建与所述第一索引值对应的新的流记录,用于记录连接状态信息,并将所述第一信息和所述第一标识记录在所述新的流记录中,且将根据所述第一信息和所述源IP地址所属的虚拟路由转发表的标识在路由表中查询获取的目的IP地址所属的虚拟路由转发表的标识记录在所述新的流记录中; 
处理模块,用于当匹配到包含所述第一信息和所述第一标识的流记录时,根据匹配到的流记录中的连接状态信息判断所述报文的合法性,并对所述报文进行过滤处理。 
本发明实施例提供一种网络设备,包括本发明实施例提供的报文过滤装置。 
本发明实施例的报文过滤方法、装置及网络设备,根据报文的源IP地址、目的IP地址、协议类型、第一参数和第二参数,获取报文在数据流表中的映射位置,将报文的源IP地址、目的IP地址、协议类型、第一参数、第二参数以及源IP地址所属的VRF的标识与映射位置处的各流记录中的信息进行匹配,根据匹配结果对报文进行过滤处理。由于本发明实施例的技术方案在匹配过程中不需要目的IP地址所属的VRF的标识,因此,不需要查询路由表,节省了防火墙的处理时间,在实现对报文进行过滤处理的同时,克服了现有技术中频繁查询路由表的操作,提高了防火墙转发报文的性能。 
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。 
图1为本发明实施例一提供的报文过滤方法的流程图; 
图2A为本发明实施例二提供的报文过滤方法中发送TCP报文的流程图; 
图2B为本发明实施例二提供的报文过滤方法中接收响应报文的流程图; 
图3为本发明实施例三提供的报文过滤装置的结构示意图。 
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 
实施例一 
图1为本发明实施例一提供的报文过滤方法的流程图,本实施例的执行主体为防火墙,如图1所示,本实施例的报文过滤方法包括: 
步骤11,根据接收到的报文,获取第一信息和第一标识,第一信息包括报文的源IP地址、目的IP地址、协议类型、第一参数和第二参数,第一标识为源IP地址所属的VRF的标识; 
其中,防火墙接收到报文后从报文头中获取第一信息,并且从接收该报文的防火墙接口的属性值中获取第一标识,即源IP地址所属的VRF的标识。 
步骤12,对第一信息进行离散化处理,生成第一索引值; 
步骤13,在数据流表中第一索引值对应的各流记录中,将第一信息和第一标识与各流记录中的信息分别进行匹配; 
该步骤用于判断该报文所对应的流记录是否存在,若不存在,则执行步骤14;若存在,则执行步骤15。第一信息和第一标识组成报文六元组。其中,各流记录记载的信息至少包括有第一信息、第一标识以及所对应会话连接的连接状态信息,该连接状态信息随会话连接的变化而变化。 
步骤14,当未匹配到包含第一信息和第一标识的流记录时,创建与第一索引值对应的新的流记录,用于记录连接状态信息,并将第一信息和第一标识记录在新的流记录中,且将根据第一信息和源IP地址所属的VRF的标识在路由表中查询获取的目的IP地址所属的VRF的标识记录在新的流记录中; 
该步骤用于在该报文所对应的流记录不存在时,且在确定该报文符合创建新连接条件时,创建该报文的流记录,以记录该报文所属的连接。 
步骤15,当匹配到包含第一信息和第一标识的流记录时,根据匹配到的流记录中的连接状态信息判断该报文的合法性,并对该报文进行过滤处理。 
具体的,通过所记录的该报文的上下文环境来判断该报文的合法性,若该报文合法,防火墙可以转发该报文;若该报文不合法,防火墙可能会丢弃该报文。 
本实施例的报文过滤方法,对报文中的第一信息进行离散化处理实现将 不同报文映射到数据流表中,通过报文中的第一信息和第一标识与映射位置对应的各流记录进行匹配,以确定报文所属的流记录是否已存在,进而根据匹配结果对报文进行过滤处理。本实施例技术方案中,报文六元组的获取不需要查询路由表,与现有技术相比,减少了查询路由表的操作次数,提高了防火墙转发报文的性能。 
其中,针对不同的IP报文,本发明技术方案中的第一信息具有不同的内容。具体如下: 
对于传输控制协议(Transmission Control Protocol;简称为:TCP)或用户数据包协议(User Datagram Protocol;简称为:UDP)报文,第一信息即通常所说的报文五元组:源IP地址、目的IP地址、协议类型、源端口(对应于第一参数)和目的端口(对应于第二参数);对于因特网控制报文协议(Internet Control Message Protocol;简称为:ICMP)报文,第一信息具体为源IP地址、目的IP地址和协议类型、ICMP报文标识(ICMP_Id)(对应于第一参数)以及该报文的第一ICMP报文类型(ICMP_Type)和ICMP报文代码字段(ICMP_Code)的组合(对应于第二参数);而对于其它协议类型的报文,其中第一信息为源IP地址、目的IP地址、协议类型、第一参数和第二参数,且第一参数和第二参数被置0。 
具体的,本发明技术方案中的数据流表用于对各流记录进行组织和管理,并通过离散化处理的方式,将各个报文对应的流记录分布到该数据流表中进行管理;第一索引值用于表示该报文被映射到数据流表中的位置,也即对应该报文的流记录的在数据流表中的存储位置;本实施例通过HASH算法对报文进行离散化处理,对于TCP或UDP报文,具体处理过程如下: 
将第一信息作为HASH运算的输入,对第一信息进行离散化处理,获得第一运算结果,即HASH运算结果;然后,将第一信息中的源IP地址、源端口分别与目的IP地址、目的端口进行对调;将对调后的第一信息作为HASH运算的输入,对对调后的第一信息进行离散化处理,获得第二运算结果,即 HASH运算结果;将第一运算结果和第二运算结果做异或处理,生成第一索引值。 
进一步,本发明技术方案还提供了对ICMP报文进行离散化处理的方法。由于ICMP报文与ICMP报文的响应报文中的ICMP报文类型(ICMP_Type)不同,使得ICMP报文与ICMP报文的响应报文中第二参数不同,因此不能像TCP或UDP报文那样对第一参数和第二参数进行简单的对调。本发明实施例提供的对ICMP报文进行离散化处理的方法具体为: 
通过哈希运算对第一信息进行离散化处理,获得第三运算结果;根据第一信息中的第一ICMP报文类型,查询ICMP报文的映射表,获取第二ICMP报文类型,并生成第二信息;通过哈希运算对第二信息进行离散化处理,获得第四运算结果;将第三运算结果和第四运算结果做异或运算,生成第一索引值。其中,第二信息包括目的IP地址、源IP地址、协议类型、ICMP报文标识和第二ICMP报文类型与ICMP报文代码字段的组合。其中第一ICMP报文类型和第二ICMP报文类型用于表示连接过程中发起端的报文和响应端报文的类型。 
下面举例说明第一ICMP报文类型和第二ICMP报文类型的对应关系,例如若第一ICMP报文类型对应于ICMP响应报文(ICMP_ECHO),则第二ICMP报文类型对应于ICMP响应报文的应答报文(ICMP_ECHO_REPLY);反之,若第一ICMP报文类型对应于ICMP_ECHO_REPLY报文,则第二ICMP报文类型对应于ICMP_ECHO报文;若第一ICMP报文类型对应于ICMP的地址信息(ICMP_ADDRESS),则第二ICMP报文类型对应于ICMP地址信息应答(ICMP_ADDRESS_REPLY);反之,第一ICMP报文类型对应于ICMP_ADDRESS_REPLY,则第二ICMP报文类型对应于ICMP_ADDRESS。 
对于其他协议类型的报文,由于第一信息中的第一参数和第二参数为0,因此可以采用本实施例提供的离散化TCP或UDP报文的方法实现离散化处 理。 
由于HASH算法具有在输入参数的特定位置对调后保持HASH结果不变的特性,因此,通过HASH算法将不同报文映射到数据流表,可以保证连接过程中的交互报文被映射到相同的位置;而本实施例采用上述算法,进一步保证交互报文被映射到同一位置,以保证后续匹配过程的准确性。 
本发明以下实施例以TCP报文为例,对本发明的技术方案进一步做详细说明。 
实施例二 
图2A为本发明实施例二提供的报文过滤方法中发送TCP报文的流程图,图2B为本发明实施例二提供的报文过滤方法中接收响应报文的流程图。本实施例以实施例一为基础,以TCP报文为例,通过具体的交互过程,对本实施例提供的跨VRF路由模式下的报文过滤方法进行说明,首先做如下假设: 
假设防火墙路由表中存在两个路由实例:第一路由实例VRF_A和第二路由实例VRF_B;且第一路由实例为网络地址为192.168.100.0第一网络的虚拟路由转发表,且VRF_A到目的网络地址为192.168.200.0的第二网络的路由出接口的下一跳需要通过查找第二路由实例得到;第二路由实例为第二网络的虚拟路由转发表,且VRF_B到目的第一网络的路由出接口的下一跳需要通过查找第一路由实例得到;则网络地址为192.168.100.0的第一网络和网络地址为192.168.200.0第二网络之间的通信需要跨VRF实现。 
下面以第一网络中IP地址为192.168.100.11的第一主机向第二网络中IP地址为192.168.200.22的第二主机首次发出TCP报文,而第二主机向第一主机返回响应报文的过程为例,具体的,本实施例的报文过滤方法包括以下步骤: 
基于上述,如图2A所示,本实施例中发送TCP报文的过程包括以下步骤: 
步骤21,防火墙接收来第一主机发往第二主机的TCP报文; 
步骤22,防火墙从该TCP报文的报文头中获取报文五元组; 
本步骤中报文五元组为:源IP地址:192.168.100.11、目的IP地址:192.168.200.22、源端口:Sport、目的端口:Dport与协议类型:P_TCP(TCP协议值)。 
步骤23,防火墙从接收TCP报文的接口属性值中获取源IP地址:192.168.100.11所属的VRF的标识; 
本步骤中源IP地址所属的VRF为VRF_A,其标识以标识号VRF_A_ID表示。 
步骤24,防火墙对报文五元组进行HASH运算,生成第一索引值M; 
步骤25,防火墙将TCP报文的报文五元组与数据流表中第一索引值M位置的各个流记录中的信息进行匹配; 
由于该TCP报文为首次发出的报文,该TCP报文所属的流还不存在,因此,防火墙在确定该报文符合创建新的流记录的条件后,创建该TCP报文所属的流记录。 
步骤26,防火墙通过查询路由表,获取目的IP地址:192.168.200.22所属的VRF的标识,创建该TCP报文所属的流记录,并转发TCP报文给第二主机;将所建立的TCP报文的流记录记为M_TCP流; 
本步骤中目的IP地址所属的VRF为VRF_B,其标识以标识号VRF_B_ID表示;具体的,该步骤创建的TCP报文所属的流记录中记载有源IP地址:192.168.100.11、目的IP地址:192.168.200.22、源端口:Sport、目的端口:Dport、协议类型:P_TCP、源IP地址所属的VRF的标识号VRF_A_ID、目的IP地址所属的VRF的标识号VRF_B_ID以及本次连接的状态信息等信息,其中状态信息中包含有后续交互报文所处的上下文环境。 
如图2B所示,本实施例接收响应报文的过程包括: 
步骤27,防火墙在转发TCP报文后,接收第二主机的响应报文; 
步骤28,防火墙从响应报文的报文头中获取响应报文的报文五元组; 
本步骤中报文五元组具体为:源IP地址:192.168.200.22、目的IP地址:192.168.100.11、源端口:Dport、目的端口:Sport与协议类型:P_TCP(TCP协议值)。 
步骤29,防火墙从接收响应报文的接口属性值中获取源IP地址:192.168.200.22所属的VRF的标识; 
本步骤中源IP地址所属的VRF为VRF_B,其标识以标识号VRF_B_ID表示。 
步骤30,防火墙对响应报文的报文五元组进行HASH运算,生成第二索引值N; 
基于本发明实施例一提供的HASH算法,以及TCP报文和响应报文的报文五元组中参数位置不同,但参数值相同的特点,可知,经HASH运算得到的第一索引值M和第二索引值N相同。 
步骤31,防火墙将响应报文与数据流表中第一索引值M(或第二索引值N)位置的各个流记录中的信息进行匹配; 
具体的,在与第一索引值M位置的各个流记录逐一匹配后,得到响应报文的报文五元组与数据流表中M_TCP流匹配一致,具体为: 
响应报文的报文五元组中源IP地址:192.168.200.22、目的IP地址:192.168.100.11、源端口:Dport、目的端口:Sport、协议类型:P_TCP、源IP地址所属的VRF的标识号VRF_B_ID,分别与M_TCP流的目的IP地址:192.168.200.22、源IP地址:192.168.100.11、目的端口:Dport、源端口:Sport、协议类型:P_TCP、目的IP地址所属的VRF的标识号VRF_B_ID相一致。 
至此,防火墙找到响应报文所属的流记录,然后根据该流记录中的信息对该响应报文进行过滤处理。具体的,由于以TCP报文为例,故握手(Synchronize;简称为:SYN)报文是这次交互的初始报文,即防火墙收到的是SYN报文,并创建该SYN报文所属的流记录。通过SYN报文所示出的上下文环境可知,后续报文只允许是第二主机响应的握手响应(Synchronize ACKnowledge Character;简称为:SYNACK)报文,或第一主机重发的SYN报文;如果第一主机的非SYN报文,或第二主机的非SYNACK报文,都认为非法。对于其他类型报文,如FIN(FINish;简称为:FIN)报文、ACK(ACKnowledge;简称为:ACK)报文等,也是通过上下文环境决定取舍。 
本实施例假设该响应报文为SYNACK报文,即合法,则防火墙执行步骤32。 
步骤32,防火墙将响应报文转发给第一主机。 
由于跨VRF路由机制决定了源IP地址、目的IP地址、源IP地址所属的VRF的标识和目的IP地址所属的VRF的标识其中已知任意三个即可确定第四个,因此,本发明技术方案利用报文六元组与流记录进行匹配,可以获得与利用报文七元组进行匹配时相同的匹配结果。而由上述过程可知,本发明技术方案只在创建流记录时查询一次路由表,后续报文的转发不再需要查询路由表,减少了防火墙查询路由表的次数,使得防火墙可以快速转发报文,提高了防火墙转发报文的性能。 
基于上述技术方案,进一步通过比对,对本发明技术方案的性能进行说明,具体如下: 
假如以TCP报文的报文五元组和源IP地址所属的VRF的标识,即源IP地址:192.168.100.11、目的IP地址:192.168.200.22、源端口:Sport、目的端口:Dport、协议类型:P_TCP和源IP地址所属的VRF的标识号VRF_A_ID,作为HASH运算的输入,得到第一索引值M,并将TCP报文所属的流记录建立在第一索引值M对应的位置; 
在对响应报文进行匹配时,以响应报文的报文五元组和源IP地址所述的VRF的标识,即源IP地址:192.168.200.22、目的IP地址:192.168.100.11、源端口:Dport、目的端口:Sport、协议类型:P_TCP和源IP地址所属的VRF的标识号VRF_B_ID,作为HASH运算的输入,得到第二索引值N; 
由于两次HASH运算的输入不同,即TCP报文的源IP地址所属的VRF 的标识号VRF_A_ID与响应报文的源IP地址所属的VRF的标识号VRF_B_ID不同,则第一索引值M与第二索引值N不同,故响应报文无法匹配到正确的M_TCP流,根据具体的通信规则,防火墙有可能将该报文作为非法报文进行丢弃,导致第一主机无法收到第二主机的响应报文。 
通过上述分析可知,本发明以五元组作为HASH运算输入,将报文映射到数据流表中进行管理的方式,可以保证连接过程中交互报文能够正确匹配到所属的流记录。 
另外,在上述各实施例提供的技术方案中,防火墙也会定期执行数据流表的老化程序,即清除无效的(在规定时间长度内没有报文往来)或连接已经关闭的流记录,以避免发生因数据流表存储已满,而无法再记录新的流记录的情况。 
实施例三 
图3为本发明实施例三提供的报文过滤装置的结构示意图,本实施例的报文过滤装置,可以独立设置,并根据具体需求与网络中的路由设备相连接,也可以设置于路由设备中,如图3所示,本实施例的过滤装置包括:获取模块31、生成模块32、匹配模块33、创建模块34和处理模块35。 
获取模块31用于根据接收到的报文,获取第一信息和第一标识;具体的,获取模块31从报文头中获取第一信息,第一信息包括所述报文的源IP地址、目的IP地址、协议类型、第一参数和第二参数,称之为五元组,其中第一参数和第二参数会因具体的IP报文而不同;获取模块31从报文过滤装置中接收该报文的接口的属性值中获取第一标识,即源IP地址所属的VRF的标识。 
生成模块32用于对获取模块31获取的第一信息进行离散化处理,生成第一索引值,离散化处理可以将不同报文映射到一张数据流表中进行管理,使得一个连接对应一个流记录,即属于同一连接的所有报文属于一个流记录。 
匹配模块33用于将接收到的报文的六元组与第一索引值所对应的数据流表中的各个流记录中的信息进行匹配,以判断该报文所属的流记录是否已 经存在,其中六元组包括由第一信息和第一标识。 
创建模块34用于在匹配模块33未匹配到包含六元组的流记录时,创建该报文所属的流记录,并将六元组和根据六元组查询路由表获取的目的IP地址所属的VRF记录在所创建的流记录中;该流记录用于记录该次连接的连接状态信息,其中后续报文的上下文环境就记录在流记录的连接状态信息中。 
处理模块35用于在匹配模块33匹配到包含六元组的流记录时,根据匹配到的流记录中的连接状态信息判断报文的合法性,并根据判断结果对报文进行过滤处理,例如,若报文合法则转发报文;若报文不合法,则丢弃报文。 
本实施例的报文过滤装置,通过生成模块、匹配模块、创建模块和处理模块以五元组(即第一信息)进行离散化处理实现将不同报文映射到数据流表中,以六元组与映射位置对应的各流记录进行匹配,以确定报文所属的流记录是否已存在,实现对报文的过滤处理。本实施例技术方案中报文六元组的获取不需要查询路由表,与现有技术相比,减少了查询路由表的操作次数,提高了防火墙转发报文的性能。 
进一步,该报文过滤装置还包括一清除模块,用于定期执行一老化程序,将数据流表中无效的或连接已关闭的流记录清除,以避免数据流表存储满时,而无法再存储新的流记录的情况。 
具体的,获取模块31包括用于获取第一信息的第一获取单元311和用于获取第一标识的第二获取单元312。 
若接收到的报文为TCP或UDP报文,则第一信息包括报文的源IP地址、目的IP地址、协议类型、源端口和目的端口,即常说的报文五元组。相应的生成模块32包括第一处理单元321,用于通过哈希运算对第一信息进行离散化处理,获得第一运算结果;对调单元322,用于将第一信息中的源IP地址、源端口分别与目的IP地址、目的端口进行对调;第二处理单元323,用于通过哈希运算对对调后的第一信息进行离散化处理,获得第二运算结果;以及生成单元324,用于将第一运算结果和第二运算结果做异或运算,生成第一 索引值。 
若接收到的报文为ICMP报文,则第一信息包括报文的源IP地址、目的IP地址、协议类型、ICMP报文标识以及第一ICMP报文类型和ICMP报文代码字段的组合;相应的生成模块32可包括第三处理单元、查询生成单元以及第四处理单元。由于上述各单元与处理TCP或UDP的各单元的原理和连接关系相似,在本实施例的结构示意图中未示出上述各单元。 
具体的,第三处理单元,用于通过哈希运算对第一信息进行离散化处理,获得第三运算结果;查询生成单元,用于根据第一信息中的第一ICMP报文类型,查询ICMP报文的映射表,获取第二ICMP报文类型,并生成第二信息;所述第二信息包括目的IP地址、源IP地址、协议类型、ICMP报文标识和第二ICMP报文类型与ICMP报文代码字段的组合;生成单元还用于将第三运算结果和第四运算结果做异或运算,生成第一索引值。其中,第一ICMP报文类型和第二ICMP报文类型分别表示连接过程中发起端报文和响应端报文的类型。 
上述技术方案具体描述了本发明实施例生成第一索引值的方法和实现该方法的装置的具体结构。 
实施例四 
本发明实施例四提供一种网络设备,本实施例可以基于上述各实施例实现。具体的,该网络设备包括上述实施例提供的报文过滤装置,其中报文过滤装置采用上述各实施例提供的报文过滤方法实现对报文的过滤。例如,本实施例的网络设备可以是防火墙设备,也可以是具有防火墙功能的路由设备。 
本实施例提供的网络设备,基于上述报文过滤方法和报文过滤装置,因此,在过滤报文过程中,同样可以减少查询路由表的操作次数,使网络设备能够快速转发报文,提高网络设备转发报文的性能。 
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读 取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。 
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。 

Claims (13)

1.一种报文过滤方法,其特征在于,包括:
根据接收到的报文,获取第一信息和第一标识;所述第一信息包括所述报文的源IP地址、目的IP地址、协议类型、第一参数和第二参数;所述第一标识为所述源IP地址所属的虚拟路由转发表的标识;
对所述第一信息进行离散化处理,生成第一索引值;
在数据流表中所述第一索引值对应的各流记录中,将所述第一信息和所述第一标识与各流记录中的信息分别进行匹配;
当未匹配到包含所述第一信息和所述第一标识的流记录时,创建与所述第一索引值对应的新的流记录,用于记录连接状态信息,并将所述第一信息和所述第一标识记录在所述新的流记录中,且将根据所述第一信息和所述源IP地址所属的虚拟路由转发表的标识在路由表中查询获取的目的IP地址所属的虚拟路由转发表的标识记录在所述新的流记录中;
当匹配到包含所述第一信息和所述第一标识的流记录时,根据匹配到的流记录中的连接状态信息判断所述报文的合法性,并对所述报文进行过滤处理。
2.根据权利要求1所述的报文过滤方法,其特征在于,所述根据接收到的报文,获取第一信息和第一标识,具体为:
从所述报文的报文头中获取所述第一信息;
从接收所述报文的防火墙接口的属性值中获取所述第一标识。
3.根据权利要求1或2所述的报文过滤方法,其特征在于,所述报文为传输控制协议报文或用户数据包协议报文,所述第一参数为所述报文的源端口;所述第二参数为所述报文的目的端口。
4.根据权利要求3所述的报文过滤方法,其特征在于,对所述第一信息进行离散化处理,生成第一索引值,具体为:
通过哈希运算对所述第一信息进行离散化处理,获得第一运算结果;
将所述第一信息中的源IP地址、第一参数分别与目的IP地址、第二参数进行对调;
通过哈希运算对对调后的所述第一信息进行离散化处理,获得第二运算结果;
将所述第一运算结果和所述第二运算结果做异或运算,生成所述第一索引值。
5.根据权利要求1或2所述的报文过滤方法,其特征在于,所述报文为因特网控制报文协议报文,所述第一参数为因特网控制报文协议报文标识;所述第二参数为第一因特网控制报文协议报文类型和因特网控制报文协议报文代码字段的组合。
6.根据权利要求5所述的报文过滤方法,其特征在于,对所述第一信息进行离散化处理,生成第一索引值,具体为:
通过哈希运算对所述第一信息进行离散化处理,获得第三运算结果;
根据所述第一因特网控制报文协议报文类型,查询所述报文的映射表,获取第二因特网控制报文协议报文类型,并生成第二信息;所述第二信息包括目的IP地址、源IP地址、协议类型、因特网控制报文协议报文标识和所述第二因特网控制报文协议报文类型与所述因特网控制报文协议报文代码字段的组合;
通过哈希运算对所述第二信息进行离散化处理,获得第四运算结果;
将所述第三运算结果和所述第四运算结果做异或运算,生成所述第一索引值。
7.一种报文过滤装置,其特征在于,包括:
获取模块,用于根据接收到的报文,获取第一信息和第一标识,所述第一信息包括所述报文的源IP地址、目的IP地址、协议类型、第一参数和第二参数,所述第一标识为所述源IP地址所属的虚拟路由转发表的标识;
生成模块,用于对所述第一信息进行离散化处理,生成第一索引值;
匹配模块,用于在数据流表中所述第一索引值对应的各流记录中,将所述第一信息和所述第一标识与各流记录中的信息分别进行匹配;
创建模块,用于当未匹配到包含所述第一信息和所述第一标识的流记录时,创建与所述第一索引值对应的新的流记录,用于记录连接状态信息,并将所述第一信息和所述第一标识记录在所述新的流记录中,且将根据所述第一信息和所述源IP地址所属的虚拟路由转发表的标识在路由表中查询获取的目的IP地址所属的虚拟路由转发表的标识记录在所述新的流记录中;
处理模块,用于当匹配到包含所述第一信息和所述第一标识的流记录时,根据匹配到的流记录中的连接状态信息判断所述报文的合法性,并对所述报文进行过滤处理。
8.根据权利要求7所述的报文过滤装置,其特征在于,所述获取模块包括:
第一获取单元,用于从所述报文的报文头中获取所述第一信息;
第二获取单元,用于从接收所述报文的所述报文过滤装置接口的属性值中获取所述第一标识。
9.根据权利要求7或8所述的报文过滤装置,其特征在于,所述报文为传输控制协议报文或用户数据包协议报文,所述第一参数为所述报文的源端口;所述第二参数为所述报文的目的端口。
10.根据权利要求9所述的报文过滤装置,其特征在于,所述生成模块包括:
第一处理单元,用于通过哈希运算对所述第一信息进行离散化处理,获得第一运算结果;
对调单元,用于将所述第一信息中的源IP地址、第一参数分别与目的IP地址、第二参数进行对调;
第二处理单元,用于通过哈希运算对对调后的所述第一信息进行离散化处理,获得第二运算结果;
生成单元,用于将所述第一运算结果和所述第二运算结果做异或运算,生成所述第一索引值。
11.根据权利要求7或8所述的报文过滤装置,其特征在于,所述报文为因特网控制报文协议报文,所述第一参数为因特网控制报文协议报文标识;所述第二参数为第一因特网控制报文协议报文类型和因特网控制报文协议报文代码字段的组合。
12.根据权利要求11所述的报文过滤装置,其特正在于,所述生成模块包括:
第三处理单元,用于通过哈希运算对所述第一信息进行离散化处理,获得第三运算结果;
查询生成单元,用于根据所述第一因特网控制报文协议报文类型,查询所述报文的映射表,获取第二因特网控制报文协议报文类型,并生成第二信息;所述第二信息包括目的IP地址、源IP地址、协议类型、因特网控制报文协议报文标识和所述第二因特网控制报文协议报文类型与所述因特网控制报文协议报文代码字段的组合;
第四处理单元,用于通过哈希运算对所述第二信息进行离散化处理,获得第四运算结果;
所述生成单元还用于将所述第三运算结果和所述第四运算结果做异或运算,生成所述第一索引值。
13.一种网络设备,其特征在于,包括权利要求7-12任一项所述的报文过滤装置。
CN2009102529292A 2009-12-04 2009-12-04 报文过滤方法、装置及网络设备 Expired - Fee Related CN101707617B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102529292A CN101707617B (zh) 2009-12-04 2009-12-04 报文过滤方法、装置及网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102529292A CN101707617B (zh) 2009-12-04 2009-12-04 报文过滤方法、装置及网络设备

Publications (2)

Publication Number Publication Date
CN101707617A CN101707617A (zh) 2010-05-12
CN101707617B true CN101707617B (zh) 2012-08-15

Family

ID=42377807

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102529292A Expired - Fee Related CN101707617B (zh) 2009-12-04 2009-12-04 报文过滤方法、装置及网络设备

Country Status (1)

Country Link
CN (1) CN101707617B (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101860531B (zh) * 2010-04-21 2013-04-17 北京星网锐捷网络技术有限公司 数据包过滤规则匹配方法及装置
CN102546363A (zh) * 2010-12-21 2012-07-04 深圳市恒扬科技有限公司 一种报文处理方法、装置及设备
WO2012142750A1 (zh) 2011-04-19 2012-10-26 华为技术有限公司 一种地址解析的方法,装置和***
CN102497372A (zh) * 2011-12-13 2012-06-13 曙光信息产业(北京)有限公司 一种基于ip报文目的端口过滤策略的***和方法
CN102387160B (zh) * 2011-12-13 2014-10-22 曙光信息产业(北京)有限公司 一种基于ip报文五元组过滤策略的***和方法
CN103607316A (zh) * 2012-03-15 2014-02-26 无锡信捷电气股份有限公司 一种基于工业物联网的状态防火墙状态检测***及方法
CN108989311A (zh) * 2013-05-31 2018-12-11 华为技术有限公司 生成输入参数的方法及设备
CN104734897B (zh) * 2013-12-18 2018-04-06 国家计算机网络与信息安全管理中心 一种会话对准转发***
CN103746918B (zh) * 2014-01-06 2018-01-12 深圳市星盾网络技术有限公司 报文转发***和报文转发方法
CN107113282A (zh) * 2014-12-30 2017-08-29 华为技术有限公司 一种抽取数据报文的方法及装置
US9584415B2 (en) * 2015-01-30 2017-02-28 Huawei Technologies Co., Ltd. Devices, systems and methods for service chains
CN105071991B (zh) * 2015-08-11 2018-11-02 上海携程商务有限公司 多个防火墙的ip连通性的测试方法
CN105187436B (zh) * 2015-09-25 2019-03-08 中国航天科工集团第二研究院七〇六所 一种基于散列表的包过滤主机网络控制方法
CN105847042A (zh) * 2016-03-18 2016-08-10 广州市苏瑞计算机科技有限公司 通信***配置方法和装置
CN107948060A (zh) * 2016-10-12 2018-04-20 深圳市中兴微电子技术有限公司 一种新型的路由表建立、以及ip路由查找方法和装置
CN106547855B (zh) * 2016-10-19 2020-06-05 北京交通大学 基于电子地图和io驱采信息的数据库自动生成方法及装置
CN106878308B (zh) * 2017-02-21 2020-06-19 浪潮集团有限公司 一种icmp报文匹配***及方法
CN109446422B (zh) * 2018-10-24 2021-09-14 湖北大学 一种基于离群用户过滤的服务推荐方法
CN109714228B (zh) * 2018-12-24 2020-10-16 工联数据技术(杭州)有限公司 一种用于设备和工人的全局监控***
CN113765858A (zh) * 2020-06-05 2021-12-07 中创为(成都)量子通信技术有限公司 一种实现高性能状态防火墙的方法及装置
CN113438176B (zh) * 2021-05-17 2022-08-23 翱捷科技股份有限公司 一种处理分片ip数据包的方法及装置
CN114244625A (zh) * 2021-12-30 2022-03-25 山东安控信息科技有限公司 一种物理隔离设备的报文快速转发方法及***
CN116233060B (zh) * 2022-12-28 2023-11-03 北京六方云信息技术有限公司 报文信息隐藏方法、装置、终端设备以及存储介质
CN115883456B (zh) * 2023-01-31 2023-06-23 天翼云科技有限公司 一种上行出口识别方法、装置及设备、介质和产品

Also Published As

Publication number Publication date
CN101707617A (zh) 2010-05-12

Similar Documents

Publication Publication Date Title
CN101707617B (zh) 报文过滤方法、装置及网络设备
US11784914B1 (en) Routing methods, systems, and computer program products
US10574562B1 (en) Routing methods, systems, and computer program products
US10382327B1 (en) Methods, systems, and computer program products for routing using headers including a sequence of node scope-specific identifiers
CN101707619B (zh) 报文过滤方法、装置及网络设备
KR100398281B1 (ko) 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법
JP5362669B2 (ja) ネットワークパケットの効率的な分類
US10103962B1 (en) Return path trace
TW201713082A (zh) 用於經由封包中繼外部化網路功能之系統與方法
US10587505B1 (en) Routing methods, systems, and computer program products
Kristensen et al. Applications of coloured Petri nets for functional validation of protocol designs
CN111131539B (zh) 报文转发方法及装置
CN104486229A (zh) 一种实现vpn网络报文转发的方法及设备
CN111698110B (zh) 一种网络设备性能分析方法、***、设备及计算机介质
CN105052106A (zh) 用于接收和传输互联网协议(ip)数据包的方法和***
US10404582B1 (en) Routing methods, systems, and computer program products using an outside-scope indentifier
US20150032898A1 (en) Method for establishing a virtual community network connection and a system for implementing said method
CN114422160B (zh) 一种虚拟防火墙的设置方法、装置、电子设备和存储介质
CN106878308B (zh) 一种icmp报文匹配***及方法
CN110166375A (zh) 一种报文转发方法及装置
KR20190110719A (ko) 네트워크 은닉 장치 및 방법
US10419334B1 (en) Internet protocol routing methods, systems, and computer program products
US10397100B1 (en) Routing methods, systems, and computer program products using a region scoped outside-scope identifier
US10476787B1 (en) Routing methods, systems, and computer program products
WO2015025848A1 (ja) 通信システム、制御指示装置、通信制御方法及びプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor

Patentee after: RUIJIE NETWORKS Co.,Ltd.

Address before: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor

Patentee before: Fujian Star-net Ruijie Network Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120815