CN101668002A - 具有数据包过滤的网络接口卡及其过滤方法 - Google Patents

具有数据包过滤的网络接口卡及其过滤方法 Download PDF

Info

Publication number
CN101668002A
CN101668002A CN200810211806A CN200810211806A CN101668002A CN 101668002 A CN101668002 A CN 101668002A CN 200810211806 A CN200810211806 A CN 200810211806A CN 200810211806 A CN200810211806 A CN 200810211806A CN 101668002 A CN101668002 A CN 101668002A
Authority
CN
China
Prior art keywords
packet
filtering
filtering module
network interface
data
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.)
Pending
Application number
CN200810211806A
Other languages
English (en)
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.)
Inventec Corp
Original Assignee
Inventec Corp
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 Inventec Corp filed Critical Inventec Corp
Priority to CN200810211806A priority Critical patent/CN101668002A/zh
Publication of CN101668002A publication Critical patent/CN101668002A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种具有数据包过滤的网络接口卡及其过滤方法,其实现软硬件方式的数据包过滤。网络接口卡包括:连接端口、第一过滤模块、第二过滤模块与储存单元。连接端口用以接收来自于网际网络的数据包数据;第一过滤模块连接于连接端口,第一过滤模块根据内容可寻址存储器表用以检验数据包数据,此一检测过程通过网络接口卡的韧体进行检测;第二过滤模块连接于第一过滤模块,第二过滤模块执行数据包内容检验程序用以检验数据包数据的内容,通过软件/韧体分别对数据包数据进行检测,借以提高网络接口卡的工作效率。

Description

