我需要测量 IPTables/inline Snort 对性能的影响,因此需要让我的测试服务器承受良好的负载。
不幸的是,没有可用的硬件流量生成器,因此连接必须是真实的 - 例如来自其他机器(在同一网络中有一些)并使用一些守护进程。这不像发送 1000 个数据包来查看它们如何被拒绝和丢弃,连接必须超过一分钟并携带一些数据。
有没有什么好的解决方案可以模拟来自 Linux 机器的一千个长连接?
答案1
我可能只会设置一个轻量级 HTTP 服务器,如 nginx。让它提供一个大文件,使连接持续一段时间,然后只需使用任何标准 HTTP 测试实用程序,如ab
。
如果你真的想测试 IPTables,你也会需要很多不同的源 IP。但是,除非你有一个非常复杂规则集我不会理会这一步——2000 个连接对于 iptables 来说不算什么。
答案2
您不需要硬件流量生成器来生成重负载,任何数据包制作工具就足够了。我将发布一些我使用过类似功能的工具的链接。
惠平 http://www.hping.org/以及针对您的案例的教程http://www.security-forums.com/viewtopic.php?p=43074
复仇女神 http://nemesis.sourceforge.net/
测试员 http://www.inversepath.com/ftester.html
获得 http://www.gnu.org/software/wget/ 脚本打开 500-2000 个连接
我可以想到许多其他方法来扩展上述内容,但如果我们知道您拥有哪种类型的服务器用于实际测试登录,那就太理想了。我可以看到使用简单的数据库(服务器)和登录脚本(客户端)来实现这一点。
答案3
嗯,编写 netcat 脚本?我在 Google 上搜索“交通模拟器”时,第一个搜索结果是这里(请不要打人)。
您是否需要处理任何特定协议? 有许多负载测试器可用于测试 SMB 性能或 SQL 查询等,但您的问题甚至没有说明您是否只针对 TCP,或者您是否有大量 UDP 负载、多播流量或其他相当具体的事情。
答案4
伊克斯战车,http://www.ixchariot.com/
我不卖它。我没有从销售中获得报酬。我曾经为它的制造商工作过(1998 年),并为它编写了第一个培训课程。
您应该能够通过 IxChariot 合作伙伴之一获得在测试期间使用该产品的许可。该产品可轻松扩展到 10,000 个并发连接,并且对于具有网络或性能测试背景的用户来说,它易于使用。