CN102158568A - 一种封禁ip地址的方法、装置和内容分发网络服务器 - Google Patents
一种封禁ip地址的方法、装置和内容分发网络服务器 Download PDFInfo
- Publication number
- CN102158568A CN102158568A CN2011100993063A CN201110099306A CN102158568A CN 102158568 A CN102158568 A CN 102158568A CN 2011100993063 A CN2011100993063 A CN 2011100993063A CN 201110099306 A CN201110099306 A CN 201110099306A CN 102158568 A CN102158568 A CN 102158568A
- Authority
- CN
- China
- Prior art keywords
- address
- request message
- blacklist list
- addresses
- search
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种封禁IP地址的方法、装置和内容分发网络服务器,该方法包括以下步骤:接收客户端发送的请求消息,当该请求消息进入网络层后,先确定该请求消息的源IP地址;查找保存的黑名单列表,确定所述源IP地址属于所述黑名单列表时,丢弃该请求消息。本发明实施例中的封禁IP地址的方法及装置,当请求消息进入网络层后就开始确定是否需要封禁,不需要经过其他各层的后续处理,而且,也不需要经过网络层中的其他常规处理过程,从而可以提高查找效率,减少封禁IP地址时的处理时间,提高处理效率。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种网络中封禁IP地址的方法、装置和内容分发网络服务器。
背景技术
目前,网络中的服务器,基于安全的考虑,均要采用一定的方法过滤一些不需要响应的请求消息。过滤的常见方法就是对相关请求消息的源IP地址进行封禁。
在ISO/OSI七层网络体系结构中,一个到达服务器的请求消息,通常需要从下到上依次经过各个协议层的处理。因此,可以在OSI的多个协议层实现对指定的来源IP的封禁,常见的处理方法中是在应用层或网络层对指定的来源IP进行封禁。
以CDN网络为例,在基于squid实现的CDN网络中,可以通过配置访问控制列表(Access control lists,ACL)来实现对源IP的封禁。但这一实现方法有两个不足:其一是在OSI的第七层应用层实现,需要过滤的请求消息已经经过了OSI其他六层协议层的处理,而每一个协议层对请求的处理,都需要消耗相关的系统资源;其二是由于ACL写在squid的配置文件中,在修改完配置文件后,必须通知squid重新加载配置文件方可生效,因此配置的ACL不能实时生效,会影响IP封禁的高效性。
在使用GNU/Linux系统的CDN网络中,可以通过iptables工具实现对IP的封禁。这种方法虽然是在网络层实现,但是iptables是采用顺序匹配的方式对IP进行封禁,iptables中的黑名单存储方式如图1所示,因此,在匹配的时候需要一个一个IP的比较,对于一个不在黑名单中的IP地址,均需匹配100,000次才可以获取到匹配结果。即使对于需要封禁的IP地址,平均也需要匹配50,000次,才可以获取匹配结果。随着封禁IP数目的增多,系统对请求消息的处理时间也会线性的增长。
综上所述,在网络中,现有的两种解决方案都存在处理时间过长,无法满足对于封禁IP的实时性和高效性的要求。
发明内容
本发明提供一种封禁IP地址的方法、装置和内容分发网络服务器,用以解决现有技术中封禁IP地址时处理时间过长,效率低下的问题。
一种封禁IP地址的方法,包括以下步骤:
接收客户端发送的请求消息,当该请求消息进入网络层后,先确定该请求消息的源IP地址;
查找保存的黑名单列表,确定所述源IP地址属于所述黑名单列表时,丢弃该请求消息。
一种封禁IP地址的装置,包括:
接收单元,用于接收客户端发送的请求消息,当该请求消息进入网络层后,先确定该请求消息对应的源IP地址;
确定单元,用于查找保存的黑名单列表,确定所述源IP地址属于所述黑名单列表时,丢弃该请求消息。
一种内容分发网络服务器,包括上述装置。
本发明实施例中的封禁IP地址的方法、装置和内容分发网络服务器,当请求消息进入网络层后就先确定是否需要封禁,不需要经过其他各层的后续处理,也不需要经过网络层中的其他常规处理过程,从而可以提高查找效率,减少封禁IP地址时的处理时间,提高处理效率。
附图说明
图1为现有技术中iptables中的黑名单存储方式示意图;
图2为本发明实施例中封禁IP地址的方法流程图;
图3为本发明另一实施例中封禁IP地址的方法流程图;
图4为本发明实施例中按照哈希算法存储黑名单时的存储方式示意图;
图5为本发明实施例中按照红黑树算法存储黑名单时的存储方式示意图;
图6为本发明实施例中封禁IP地址的装置结构图。
具体实施方式
本发明实施例提供了一种封禁IP地址的方法、装置和内容分发网络服务器,可以解决现有技术中封禁IP地址时处理时间过长,效率低下的问题。
本发明实施例提供了一种封禁IP地址的方法,如图2所示,包括以下步骤:
S201:接收客户端发送的请求消息,当该请求消息进入网络层后,先确定该请求消息的源IP地址;
S202:查找保存的黑名单列表,确定所述源IP地址属于所述黑名单列表时,丢弃该请求消息。
较佳的,为了提高查找效率,所述黑名单列表中存储的所有IP地址按照预先设定的存储规则存储;所述查找保存的黑名单列表,具体为:按照所述存储规则查找所述黑名单列表中的IP地址。其中,所述预先设定的存储规则包括:按照哈希算法进行存储,或者,按照红黑树算法进行存储。
较佳的,所述黑名单列表可根据需要进行更新操作,包括:添加IP地址或删除IP地址。其中,所述添加IP地址或删除IP地址时,同时添加或删除多个IP地址。
本发明实施例中的请求消息进入网络层后就先确定是否需要封禁,不需要经过其他各层的后续处理,也不需要经过网络层中其他的常规处理过程,而且,黑名单列表中的IP地址按照预先设定的存储规则进行存储,因此提高了查找效率,减少了封禁IP地址时的处理时间,从而提高了处理效率。
下面以一个优选实施例详细描述一下本发明提供的方法:
在本实施例中,以CDN网络为例进行描述,当然,本方法也可以应用于其他网络中。本实施例中通过在CDN服务器上设置一个独立的用于封禁IP的装置来实现IP封禁功能,该装置可以通过软件实现。并且,在本实施例中,需要事先将需要封禁的IP地址存储在CDN服务器上,构成黑名单列表。并且,为了提高黑名单列表的查找效率,需要采用一定的优化算法进行存储。
本实施例中的方法具体包括以下步骤,如图3所示:
S301:CDN服务器接收到来自某一客户端的请求消息。
S302:确定出该请求消息的源IP地址。
具体的,该请求消息进入CDN服务器之后,首先要经过物理层和数据链路层的处理,然后进入网络层,在本实施例中,该请求消息进入网络层后,则直接送入用于封禁IP的装置进行处理,在处理时,首先要确定出该请求消息的源IP地址。而且,消息进入网络层后,通常会经历一系列的处理,例如,依次要执行分片包搜集、判断该请求消息的目的主机是否为该CDN服务器等一系列常规操作,现有技术中的iptables工具虽然也是在网络层进行处理的,但却是在上述这一系列常规操作之后才执行封禁IP地址的步骤,因此,在遇到需要封禁的请求时,还是事先进行了上述的常规操作,从而浪费了大量的处理时间。对此,本实施例中的方法,将封禁IP地址的操作设置在上述常规操作之前进行,即请求消息一进入网络层则立即执行是否需要封禁IP地址的判断步骤,从而只对无需封禁的IP地址对应的请求执行后续的常规操作过程,因此,大大节约了处理时间,提高了处理效率。
S303:查找事先保存的黑名单列表,判断该源IP地址是否在黑名单列表中,当该源IP地址在黑名单列表中时,执行步骤S304;当该源IP地址不在黑名单列表中时,执行步骤S305。
S304:丢弃该请求消息,直接结束对于该请求消息的处理。
S305:接受该请求消息,并将该消息交由网络层的后续模块执行后续处理。
本实施例中的黑名单列表中存储着所有需要封禁的IP地址,并且,该黑名单列表还可以根据实际需要进行更新,例如,可以在该黑名单列表中添加IP地址或者删除IP地址。为了提高处理效率,在向该黑名单列表中添加IP地址或删除IP地址时,可以一次同时添加或删除多个IP地址。具体实现时,可以采用ccblist工具实现,该工具是一个命令行的工具,可以采用如下语句配置需要封禁的IP地址,例如,当配置一个IP地址,即向该黑名单列表中添加一个IP地址时,可采用如下语句:
#ccblist add ip 1.2.3.4;
当配置多个IP地址,即向该黑名单列表中添加多个IP地址时,如三个时,可采用如下语句:
#ccblist add ip 1.2.3.4,1.2.4.4,1.2.5.4。
这样就可以通过一条语句一次性将多个IP地址增加到黑名单中,而对于现有技术中的iptables实现方式来说,每条语句只能添加一个IP地址,即使需要添加上千个IP地址,也只能一个一个的添加,从而大大降低了处理效率;而本实施例中,在一条语句中可同时添加多个IP地址,如果有上千个IP地址需要添加,还可以将所有的IP地址保存到一个文件中,如ip.list文件,然后通过“#ccblist add ipfile ip.list”语句添加即可。删除时同理,本实施例在删除时也可以一次删除多个IP地址,因此,本实施例中的处理方式更加高效。
并且,在本实施例的方法中,为了提高黑名单列表的查找效率,需要采用一定的优化算法来存储黑名单列表中的IP地址,例如,可以采用哈希算法来存储这些需要封禁的IP地址。下面以存储有100,000个IP地址的黑名单列表为例介绍一下哈希算法的实现方式:假设哈希表中总共有65,536个桶,则基于哈希算法的黑名单存储结构如图4所示,每个桶中存储着相应的IP地址,例如,桶0中存储着与65536取余取值为零的IP地址,桶1中存储着与65536取余取值为1的IP地址......依此类推。当CDN服务器收到一个源IP地址后,首先将该IP地址对65536取余,并根据计算结果确定相应的桶,进而在该桶中查找是否存在该IP地址,这样,当黑名单列表中一共存储有100,000个IP地址时,对于每一个源IP地址,平均匹配1.5(100,000/65,536)次就可以获取匹配的结果,从而大大提高了查找效率。
或者,本实施例中也可以采用其他的优化算法来存储黑名单列表中的IP地址,并不限于哈希算法这一种方式,只要能够实现高效存储、高效查找的目的即可。例如,还可以采用红黑树算法来存储黑名单列表中的IP地址。同样,假设在黑名单列表中存储有100,000个IP地址,使用红黑树存储的结构如图5所示,将所有的IP地址根据其数值大小在红黑树中进行有序存储。红黑树的存储原理为:对于任何一个节点,左子节点的IP地址小于该节点,右子节点的IP大于该节点。因此,图5中的部分IP的大小关系为:IP1<IP2<IP3<...<IPm-1<IPm<IPm+1<...<IPn-2<IPn-1<IPn。这样,在查找某个IP地址时,只需要根据红黑树的存储特点进行查找就可以了,首先,判断指定的IP地址与根节点的大小关系,当大于根节点时,则在右子节点中进行查找,当小于根节点时,则在左子节点中进行查找,直到找到相应的节点为止。由此可以看出,采用红黑树的存储结构时,平均每个IP地址的匹配次数为log2(100,000)=16.6次。虽然该方式在匹配效率上没有哈希算法快,但是整个数据结构的稳定性较好,而且在一定条件下红黑树的整个数据结构占用的内存比哈希表小。
因此,采用本发明实施例中的方法封禁IP地址时,具有如下优点:处理效率高,由于在更新黑名单列表时可以同时更新多个IP地址,并且可以实时生效,因此,即使需要封禁的IP数目达到十万级时,服务器的处理能力也基本不受影响;处理请求早,由于本方法是在网络层处理数据包的开始处进行封禁处理,因此,无需进行后续的判断目的IP地址等常规操作,从而可以尽早丢弃不需要响应的请求,减少CDN服务器资源的消耗,降低服务器的负载;查找速度快,由于采用了高效的存储算法,如哈希算法或红黑树算法等,因此大大提高了查找效率。
本发明实施例还提供了一种CDN网络中封禁IP地址的装置,如图6所示,包括:
接收单元61,用于接收客户端发送的请求消息,当该请求消息进入网络层后,先确定该请求消息对应的源IP地址;
确定单元62,用于查找保存的黑名单列表,确定所述源IP地址属于所述黑名单列表时,丢弃该请求消息。
较佳的,所述装置还包括存储更新单元,用于按照预先设定的存储规则存储所述黑名单列表中的所有IP地址,以及根据需要对所述黑名单列表进行更新操作。
较佳的,所述存储更新单元,具体用于按照哈希算法或者红黑树算法存储所述黑名单列表中的所有IP地址。
本发明实施例中的请求消息进入网络层后就开始确定是否需要封禁,不需要经过其他各层的后续处理,而且,黑名单列表中的IP地址按照预先设定的存储规则进行存储,因此提高了查找效率,减少了封禁IP地址时的处理时间,从而提高了处理效率。
本发明还提供了一种内容分发网络服务器,包括上述CDN网络中封禁IP地址的装置。
较佳的,所述内容分发网络服务器还包括:处理单元,
则所述确定单元还用于查找保存的黑名单列表并确定出所述客户端IP地址不属于所述黑名单列表时,通知所述处理单元,处理该请求消息;
所述处理单元,用于处理该请求消息。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种封禁IP地址的方法,其特征在于,包括以下步骤:
接收客户端发送的请求消息,当该请求消息进入网络层后,先确定该请求消息的源IP地址;
查找保存的黑名单列表,确定所述源IP地址属于所述黑名单列表时,丢弃该请求消息。
2.如权利要求1所述的方法,其特征在于,所述黑名单列表中存储的所有IP地址按照预先设定的存储规则存储;
所述查找保存的黑名单列表,具体为:按照所述存储规则查找所述黑名单列表中的IP地址。
3.如权利要求2所述的方法,其特征在于,所述预先设定的存储规则包括:按照哈希算法进行存储,或者,按照红黑树算法进行存储。
4.如权利要求1所述的方法,其特征在于,所述黑名单列表可根据需要进行更新操作,包括:添加IP地址或删除IP地址。
5.如权利要求4所述的方法,其特征在于,所述添加IP地址或删除IP地址时,同时添加或删除多个IP地址。
6.一种封禁IP地址的装置,其特征在于,包括:
接收单元,用于接收客户端发送的请求消息,当该请求消息进入网络层后,先确定该请求消息对应的源IP地址;
确定单元,用于查找保存的黑名单列表,确定所述源IP地址属于所述黑名单列表时,丢弃该请求消息。
7.如权利要求6所述的装置,其特征在于,还包括:
存储更新单元,用于按照预先设定的存储规则存储所述黑名单列表中的所有IP地址,以及根据需要对所述黑名单列表进行更新操作。
8.如权利要求7所述的装置,其特征在于,所述存储更新单元,具体用于按照哈希算法或者红黑树算法存储所述黑名单列表中的所有IP地址。
9.一种内容分发网络服务器,其特征在于,包括权利要求6-8任一所述的装置。
10.如权利要求9所述的内容分发网络服务器,其特征在于,还包括:处理单元,
则所述确定单元还用于查找保存的黑名单列表并确定出所述客户端IP地址不属于所述黑名单列表时,通知所述处理单元,处理该请求消息;
所述处理单元,用于处理该请求消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100993063A CN102158568A (zh) | 2011-04-20 | 2011-04-20 | 一种封禁ip地址的方法、装置和内容分发网络服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100993063A CN102158568A (zh) | 2011-04-20 | 2011-04-20 | 一种封禁ip地址的方法、装置和内容分发网络服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102158568A true CN102158568A (zh) | 2011-08-17 |
Family
ID=44439742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100993063A Pending CN102158568A (zh) | 2011-04-20 | 2011-04-20 | 一种封禁ip地址的方法、装置和内容分发网络服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102158568A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103001942A (zh) * | 2012-09-14 | 2013-03-27 | 北京奇虎科技有限公司 | 一种虚拟服务器和一种防御网络攻击的方法 |
CN103338211A (zh) * | 2013-07-19 | 2013-10-02 | 腾讯科技(深圳)有限公司 | 一种恶意url鉴定方法及装置 |
CN105338017A (zh) * | 2014-06-30 | 2016-02-17 | 北京新媒传信科技有限公司 | 一种web防御方法和系统 |
WO2017113082A1 (en) * | 2015-12-29 | 2017-07-06 | Thomson Licensing | Url filtering method and device |
CN110263534A (zh) * | 2019-05-09 | 2019-09-20 | 北京奇艺世纪科技有限公司 | 黑名单存储方法、请求拦截方法、装置及存储介质 |
CN110611673A (zh) * | 2019-09-18 | 2019-12-24 | 赛尔网络有限公司 | Ip信用计算方法、装置、电子设备及介质 |
CN110868402A (zh) * | 2019-10-29 | 2020-03-06 | 中盈优创资讯科技有限公司 | Ip地址封堵、解封堵方法及装置 |
CN113949581A (zh) * | 2021-10-22 | 2022-01-18 | 中国建设银行股份有限公司 | 地址封禁方法、装置及系统、存储介质及电子设备 |
CN114070652A (zh) * | 2022-01-12 | 2022-02-18 | 北京金山云网络技术有限公司 | Cdn资源封禁方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999021340A1 (en) * | 1997-10-23 | 1999-04-29 | At & T Wireless Services, Inc. | A method and apparatus for filtering packets using a dedicated processor |
CN101079818A (zh) * | 2007-06-28 | 2007-11-28 | 华为技术有限公司 | 转发报文的方法和网络设备 |
CN101702723A (zh) * | 2009-10-30 | 2010-05-05 | 曙光信息产业(北京)有限公司 | Ip报文的过滤方法和装置 |
-
2011
- 2011-04-20 CN CN2011100993063A patent/CN102158568A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999021340A1 (en) * | 1997-10-23 | 1999-04-29 | At & T Wireless Services, Inc. | A method and apparatus for filtering packets using a dedicated processor |
CN101079818A (zh) * | 2007-06-28 | 2007-11-28 | 华为技术有限公司 | 转发报文的方法和网络设备 |
CN101702723A (zh) * | 2009-10-30 | 2010-05-05 | 曙光信息产业(北京)有限公司 | Ip报文的过滤方法和装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103001942A (zh) * | 2012-09-14 | 2013-03-27 | 北京奇虎科技有限公司 | 一种虚拟服务器和一种防御网络攻击的方法 |
CN103001942B (zh) * | 2012-09-14 | 2016-03-30 | 北京奇虎科技有限公司 | 一种虚拟服务器和一种防御网络攻击的方法 |
CN103338211A (zh) * | 2013-07-19 | 2013-10-02 | 腾讯科技(深圳)有限公司 | 一种恶意url鉴定方法及装置 |
CN105338017A (zh) * | 2014-06-30 | 2016-02-17 | 北京新媒传信科技有限公司 | 一种web防御方法和系统 |
WO2017113082A1 (en) * | 2015-12-29 | 2017-07-06 | Thomson Licensing | Url filtering method and device |
CN110263534A (zh) * | 2019-05-09 | 2019-09-20 | 北京奇艺世纪科技有限公司 | 黑名单存储方法、请求拦截方法、装置及存储介质 |
CN110611673A (zh) * | 2019-09-18 | 2019-12-24 | 赛尔网络有限公司 | Ip信用计算方法、装置、电子设备及介质 |
CN110611673B (zh) * | 2019-09-18 | 2021-08-31 | 赛尔网络有限公司 | Ip信用计算方法、装置、电子设备及介质 |
CN110868402A (zh) * | 2019-10-29 | 2020-03-06 | 中盈优创资讯科技有限公司 | Ip地址封堵、解封堵方法及装置 |
CN113949581A (zh) * | 2021-10-22 | 2022-01-18 | 中国建设银行股份有限公司 | 地址封禁方法、装置及系统、存储介质及电子设备 |
CN114070652A (zh) * | 2022-01-12 | 2022-02-18 | 北京金山云网络技术有限公司 | Cdn资源封禁方法、装置、电子设备及存储介质 |
CN114070652B (zh) * | 2022-01-12 | 2022-05-27 | 北京金山云网络技术有限公司 | Cdn资源封禁方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102158568A (zh) | 一种封禁ip地址的方法、装置和内容分发网络服务器 | |
US10237238B2 (en) | Regional firewall clustering in a networked computing environment | |
CN104780080B (zh) | 深度报文检测方法及系统 | |
US10225194B2 (en) | Transparent network-services elastic scale-out | |
CN102185936B (zh) | 一种基于linux操作系统的DNS服务系统和方法 | |
CN106161335A (zh) | 一种网络数据包的处理方法和装置 | |
CN104205080A (zh) | 为联网设备虚拟化卸载分组处理 | |
CN104301451A (zh) | 一种跨网段主机通信方法、装置及系统 | |
CN108881158A (zh) | 数据交互系统和方法 | |
EP3062537B1 (en) | M2m-based information processing method and m2m service platform | |
JP7012079B2 (ja) | オンプレミスとオフプレミスとの通信方法、システム、プログラム | |
EP3178215B1 (en) | Routing requests with varied protocols to the same endpoint within a cluster | |
US20200076912A1 (en) | Supporting communications in a stream processing platform | |
CN114945032B (zh) | 电力物联网终端数据接入系统、方法、装置、设备及介质 | |
CN113014611A (zh) | 一种负载均衡方法及相关设备 | |
JP2012242994A (ja) | トランザクション処理システム、トランザクション処理方法、および、トランザクション処理プログラム | |
JP2011502432A5 (zh) | ||
US10341292B2 (en) | Increased port address space | |
CN103678163A (zh) | 数据流的切换方法、装置及系统 | |
JP2016127393A (ja) | 情報処理装置、方法およびプログラム | |
CN101635639B (zh) | 一种网络连接跟踪方法及其系统 | |
KR20140122025A (ko) | 논리적 망분리 방법 및 장치 | |
CN116233107A (zh) | 一种文件传输方法、装置、电子设备及可读存储介质 | |
CN101909283B (zh) | 一种m2m平台及大容量下载的负荷分担实现方法 | |
KR20160080266A (ko) | Cpu 부하 분산 패킷 처리 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhao Wei Inventor after: Bai Jin Inventor after: Wang Xinghua Inventor after: Zong Jie Inventor before: Zhao Wei Inventor before: Wang Xinghua Inventor before: Zong Jie |
|
COR | Change of bibliographic data |
Free format text: CORRECT: INVENTOR; FROM: ZHAO WEI WANG XINGHUA ZONG JIE TO: ZHAO WEI BAI JIN WANG XINGHUA ZONG JIE |
|
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110817 |