具有数据包过滤的网络接口卡及其过滤方法
技术领域
一种网络设备,特别有关于一种具有网络接口卡及其过滤方法。
背景技术
最近几年,越来越多的复杂病毒、蠕虫、拒绝服务攻击以及黑客的恶意入侵已经给商业单位数造成十亿美元的损失。鉴于应用程序的攻击行为、传统方法的反应特性和对不断演变攻击的无能为力,诸如防火墙和网络入侵检测系统这样的传统安全方法已经不足以防范这些行为。如今的需求是即时阻截攻击和入侵以保护价值重大的公司资产。
因此为避免上述攻击,所以提出了入侵防护系统(Intrusion ProtectionSystem,简称IPS)。IPS基于流经网络数据包流量的状态分析来检测入侵。IPS系统是主动的在线设备,能丢弃攻击数据数据包,或者在数据数据包到达主机前断开连接。
实现IPS的具体实现方式,主要有下列两种方法:1.利用硬件实现与2.利用软件实现。硬件的实现方式在主流的商业产品中比较常见,而软件实现方式在免费的开源系统中比较常见。这两种方式都有各自的优势和不足。硬件的实现方式其优势是它的性能,由于所有的逻辑处理全部交由专用的硬件来完成,因此其性能通常比较出色。由于采用专用的硬件架构,所以硬件系统的扩展性与灵活性不足,且规则定义的扩展性弱。换句话说,硬件系统的规则定义会因为复杂度而导致扩充不易,使得升级维护的成本比较高。而软件实现方式则与硬件实现方式的优缺点相反。
发明内容
鉴于以上的问题,本发明的主要目的在于提供一种具有数据包过滤的网络接口卡,其同时实现软硬件的数据包过滤。
为达上述目的,本发明所公开的具有数据包过滤的网络接口卡包括有:连接端口、第一过滤模块、第二过滤模块、储存单元与运算单元。连接端口用以接收来自于网际网络的数据包数据;第一过滤模块电性连接于连接端口,第一过滤模块根据内容可寻址存储器(CAM)表用以检验数据包数据,此一检测过程通过网络接口卡的硬件进行检测;第二过滤模块电性连接于第一过滤模块,第二过滤模块执行数据包内容检验程序用以检验数据包数据的内容,第二过滤模块通过软件/韧体的方式对数据包数据进行检测;储存单元电性连接于连接端口,储存单元用以存放内容可寻址存储器表与第二过滤模块;运算单元电性连接于连接端口与储存单元,运算单元用以执行数据包内容检验程序。
从本发明的另一观点,本发明提出一种数据包的过滤方法,其过滤在一网络接口卡所接收的数据包。
为实现上述目的,本发明公开的数据包的过滤方法包括以下步骤:建立十字链表,用以判断数据包数据是否需通过第一过滤模块;接收多笔数据包数据;进行第一过滤模块,其根据内容可寻址存储器表用以检测所接收的数据包数据;进行第二过滤模块,将通过第一过滤模块的数据包数据进行数据包内容检验程序;执行数据包处理程序并执行相应的数据包过滤政策,包括丢弃未通过上述过滤模块的数据包数据、接受或是转发通过上述过滤模块的数据包数据。
本发明提供了一种在网络接口卡上同时的实现硬件过滤与软件过滤的数据包过滤。在网络接口卡接收到数据包数据后会根据匹配条件对数据包信息进行解析,将其分类成硬件过滤处理或软件过滤处理。本发明所提出的网络接口卡可以通过软件过滤条件的设定来新增或调整现有不足的缺陷,亦可以同时兼顾利用硬件检测的执行速度。
下面结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为本发明的系统架构示意图;
图2为内容可寻址存储器表及其项次的示意图;
图3为本发明的运作流程示意图。
其中,附图标记
100    网络接口卡
110    连接端口
120    第一过滤模块
130    第二过滤模块
140    运算单元
150    储存单元
151    内容可寻址存储器表
152    十字链表
具体实施方式
为了更进一步说明本发明特征及技术内容,请参阅以下有关本发明的详细说明与附图,然而所附附图仅提供参考与说明用,并非用来对本发明加以限制。
请参考图1所示,其为本发明的系统架构示意图。本发明所述的网络接口卡100可设置于计算机装置中,亦可实现于其他网络设备,且本发明中所述及的网络接口卡100为NetXen网络接口卡。在网络接口卡100中包括有:连接端口110、第一过滤模块120、第二过滤模块130、运算单元140与储存单元150。连接端口110用以接收来自于网际网络的数据包数据。在本发明中连接端口110的数量并非仅局限一个。若为多个连接端口110时,可以设定其中之一为接收来自外部网络的通信端口,将其余的设定为发送至内部网络的通信连接端口用以发送已处理过的数据数据包至其他计算机装置。
储存单元150电性连接于连接端口110,储存单元150用以存放内容可寻址存储器(CAM)表151与十字链表152。内容可寻址存储器表151中包括有多笔记录项次,记录项次由96bits长度的键值(key)和128bits长度的负载数据(payload),请参考图2所示,其为内容可寻址存储器表及其项次的示意图。
十字链表152用以判断数据包数据是否需通过第一过滤模块120处理。十字链表可看成将有向图的邻接表和逆邻接表结合起来得到的一种链表。在十字链表中,对应有向图每个弧有一个结点,对应于每个结点也有一个结点。这些结点的结构如下:
tailvex headvex   hlink   tlink   info
表1.弧结点的结构示意图
  data   firstin   firstout
