免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1372 | 回复: 2
打印 上一主题 下一主题

[网络子系统] ip黑白名单防火墙的实现(应对高负载服务器ip数据项的快速、大量增删) 此设计可行么 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-06 11:54 |只看该作者 |倒序浏览
  请考虑如下场景:

  情况1:来自应用层的DDoS攻击常常是瞬间涌入大量非法ip请求,例如数万个非法ip,所以,对于防火墙黑白名单功能的要求至少有如下:能在很短的时间内更新大量数据项,且不能造成系统服务停顿。

  分析:如果只使用一个全局的哈希表,当在短时间内进行大量的数据项增删时,例如,成千上万个,此时,即使采用多把读写锁分割哈希表的策略,对共享资源的竞争也依然将严重影响系统响应速度,严重时系统可能会停顿或者更糟,对于生产环境中的高负载服务器,这是无法容忍的。

  解决:以空间换时间

  采用双哈希表缓冲的策略,将系统共享资源的竞争热点压缩至两个hash表指针主备切换的极短时间内,此方法能显著降低系统在大量数据项更新时共享资源的竞争。

  系统查询将会直接访问master指向的fr_ip_hash_array,而用户的更新操作将直接针对mirror所指向的另一个fr_ip_hash_array实例,直到switch_mirror_update操作的执行,master将被瞬间“更新”。这是其主要的工作特点。

  对于SMP与多队列网卡的系统,可采用如下策略:多数cpu核心专门负责处理内核的softirq任务,剩下的少数cpu负责进行双哈希表的更新、切换与重建等操作。这样可提高系统对攻击的快速防御响应。

  但此方案将使得系统需要维护两个互为镜像的哈希表,这将加重系统内存的读写负担。
  
  设计细节请看文章 http://www.cnblogs.com/SwordTao/p/3824980.html

  我已经实现了上述的工具。为了缓解严重的共享竞争, 却增加了系统内存读写负担,这对于高负载服务器,诸位觉得可行么?

论坛徽章:
1
lufei
日期:2016-06-17 17:49:16
2 [报告]
发表于 2014-07-23 11:42 |只看该作者
没看明白。大量非法IP涌入跟你更新黑白名单有什么关系呢?能解释下吗?

论坛徽章:
0
3 [报告]
发表于 2014-07-23 13:03 |只看该作者
最近google时好时坏,难道是楼主在调试系统?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP