- 论坛徽章:
- 0
|
原帖由 独孤九贱 于 2007-9-20 10:19 发表
等我来,这个讨论好像已经结束了……
Linux中的syn Cookie算法效率确实不咋地,偶试着优先它,不过失败了……要向楼主多学习呀!!
除了在实践中,除了cookie算法问题,更实际的问题还有两个,这里跟楼主交流一下:
1、回应的数据包太多,Linux的路由缓存是个很大的问题——无论设置大多的dst cache,在强大的攻击下面,都是很可笑的!!!而且设得越大,散列冲突越来越多,效率也会下降很快;
——我的解决方法:直接越过路由子系统,反弹数据包:从哪里来,就从哪个接口回去,[不过在网络拓扑稍复杂的地方,这招就不行了]
2、回应的Cookie越多,意味着双倍流量,本身机器接收处理这么大的的小包就是一个头痛的问题,现在还要*2,而且对上级网关也是一个沉重的负担——在实践中,就有很多上级网关被冲动的例子!
——我的方法是随机丢包,利用2/8原理,减少回应包数量[很多好人被错杀了呀!!
就象你说的那样, 问题还多呢,还远没有到解决问题的时候. 值得讨论的地方还很多...
我只是在产生和验证COOKIE方面做了一些优化. 我也不知道这个对整体的性能能有多大的贡献,所以需要朋友们帮忙测试一下.
象你提的问题(我记得前面也有朋友提到类似问题), 说明SYN FLOOD带来的压力是方方面面的,光从一个地方下工夫恐怕远远不够.
你提出的问题1,我觉得很不错,有效地简化了处理过程....(是否甚至可以更进一步, 简化整个TCPIP的处理流程呢? )
但是2 我觉得不太可取, 除非是没有办法的情况下
另外我有两个思路和大家分享或者说探讨一下:
1: 是否可以建立一种SERVER到FIREWALL的反馈, 使合法访问的IP不受到连接速度限制,但是对其他的SYN连接做速度限制. 这个应该是
非常有效和可行的.
2: 如果对网络(包括FIREWALL, SYN-PROXY)的压力过大的话, 是不是可以考虑将上行和下行的分开? 类似lvs里面的direct routing |
|