表2.顶点结点的结构示意图
在弧结点中有五个域:其中尾域(tailvex)和头域(headvex)分别指示弧尾和弧头这两个顶点在图中的位置,链域hlink指向弧头相同的下一条弧,而链域tlink指向弧尾相同的下一条弧,info域指向该弧的相关信息。弧头相同的弧在同一链表上,弧尾相同的弧也在同一链表上。它们的头结点即为顶点结点,它由三个域组成:其中data域存储和顶点相关的信息,如顶点的名称等;firstin和firstout为两个链域,分别指向以该顶点为弧头或弧尾的第一个弧结点。
为方便说明本发明的检测方式,在此列举一数据结构作为说明:
struct itc_ips_rule
{
  struct list_head mainChain;
  struct list_head accelerateChain;
  void*rule;
  struct protocolMask ruleMask;
  int ruleProperty;
  int validity;
  struct itc_ips_rule_count count;
  unsigned int target;
};
其中各栏位的含义如下所述:mainChain:用于维护此规则节点在横向的主规则链中的十字链表152索引。accelerateChain:用于维护此规则节点在纵向的加速规则链中的十字链表152的索引。Rule:当此规则是一条由软件来负责过滤匹配的规则时,它指向实际的规则数据;当此规则是一条由硬件来负责过滤匹配的规则时,则此栏位没有含义。ruleMask:此栏位明确了本条规则的协定掩码。ruleProperty:此栏位明确了规则的属性,硬件过滤或软件过滤。Validity:此栏位仅对由硬件加速的规则有效,其明确指出在硬件过滤匹配中此规则是否被命中,这个栏位的地址将被写进相应硬件规则的内容可寻址存储器表151的记录项次的负载数据中。它实现了软硬件之间的关联。Count:此栏位用来进行规则命中情况的统计。Target:此栏位明确了当规则被命中后应进行的相关操作。
第一过滤模块120电性连接于连接端口110,第一过滤模块120根据内容可寻址存储器表151用以检验数据包数据,此一检测过程通过网络接口卡100的硬件进行检测。值得注意的是,本发明中的第二过滤模块130由软件方式进行。第二过滤模块130被存放于储存单元150中。第二过滤模块130执行数据包内容检验程序用以检验数据包数据的内容。第二过滤模块130可以通过软件的方式对数据包数据进行检测,亦可以通过软件的方式用以新增/修改第二过滤模块130中的过滤条件。运算单元140电性连接于连接端口110与储存单元150,运算单元140用以执行数据包内容检验程序。
请参考图3所示,其为本发明的运作流程示意图。本发明的运作流程包括以下步骤:在网络接口卡中建立十字链表(步骤S310),其用以建立所接收的数据包数据由相应的过滤模块所检测。
网络接口卡开始接收多笔数据包数据(步骤S320)。判断是否有内容可寻址存储器的适用情形,以决定是否执行硬件过滤(步骤S330)。第一过滤模块与第二过滤模块的过滤顺序是由十字链表的索引所决定。换句话说,十字链表中的节点是所有的规则(第一过滤模块和第二过滤模块)的统一索引。根据十字链表对接收的数据包数据进行检测(步骤S340)。
第一过滤模块120对所接收的数据包执行硬件过滤。但是硬件过滤不一定会命中。当第一过滤模块120在过滤时命中时,第一过滤模块120则会从内容可寻址存储器表151的记录项次中返回相应的规则(意即在十字链表152中的关联validity的地址)。当第一过滤模块120返回关联validity的地址的时候,则证明硬件内容可寻址存储器表过滤有命中。接着,对关联validity的地址内容重新设置位元(用来在后续的软件过滤中进行查看是否硬件过滤已经命中)。若没有返回关联validity的地址,则证明硬件内容可寻址存储器表151过滤没有命中,直接进入后续的处理。
接着,将符合其条件的数据包数据交由第一过滤模块进行过滤(步骤S350)。其中,在步骤S350中更包括下列步骤:根据数据包数据查找出相应的内容可寻址存储器表的记录项次(步骤S351)。接着,利用上述所查找出的内容可寻址存储器的记录项次与编码掩码判断数据包数据是否匹配(步骤S352)。
对处理过步骤S340、步骤S350、步骤S351与步骤S352的数据包数据,再对其交由第二过滤模块进行过滤(步骤S360),其将数据包数据进行数据包内容检验程序。在第二过滤模块130进行软件过滤的阶段中,第二过滤模块130将会按照链表的索引逐条的检索规则。当第二过滤模块130有数据包符合软件规则的时候,则第二过滤模块130运行相应的程序来进行过滤检测。反之,当第二过滤模块130有数据包符合硬件规则时,则第二过滤模块130检测该数据包的validity是否置位。若置位则说明在硬件过滤时已经命中,则第二过滤模块130根据本条规则的target进行相应的转发,接收或丢弃处理。
执行数据包处理程序(步骤S370),并执行相应的数据包过滤政策,包括丢弃未通过上述过滤模块的数据包数据、接受或是转发通过上述过滤模块的数据包数据。最后,将已过滤后的数据包数据转送到相应的计算机装置(步骤S380)。
本发明提供了一种在网络接口卡100上同时的实现硬件过滤与软件过滤的数据包过滤。在网络接口卡100接收到数据包数据后会根据匹配条件对数据包信息进行解析,将其分类成硬件过滤处理或软件过滤处理。本发明所提出的网络接口卡100可以通过软件过滤条件的设定来新增或调整现有不足的缺陷,亦可以同时兼顾利用硬件检测的执行速度。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (9)

1.一种具有数据包过滤的网络接口卡,其同时实现软硬件的数据包过滤,其特征在于,该网络接口卡中包括有:
一连接端口,其用以接收来自于网际网络的一数据包数据;
一第一过滤模块,电性连接于该连接端口,该第一过滤模块根据一内容可寻址存储器用以检验该数据包数据;
一第二过滤模块,接于该第一过滤模块及该连接端口,该第二过滤模块执行一数据包内容检验程序,用以检验该数据包数据的内容,并执行相应的数据包过滤政策;以及
一储存单元,电性连接于该连接端口,该储存单元用以存放该内容可寻址存储器与该第二过滤模块。
2.根据权利要求1所述的具有数据包过滤的网络接口卡,其特征在于,该网络接口卡为NetXen网络接口卡。
3.根据权利要求1所述的具有数据包过滤的网络接口卡,其特征在于,还包括一运算单元,电性连接于该连接端口与该储存单元,该运算单元用以执行该数据包内容检验程序。
4.根据权利要求1所述的具有数据包过滤的网络接口卡,其特征在于,该内容可寻址存储器中包括有多笔记录项次,该记录项次由96bits长度的键值和128bits长度的负载数据。
5.根据权利要求1所述的具有数据包过滤的网络接口卡,其特征在于,该储存单元还包括有一十字链表,其用以判断该数据包数据是否需通过该第一过滤模块。
6.一种数据包的过滤方法,其用以过滤一网络接口卡所接收的数据包,,其特征在于,该过滤方法包括以下步骤:
接收多笔数据包数据;
判断是否有内容可寻址存储器的适用情形,以决定是否执行硬件过滤;
交由一第一过滤模块进行过滤,其根据一内容可寻址存储器用以检测所接收的所述数据包数据;
交由一第二过滤模块进行过滤,将通过该第一过滤模块的所述数据包数据进行一数据包内容检验程序;以及
执行一数据包处理程序,并执行相应的数据包过滤政策。
7.根据权利要求6所述的数据包的过滤方法,其特征在于,执行该第一过滤模块前还包括以下步骤:建立一十字链表,其用以判断该数据包数据是否需通过该第一过滤模块。
8.根据权利要求6所述的数据包的过滤方法,其特征在于,执行该第一过滤模块时还包括以下步骤:
根据数据包数据查找出相应的该内容可寻址存储器的记录项次;以及
利用上述所查找出的该内容可寻址存储器的记录项次与一编码掩码判断该数据包数据是否匹配。
9.根据权利要求6所述的数据包的过滤方法,其特征在于,执行该数据包处理程序时还包括以下步骤:根据数据包过滤结果,决定用以丢弃未通过上述过滤模块的所述数据包数据、接受或是转发通过上述该过滤模块的数据包数据。
CN200810211806A 2008-09-03 2008-09-03 具有数据包过滤的网络接口卡及其过滤方法 Pending CN101668002A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810211806A CN101668002A (zh) 2008-09-03 2008-09-03 具有数据包过滤的网络接口卡及其过滤方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810211806A CN101668002A (zh) 2008-09-03 2008-09-03 具有数据包过滤的网络接口卡及其过滤方法

Publications (1)

Publication Number Publication Date
CN101668002A true CN101668002A (zh) 2010-03-10

Family

ID=41804443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810211806A Pending CN101668002A (zh) 2008-09-03 2008-09-03 具有数据包过滤的网络接口卡及其过滤方法

Country Status (1)

Country Link
CN (1) CN101668002A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103780460A (zh) * 2014-01-15 2014-05-07 珠海市佳讯实业有限公司 一种通过fpga实现tap设备硬件过滤的系统
WO2014114232A1 (zh) * 2013-01-22 2014-07-31 横河电机株式会社 隔离保护系统及其执行双向数据包过滤检查的方法
CN104488229A (zh) * 2012-07-31 2015-04-01 惠普发展公司,有限责任合伙企业 网络业务处理系统
CN104717088A (zh) * 2013-12-17 2015-06-17 北京中科网威信息技术有限公司 一种基于十字链表的工业防火墙规则库分析方法
CN109391523A (zh) * 2017-08-08 2019-02-26 罗伯特·博世有限公司 用于监控网络中的网络成员之间的通信量的方法
CN110958159A (zh) * 2019-11-22 2020-04-03 英业达科技有限公司 自适应网络压测的配置方法、系统、可读存储介质及设备

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104488229A (zh) * 2012-07-31 2015-04-01 惠普发展公司,有限责任合伙企业 网络业务处理系统
WO2014114232A1 (zh) * 2013-01-22 2014-07-31 横河电机株式会社 隔离保护系统及其执行双向数据包过滤检查的方法
CN104717088A (zh) * 2013-12-17 2015-06-17 北京中科网威信息技术有限公司 一种基于十字链表的工业防火墙规则库分析方法
CN104717088B (zh) * 2013-12-17 2018-01-16 北京中科网威信息技术有限公司 一种基于十字链表的工业防火墙规则库分析方法
CN103780460A (zh) * 2014-01-15 2014-05-07 珠海市佳讯实业有限公司 一种通过fpga实现tap设备硬件过滤的系统
CN103780460B (zh) * 2014-01-15 2017-06-30 珠海市佳讯实业有限公司 一种通过fpga实现tap设备硬件过滤的系统
CN109391523A (zh) * 2017-08-08 2019-02-26 罗伯特·博世有限公司 用于监控网络中的网络成员之间的通信量的方法
CN109391523B (zh) * 2017-08-08 2023-04-18 罗伯特·博世有限公司 用于监控网络中的网络成员之间的通信量的方法
CN110958159A (zh) * 2019-11-22 2020-04-03 英业达科技有限公司 自适应网络压测的配置方法、系统、可读存储介质及设备

Similar Documents

Publication Publication Date Title
US8122494B2 (en) Apparatus and method of securing network
CN108616534B (zh) 一种基于区块链防护物联网设备DDoS攻击的方法及系统
CN101803305B (zh) 网络监视装置、网络监视方法
US8448234B2 (en) Method and apparatus for deep packet inspection for network intrusion detection
CN101668002A (zh) 具有数据包过滤的网络接口卡及其过滤方法
CN101018121B (zh) 日志的聚合处理方法及聚合处理装置
US20050182950A1 (en) Network security system and method
CN104836702A (zh) 一种大流量环境下主机网络异常行为检测及分类方法
CN106534068B (zh) 一种ddos防御系统中清洗伪造源ip的方法和装置
US20150156102A1 (en) A Method of and Network Server for Detecting Data Patterns in an Input Data Stream
CN105991444B (zh) 业务处理的方法和装置
EP2294785A2 (en) Method and system for identifying enterprise network hosts infected with slow and/or distributed scanning malware
CN101465760A (zh) 一种检测拒绝服务攻击的方法和系统
CN104901971A (zh) 对网络行为进行安全分析的方法和装置
KR100479202B1 (ko) 분산서비스거부 공격 대응 시스템 및 방법과 그프로그램을 기록한 기록매체
US20230283631A1 (en) Detecting patterns in network traffic responses for mitigating ddos attacks
CN107426132B (zh) 网络攻击的检测方法和装置
CN106506531A (zh) Arp攻击报文的防御方法及装置
US20100058459A1 (en) Network interface card with packet filtering function and filtering method thereof
US10104105B2 (en) Distributed network anomaly detection
CN109347810B (zh) 一种处理报文的方法和装置
CN109218250A (zh) 基于故障自动迁移系统的ddos防御方法及系统
CN110881016B (zh) 一种网络安全威胁评估方法及装置
CN113765849A (zh) 一种异常网络流量检测方法和装置
JP4538370B2 (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20100310